src/Pumukit/WebTVBundle/Controller/MediaLibraryController.php line 53

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Pumukit\WebTVBundle\Controller;
  4. use Doctrine\ODM\MongoDB\DocumentManager;
  5. use Pumukit\CoreBundle\Controller\WebTVControllerInterface;
  6. use Pumukit\SchemaBundle\Document\Tag;
  7. use Pumukit\WebTVBundle\Services\BreadcrumbsService;
  8. use Pumukit\WebTVBundle\Services\ListService;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. use Symfony\Contracts\Translation\TranslatorInterface;
  14. class MediaLibraryController extends AbstractController implements WebTVControllerInterface
  15. {
  16.     protected $documentManager;
  17.     protected $breadcrumbsService;
  18.     protected $translator;
  19.     protected $listService;
  20.     protected $menuMediatecaTitle;
  21.     protected $pumukitWebTVMediaLibraryFilterTags;
  22.     protected $catalogueThumbnails;
  23.     protected $columnsObjsCatalogue;
  24.     public function __construct(
  25.         DocumentManager $documentManager,
  26.         BreadcrumbsService $breadcrumbsService,
  27.         TranslatorInterface $translator,
  28.         ListService $listService,
  29.         $menuMediatecaTitle,
  30.         $pumukitWebTVMediaLibraryFilterTags,
  31.         $catalogueThumbnails,
  32.         $columnsObjsCatalogue
  33.     ) {
  34.         $this->documentManager $documentManager;
  35.         $this->breadcrumbsService $breadcrumbsService;
  36.         $this->translator $translator;
  37.         $this->listService $listService;
  38.         $this->menuMediatecaTitle $menuMediatecaTitle;
  39.         $this->pumukitWebTVMediaLibraryFilterTags $pumukitWebTVMediaLibraryFilterTags;
  40.         $this->catalogueThumbnails $catalogueThumbnails;
  41.         $this->columnsObjsCatalogue $columnsObjsCatalogue;
  42.     }
  43.     /**
  44.      * @Route("/mediateca/{sort}", defaults={"sort" = "date"}, requirements={"sort" = "alphabetically|date|tags"}, name="pumukit_webtv_medialibrary_index")
  45.      */
  46.     public function indexAction(Request $requeststring $sort): Response
  47.     {
  48.         $templateTitle $this->translator->trans($this->menuMediatecaTitle);
  49.         $this->breadcrumbsService->addList($templateTitle'pumukit_webtv_medialibrary_index', ['sort' => $sort]);
  50.         $selectionTags $this->documentManager->getRepository(Tag::class)->findBy(['cod' => ['$in' => $this->pumukitWebTVMediaLibraryFilterTags]]);
  51.         [$objects$aggregatedNumMmobjs] = $this->listService->getMediaLibrary([], $sort$request->getLocale(), $request->query->get('p_tag'));
  52.         return $this->render('@PumukitWebTV/MediaLibrary/template.html.twig', [
  53.             'objects' => $objects,
  54.             'sort' => $sort,
  55.             'tags' => $selectionTags,
  56.             'objectByCol' => $this->columnsObjsCatalogue,
  57.             'show_info' => false,
  58.             'show_more' => false,
  59.             'catalogue_thumbnails' => $this->catalogueThumbnails,
  60.             'aggregated_num_mmobjs' => $aggregatedNumMmobjs,
  61.         ]);
  62.     }
  63. }