<?php
declare(strict_types=1);
/**
* @author Mehrez Labidi
*/
namespace App\Controller;
use App\Services\MetaTag;
use App\Services\ManagerEntity\WebinarManager;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use App\Twig\TranslationExtension;
class WebinarController extends EntityUsingController {
/**
* @var WebinarManager
*/
private $wm;
/**
* @var MetaTag
*/
private $metaTag;
public function __construct(WebinarManager $wm, MetaTag $metaTag) {
$this->wm = $wm;
$this->metaTag = $metaTag;
}
/**
* @throws \Exception
*/
public function index(): Response {
$webinars = $this->wm->getWebinarList();
return $this->render('webinar/index.html.twig', [
'controller_name' => 'WebinarController',
'webinars' => $webinars,
]);
}
/**
* @throws \Exception
*/
public function detail(Request $request, TranslationExtension $translationExtension, $idformation): Response {
if (!$idformation) {
throw $this->createNotFoundException('No Webinars found for id ' . $idformation);
}
$filters = $request->query->all();
$date = ($filters["date"]) ?? NULL;
$webinar = $this->wm->getWebinarDetail($idformation,$date);
$metaTitle = 'webinar FUSACQ, %$titre_webinar%$';
$metaDescription = 'assistez au webinar FUSACQ, %$titre_webinar%$';
$arrayVarsTrans['titre_webinar'] = $webinar['titre'];
$lang = $request->getSession()->get('lang');
$metaTag = $this->metaTag
->setTitle($translationExtension->translate($metaTitle, $lang, "", "M", "", $arrayVarsTrans))
->setDescription($translationExtension->translate($metaDescription, $lang, "", "M", "", $arrayVarsTrans));
return $this->render('webinar/detail.html.twig', [
'metaTag' => $metaTag,
'controller_name' => 'WebinarController',
'webinar' => $webinar,
]);
}
}