src/Twig/WebContent/MenuExtension.php line 29

Open in your IDE?
  1. <?php
  2. namespace App\Twig\WebContent;
  3. use App\Repository\Interfaces\HotelRepositoryInterface;
  4. use Symfony\Component\HttpFoundation\File\Exception\FileException;
  5. use Twig\Environment;
  6. use Twig\TwigFunction;
  7. use WAM\Bundle\WebContentBundle\Repository\Interfaces\MenuItemRepositoryInterface;
  8. use WAM\Bundle\WebContentBundle\Twig\MenuExtension as CoreMenuExtension;
  9. /**
  10.  * Twig extension to render all items form a menu.
  11.  *
  12.  * @author Edgar Tébar <etebar@wearemarketing.com>
  13.  */
  14. class MenuExtension extends CoreMenuExtension
  15. {
  16.     private CoreMenuExtension $decoratedExtension;
  17.     private HotelRepositoryInterface $hotelRepository;
  18.     public function __construct(CoreMenuExtension $decoratedExtensionHotelRepositoryInterface $hotelRepository)
  19.     {
  20.         $this->decoratedExtension $decoratedExtension;
  21.         $this->hotelRepository $hotelRepository;
  22.     }
  23.     public function renderMenu(Environment $twigstring $menu, array $options = [])
  24.     {
  25.         if ($menu == 'TOP') {
  26.             $options array_merge($options, array(
  27.                 'hotels' => $this->hotelRepository->getAllSortedByCity(),
  28.             ));
  29.         }
  30.         return $this->decoratedExtension->renderMenu($twig$menu$options);
  31.     }
  32.     /**
  33.      * Returns the name of the extension.
  34.      *
  35.      * @return string The extension name
  36.      */
  37.     public function getName()
  38.     {
  39.         return 'wam.menu.twig.extension';
  40.     }
  41. }