src/Controller/Front/FrontNewsController.php line 80

Open in your IDE?
  1. <?php
  2. namespace Acme\SudcmsBundle\Controller\Front;
  3. use Acme\SudcmsBundle\Entity\Actualite;
  4. use Acme\SudcmsBundle\Repository\ActualiteCategsRepository;
  5. use Acme\SudcmsBundle\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 FrontNewsController extends AbstractController {
  12.     private $isThereSliderModule = array();
  13.     private $session;
  14.     public function __construct() {
  15.         $this->session = new Session();
  16.     }
  17.     #[Route(path: ['fr' => '/actualite/{categorie}''en' => '/news/{categorie}''es' => '/noticias/{categorie}''it' => '/notizia/{categorie}''de' => '/nachrichten/{categorie}''pt' => '/noticia/{categorie}''pl' => '/aktualnosci/{categorie}''ru' => '/novosti/{categorie}''zh' => '/xinwen/{categorie}''tr' => '/haberler/{categorie}'], name'front_news'defaults: ['categorie' => 0])]
  18.     public function index(Request $requestActualiteRepository $repoActu,
  19.                           ActualiteCategsRepository $repoCategPaginatorInterface $paginator$categorie) {
  20.         $actualitesQuery $repoActu->findByCatAllActu(['site_lang' => $request->getLocale(), 'site_uid' => CURRENT_SITE_ID'categorie' => $categorie], ['act_date_publication' => 'DESC']);
  21.         $actualites $paginator->paginate(
  22.             $actualitesQuery// Requête contenant les données à paginer (ici nos articles)
  23.             $request->query->getInt('page'1), // Numéro de la page en cours, passé dans l'URL, 1 si aucune page
  24.             // Nombre de résultats par page
  25.         );
  26.         $categories $repoCateg->findBy(['site_lang' => $request->getLocale(), 'site_uid' => CURRENT_SITE_ID], ['act_cat_ordre' => 'ASC']);
  27.         $allCateg = [];
  28.         $nbActu 0;
  29.         foreach ($categories as $categs) {
  30.             $allCateg[$categs->getId()] = $categs;
  31.             $nbActu $repoActu->findBy(['act_categ_id' => $categs->getId()]);
  32.             $allCateg[$categs->getId()]->nbActus sizeof($nbActu);
  33.         }
  34. //        dd($allCateg);
  35.         return $this->render('front/front_news/index.html.twig', [
  36. //            'categories' => $repoCateg->findByCategoriesActu(['site_lang' => 'fr', 'site_uid' => CURRENT_SITE_ID]),
  37.             'categories' => $allCateg,
  38.             'actualites' => $actualites,
  39.             'catEnCours' => (int) $categorie,
  40.         ]);
  41.     }
  42.     #[Route(path: ['fr' => 'actualite/fiche/{id}''en' => '/news/layer/{id}''es' => '/noticias/capa/{id}''it' => '/notizia/strato/{id}''de' => '/nachrichten/schicht/{id}''pt' => '/noticia/camada/{id}''pl' => '/aktualnosci/warstwa/{id}''ru' => '/novosti/sloy/{id}''zh' => '/xinwen/chatou/{id}''tr' => '/haberler/katman/{id}'], name'front_news_card'defaults: ['id' => ''])]
  43.     public function fiche($idRequest $requestActualiteRepository $repoActuActualiteCategsRepository $repoCateg) {
  44.         $actualite $repoActu->find(['id' => $id]);
  45. //        $images = $repoAgdMedia->findBy(['act_id' => $id, 'act_media_type' => 'image'], ['act_media_ordre' => 'ASC']);
  46. //        if(count($images) > 1){
  47. //            $this->isThereGalerieModule = true;
  48. //        }
  49.         $categories $repoCateg->findBy(['site_lang' => $request->getLocale(), 'site_uid' => CURRENT_SITE_ID], ['act_cat_ordre' => 'ASC']);
  50.         $allCateg = [];
  51.         foreach ($categories as $categs) {
  52.             $allCateg[$categs->getId()] = $categs;
  53.         }
  54.         $catEnCours $actualite->getActCategId();
  55.         $actualite_content $this->getActualiteBlocs($id);
  56.         return $this->render('front/front_news/fiche.html.twig', [
  57.             'categories' => $allCateg,
  58.             'actualite' => $actualite,
  59.             'actualite_content' => $actualite_content,
  60.             'isThereSlider' => $this->isThereSliderModule,
  61.             'isThereGalerie' => array(),
  62. //            'images' => $images,
  63. //            'isThereGalerieModule' => $this->isThereGalerieModule,
  64.             'catEnCours' => (int) $catEnCours,
  65.         ]);
  66.     }
  67.     private function getActualiteBlocs($id) {
  68.         $content '';
  69.         $entityManager $this->getDoctrine()->getManager();
  70.         $blocs $entityManager->getRepository(Actualite::class)->findByListeBlocsWithMedia($id);
  71.         if (is_array($blocs) && sizeof($blocs) > 0) {
  72.             foreach ($blocs as $bloc) {
  73.                 $MediasBlocs $entityManager->getRepository(Actualite::class)->getAllMediasByBloc($blocs);
  74.                 $currentBlocMedias = array();
  75.                 foreach ($MediasBlocs as $media) {
  76.                     if ($bloc['id'] == $media["bloc_id"]) {
  77.                         $currentBlocMedias[] = $media;
  78.                     }
  79.                 }
  80.                 if ($bloc['act_bloc_type'] == 'texte_slider') {
  81.                     $this->isThereSliderModule[] = $bloc['id'];
  82.                 }
  83.                 $content .= $this->renderView("front/front_news/bloc-" $bloc['act_bloc_type'] . ".html.twig", [
  84.                     'medias' => $currentBlocMedias,
  85.                     'bloc' => $bloc,
  86.                 ]);
  87.             }
  88.         }
  89.         return $content;
  90.     }
  91. }