src/Controller/FrontActualiteController.php line 94

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Actualite;
  4. use App\Repository\ActualiteCategsRepository;
  5. use App\Repository\ActualiteRepository;
  6. use Knp\Component\Pager\PaginatorInterface;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Session\Session;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. class FrontActualiteController extends AbstractController
  12. {
  13. //    private $isThereGalerieModule = false;
  14.     private $isThereSliderModule = array();
  15.     private $session;
  16.     public function __construct()
  17.     {
  18.         $this->session = new Session();
  19.     }
  20.     /**
  21.      * @Route({
  22.      * "fr": "/actualite/{categorie}",
  23.      * "en": "/news/{categorie}",
  24.      * "es": "/noticias/{categorie}",
  25.      * "it": "/notizia/{categorie}",
  26.      * "de": "/nachrichten/{categorie}",
  27.      * "pt": "/noticia/{categorie}",
  28.      * "pl": "/aktualnosci/{categorie}",
  29.      * "ru": "/novosti/{categorie}",
  30.      * "zh": "/xinwen/{categorie}",
  31.      * "tr": "/haberler/{categorie}"
  32.      * }, name="actualite"
  33.      * )
  34.      */
  35.     public function index($categorie 0Request $requestActualiteRepository $repoActu,
  36.                           ActualiteCategsRepository $repoCategPaginatorInterface $paginator)
  37.     {
  38.         $actualitesQuery $repoActu->findByCatAllActu(['site_lang' => $request->getLocale(), 'site_uid' => $this->session->get('front_site_uid'), 'categorie' => $categorie], ['act_date_publication' => 'DESC']);
  39.         $actualites $paginator->paginate(
  40.             $actualitesQuery// Requête contenant les données à paginer (ici nos articles)
  41.             $request->query->getInt('page'1), // Numéro de la page en cours, passé dans l'URL, 1 si aucune page
  42.             // Nombre de résultats par page
  43.         );
  44.         $categories $repoCateg->findBy(['site_lang' => $request->getLocale(), 'site_uid' => $this->session->get('front_site_uid')], ['act_cat_ordre' => 'ASC']);
  45.         $allCateg = [];
  46.         $nbActu 0;
  47.         foreach ($categories as $categs) {
  48.             $allCateg[$categs->getId()] = $categs;
  49.             $nbActu $repoActu->findBy(['act_categ_id' => $categs->getId()]);
  50.             $allCateg[$categs->getId()]->nbActus sizeof($nbActu);
  51.         }
  52. //        dd($allCateg);
  53.         return $this->render('front_actualite/index.html.twig', [
  54. //            'categories' => $repoCateg->findByCategoriesActu(['site_lang' => 'fr', 'site_uid' => $this->session->get('front_site_uid')]),
  55.             'categories' => $allCateg,
  56.             'actualites' => $actualites,
  57.             'catEnCours' => (int)$categorie,
  58.         ]);
  59.     }
  60.     /**
  61.      * @Route({
  62.      * "fr": "actualite/fiche/{id}",
  63.      * "en": "/news/layer/{id}",
  64.      * "es": "/noticias/capa/{id}",
  65.      * "it": "/notizia/strato/{id}",
  66.      * "de": "/nachrichten/schicht/{id}",
  67.      * "pt": "/noticia/camada/{id}",
  68.      * "pl": "/aktualnosci/warstwa/{id}",
  69.      * "ru": "/novosti/sloy/{id}",
  70.      * "zh": "/xinwen/chatou/{id}",
  71.      * "tr": "/haberler/katman/{id}"
  72.      * }, name="actualite_fiche")
  73.      */
  74.     public function fiche($idRequest $requestActualiteRepository $repoActuActualiteCategsRepository $repoCateg)
  75.     {
  76.         $actualite $repoActu->find(['id' => $id]);
  77. //        $images = $repoAgdMedia->findBy(['act_id' => $id, 'act_media_type' => 'image'], ['act_media_ordre' => 'ASC']);
  78. //        if(count($images) > 1){
  79. //            $this->isThereGalerieModule = true;
  80. //        }
  81.         $categories $repoCateg->findBy(['site_lang' => $request->getLocale(), 'site_uid' => $this->session->get('front_site_uid')], ['act_cat_ordre' => 'ASC']);
  82.         $allCateg = [];
  83.         foreach ($categories as $categs) {
  84.             $allCateg[$categs->getId()] = $categs;
  85.         }
  86.         $catEnCours $actualite->getActCategId();
  87.         $actualite_content $this->getActualiteBlocs($id);
  88.         return $this->render('front_actualite/fiche.html.twig', [
  89.             'categories' => $allCateg,
  90.             'actualite' => $actualite,
  91.             'actualite_content' => $actualite_content,
  92.             'isThereSlider' => $this->isThereSliderModule,
  93.             'isThereGalerie' => array(),
  94. //            'images' => $images,
  95. //            'isThereGalerieModule' => $this->isThereGalerieModule,
  96.             'catEnCours' => (int)$catEnCours,
  97.         ]);
  98.     }
  99.     private function getActualiteBlocs($id)
  100.     {
  101.         $content '';
  102.         $entityManager $this->getDoctrine()->getManager();
  103.         $blocs $entityManager->getRepository(Actualite::class)->findByListeBlocsWithMedia($id);
  104.         if (is_array($blocs) && sizeof($blocs) > 0) {
  105.             foreach ($blocs as $bloc) {
  106.                 $MediasBlocs $entityManager->getRepository(Actualite::class)->getAllMediasByBloc($blocs);
  107.                 $currentBlocMedias = array();
  108.                 foreach ($MediasBlocs as $media) {
  109.                     if ($bloc['id'] == $media["bloc_id"]) {
  110.                         $currentBlocMedias[] = $media;
  111.                     }
  112.                 }
  113.                 if ($bloc['act_bloc_type'] == 'texte_slider') {
  114.                     $this->isThereSliderModule[] = $bloc['id'];
  115.                 }
  116.                 $content .= $this->renderView("front_actualite/bloc-" $bloc['act_bloc_type'] . ".html.twig", [
  117.                     'medias' => $currentBlocMedias,
  118.                     'bloc' => $bloc,
  119.                 ]);
  120.             }
  121.         }
  122.         return $content;
  123.     }
  124. }