src/Controller/ComponentController.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\ChangeLogLabel;
  4. use App\ValueObject\ChangeLogEntitySearch;
  5. use App\ValueObject\SearchCriteria\ChangeLogLabelSearchCriteria;
  6. use Ecommerce121\UtilBundle\Controller\ControllerBase;
  7. use Ecommerce121\UtilBundle\Repository\QueryOptions;
  8. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  9. use Symfony\Component\HttpFoundation\Response;
  10. /**
  11.  * Class ComponentController.
  12.  */
  13. class ComponentController extends ControllerBase
  14. {
  15.     /**
  16.      * Returns navbar template.
  17.      *
  18.      * @Template("Navigation/navbarComponent.html.twig")
  19.      *
  20.      * @param string $selectedItem
  21.      * @param bool   $hideContents
  22.      *
  23.      * @return array
  24.      */
  25.     public function navbarComponentAction($selectedItem ''$hideContents false)
  26.     {
  27.         return [
  28.             'selectedItem' => $selectedItem,
  29.             'hideContents' => $hideContents,
  30.         ];
  31.     }
  32.     /**
  33.      * ChangeLog component.
  34.      *
  35.      * @Template("ChangeLog/changelogComponent.html.twig")
  36.      *
  37.      * @param string   $title
  38.      * @param array    $entity
  39.      * @param int|null $id
  40.      * @param int|null $itemsPerPage
  41.      *
  42.      * @return array
  43.      */
  44.     public function changelogComponentAction($title$entity$id null$itemsPerPage 10)
  45.     {
  46.         $this->forward404Unless(ChangeLogEntitySearch::isValidValue($entity));
  47.         $criteria = new ChangeLogLabelSearchCriteria();
  48.         $criteria->entity $entity;
  49.         $criteria->entityId $id;
  50.         $changeLogLabels $this->getEntityManager()->getRepository(ChangeLogLabel::class)->search(
  51.             $criteria,
  52.             new QueryOptions(1$itemsPerPage'createdDate''DESC')
  53.         );
  54.         return [
  55.             'title' => $title,
  56.             'changeLogLabels' => $changeLogLabels,
  57.             'entityType' => $entity
  58.         ];
  59.     }
  60. }