mirror of
https://github.com/quentin-g-dev/afup.git
synced 2026-03-30 13:12:22 +02:00
* correction de la configuration * renommage des services pour preparer SF4 * remplacement des noms de service par les noms de classe * ajout commentaire pour les services n'ayant pas de nom sous forme de nom de classe
43 lines
1.4 KiB
PHP
43 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace AppBundle\Controller;
|
|
|
|
use AppBundle\Event\Model\Repository\EventRepository;
|
|
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
|
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
|
|
class AdminTalkController extends Controller
|
|
{
|
|
public function exportAction(Request $request)
|
|
{
|
|
$event = $this->getEvent($this->get(EventRepository::class), $request);
|
|
|
|
$file = new \SplFileObject(sys_get_temp_dir() . DIRECTORY_SEPARATOR . uniqid('talk_'), 'w+');
|
|
$this->get(\AppBundle\Event\Talk\ExportGenerator::class)->export($event, $file);
|
|
|
|
$headers = [
|
|
'Content-Type' => 'text/html; charset=utf-8',
|
|
'Content-Disposition' => sprintf('attachment; filename="talks_%s_%s.csv"', $event->getPath(), date('Ymd-His')),
|
|
];
|
|
|
|
$response = new BinaryFileResponse($file, BinaryFileResponse::HTTP_OK, $headers);
|
|
$response->deleteFileAfterSend(true);
|
|
return $response;
|
|
}
|
|
|
|
private function getEvent(EventRepository $eventRepository, Request $request)
|
|
{
|
|
$event = null;
|
|
if ($request->query->has('id') === false) {
|
|
$event = $eventRepository->getNextEvent();
|
|
$event = $eventRepository->get($event->getId());
|
|
} else {
|
|
$id = $request->query->getInt('id');
|
|
$event = $eventRepository->get($id);
|
|
}
|
|
|
|
return $event;
|
|
}
|
|
}
|