src/Package/Openform/Front/Controller/CollectionsController.php line 48

Open in your IDE?
  1. <?php
  2. namespace App\Package\Openform\Front\Controller;
  3. use Doctrine\ORM\EntityManager;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\HttpFoundation\JsonResponse;
  8. use Symfony\Component\HttpFoundation\RequestStack;
  9. use App\Package\Openform\Front\Controller\BaseController;
  10. use App\Package\Toolkit\RouteLocalizer\RouteLocalizer;
  11. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  12. use App\Package\Openform\RepositoryFront\FrontExhibitionRepository;
  13. use Symfony\Component\Intl\Locales;
  14. /**
  15.  * PageController
  16.  *
  17.  * @author     Daniel Balowski <d.balowski@openform.pl> (_creator)
  18.  * @copyright  2019 Openform
  19.  * @since      07.2019
  20.  */
  21. class CollectionsController extends BaseController
  22. {
  23.     protected $routeLocalizer
  24.     private $em
  25.     public function __construct(RequestStack $requestRouteLocalizer $routeLocalizerEntityManagerInterface $em)
  26.     {
  27.         parent::__construct($request$routeLocalizer$em);
  28.         
  29.         $this->em $em;
  30.         $this->routeLocalizer $routeLocalizer;
  31.     }    
  32.     
  33.     public function indexAction(Request $request)
  34.     {
  35.         $locale $request->getLocale();
  36.         $entity $this->getPageByIdName('page_collections'$locale);
  37.         if (!$entity) {
  38.             throw new NotFoundHttpException();
  39.         }
  40.         return $this->render('@openform_front_templates/Collections/index.html.twig', [
  41.             'entity' => $entity,
  42.         ]);
  43.     }
  44.     protected function generateLangLinksCollections$entity)
  45.     {
  46.         $repo $this->em->getRepository('Openform:PageTranslation');
  47.         
  48.         $translations $repo->findBy(['translatableId' => $entity->getId()]);
  49.         $langLinks = [];
  50.         foreach ($translations as $transItem){
  51.             if (strlen($transItem->getSlug()) > 0) {
  52.                 
  53.                 
  54.                 $url $this->routeLocalizer->generate($entity->getIdname(), [], $transItem->getLang());
  55.                 
  56.                 $langLinks[$transItem->getLang()] = $url;
  57.             }
  58.         }
  59.         return $langLinks;        
  60.     }
  61. }