/** * Load data fixtures with the passed EntityManager * * @param ObjectManager $manager */ public function load(ObjectManager $manager) { $repository = $manager->getRepository('Gedmo\\Translatable\\Entity\\Translation'); $menu = new Menu(); $menu->setName('Sitemap PDJ'); $menu->setSlug('sitemap_pdj'); $repository->translate($menu, 'name', 'fr', 'Plan du site PDJ'); $manager->persist($menu); $item = new Item(); $item->setName('Block 1'); $item->setLabel('Block 1'); $item->setMenu($menu); $item->setPosition(0); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Bloc 1'); $manager->persist($item); $item = new Item(); $item->setName('Block 2'); $item->setLabel('Block 2'); $item->setMenu($menu); $item->setPosition(1); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Bloc 2'); $manager->persist($item); $item = new Item(); $item->setName('Block 3'); $item->setLabel('Block 3'); $item->setMenu($menu); $item->setPosition(2); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Bloc 3'); $manager->persist($item); $menu = new Menu(); $menu->setName('Sitemap IH'); $menu->setSlug('sitemap_ih'); $repository->translate($menu, 'name', 'fr', 'Plan du site IH'); $manager->persist($menu); $item = new Item(); $item->setName('Block 1'); $item->setLabel('Block 1'); $item->setMenu($menu); $item->setPosition(0); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Bloc 1'); $manager->persist($item); $item = new Item(); $item->setName('Block 2'); $item->setLabel('Block 2'); $item->setMenu($menu); $item->setPosition(1); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Bloc 2'); $manager->persist($item); $item = new Item(); $item->setName('Block 3'); $item->setLabel('Block 3'); $item->setMenu($menu); $item->setPosition(2); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Bloc 3'); $manager->persist($item); $menu = new Menu(); $menu->setName('Sitemap QLS'); $menu->setSlug('sitemap_qls'); $repository->translate($menu, 'name', 'fr', 'Plan du site QLS'); $manager->persist($menu); $item = new Item(); $item->setName('Block 1'); $item->setLabel('Block 1'); $item->setMenu($menu); $item->setPosition(0); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Bloc 1'); $manager->persist($item); $item = new Item(); $item->setName('Block 2'); $item->setLabel('Block 2'); $item->setMenu($menu); $item->setPosition(1); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Bloc 2'); $manager->persist($item); $item = new Item(); $item->setName('Block 3'); $item->setLabel('Block 3'); $item->setMenu($menu); $item->setPosition(2); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Bloc 3'); $manager->persist($item); $menu = new Menu(); $menu->setName('Sitemap RDS'); $menu->setSlug('sitemap_rds'); $repository->translate($menu, 'name', 'fr', 'Plan du site RDS'); $manager->persist($menu); $item = new Item(); $item->setName('Block 1'); $item->setLabel('Block 1'); $item->setMenu($menu); $item->setPosition(0); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Bloc 1'); $manager->persist($item); $item = new Item(); $item->setName('Block 2'); $item->setLabel('Block 2'); $item->setMenu($menu); $item->setPosition(1); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Bloc 2'); $manager->persist($item); $item = new Item(); $item->setName('Block 3'); $item->setLabel('Block 3'); $item->setMenu($menu); $item->setPosition(2); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Bloc 3'); $manager->persist($item); $menu = new Menu(); $menu->setName('Sitemap SEH'); $menu->setSlug('sitemap_seh'); $repository->translate($menu, 'name', 'fr', 'Plan du site SEH'); $manager->persist($menu); $item = new Item(); $item->setName('Block 1'); $item->setLabel('Block 1'); $item->setMenu($menu); $item->setPosition(0); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Bloc 1'); $manager->persist($item); $item = new Item(); $item->setName('Block 2'); $item->setLabel('Block 2'); $item->setMenu($menu); $item->setPosition(1); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Bloc 2'); $manager->persist($item); $item = new Item(); $item->setName('Block 3'); $item->setLabel('Block 3'); $item->setMenu($menu); $item->setPosition(2); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Bloc 3'); $manager->persist($item); $manager->flush(); }
/** * @param Item $item * @return array */ public function getParameters(Item $item) { $parameters = array(); foreach ($item->getParameters() as $itemParameter) { $routeParameter = $itemParameter->getParameter(); $parameterName = $routeParameter->getName(); if ($routeParameter->getType()) { $repository = $this->entityManager->getRepository($routeParameter->getType()); $entity = $repository->find($itemParameter->getValue()); // USE PROPERTY ACCESSOR !!! $getter = sprintf('get%s', ucfirst($routeParameter->getValueField())); $parameterValue = $entity->{$getter}(); } else { $parameterValue = $itemParameter->getValue(); } $parameters[$parameterName] = $parameterValue; } return $parameters; }
/** * Load data fixtures with the passed EntityManager * * @param ObjectManager $manager */ public function load(ObjectManager $manager) { $repository = $manager->getRepository('Gedmo\\Translatable\\Entity\\Translation'); $menu = new Menu(); $menu->setName('Main PDJ'); $menu->setSlug('main_pdj'); $repository->translate($menu, 'name', 'fr', 'Menu principal PDJ'); $manager->persist($menu); $homeAttribute = new Item\Attribute(); $homeAttribute->setName('class'); $homeAttribute->setValue('home'); $homeAttribute->setLabel('Homepage'); $homeAttribute->setType(Item\Attribute::LINK); $manager->persist($homeAttribute); $item = new Item(); $item->setName('Homepage'); $item->setLabel('Homepage'); $item->addAttribute($homeAttribute); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Page d\'accueil'); $manager->persist($item); $item = new Item(); $item->setName('Our destinations'); $item->setLabel('Our destinations'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Nos destinations'); $manager->persist($item); $item = new Item(); $item->setName('P\'tit Dej-Hotel offers'); $item->setLabel('P\'tit Dej-Hotel offers'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Les offres P\'tit Dej-Hotel'); $manager->persist($item); $item = new Item(); $item->setName('Discover P\'tit Dej-Hotel'); $item->setLabel('Discover P\'tit Dej-Hotel'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Découvrez P\'tit Dej-Hotel'); $manager->persist($item); $item = new Item(); $item->setName('Loyalty'); $item->setLabel('Loyalty'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Fidélité'); $manager->persist($item); $menu = new Menu(); $menu->setName('Main IH'); $menu->setSlug('main_ih'); $repository->translate($menu, 'name', 'fr', 'Menu principal IH'); $manager->persist($menu); $item = new Item(); $item->setName('Homepage'); $item->setLabel('Homepage'); $item->addAttribute($homeAttribute); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Page d\'accueil'); $manager->persist($item); $item = new Item(); $item->setName('Our destinations'); $item->setLabel('Our destinations'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Nos destinations'); $manager->persist($item); $item = new Item(); $item->setName('Inter-Hotel offers'); $item->setLabel('Inter-Hotel offers'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Les offres Inter-Hotel'); $manager->persist($item); $item = new Item(); $item->setName('Discover Inter-Hotel'); $item->setLabel('Discover Inter-Hotel'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Découvrez Inter-Hotel'); $manager->persist($item); $item = new Item(); $item->setName('Loyalty'); $item->setLabel('Loyalty'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Fidélité'); $manager->persist($item); $item = new Item(); $item->setName('Seminars'); $item->setLabel('Seminars'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Séminaires'); $manager->persist($item); $menu = new Menu(); $menu->setName('Main QYS'); $menu->setSlug('main_qys'); $repository->translate($menu, 'name', 'fr', 'Menu principal QYS'); $manager->persist($menu); $item = new Item(); $item->setName('Homepage'); $item->setLabel('Homepage'); $item->addAttribute($homeAttribute); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Page d\'accueil'); $manager->persist($item); $item = new Item(); $item->setName('Our destinations'); $item->setLabel('Our destinations'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Nos destinations'); $manager->persist($item); $item = new Item(); $item->setName('Qualys-Hotel offers'); $item->setLabel('Qualys-Hotel offers'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Les offres Qualys-Hotel'); $manager->persist($item); $item = new Item(); $item->setName('Discover Qualys-Hotel'); $item->setLabel('Discover Qualys-Hotel'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Découvrez Qualys-Hotel'); $manager->persist($item); $item = new Item(); $item->setName('Loyalty'); $item->setLabel('Loyalty'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Fidélité'); $manager->persist($item); $item = new Item(); $item->setName('Seminars'); $item->setLabel('Seminars'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Séminaires'); $manager->persist($item); $menu = new Menu(); $menu->setName('Main RDS'); $menu->setSlug('main_rds'); $repository->translate($menu, 'name', 'fr', 'Menu principal RDS'); $manager->persist($menu); $item = new Item(); $item->setName('Homepage'); $item->setLabel('Homepage'); $item->addAttribute($homeAttribute); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Page d\'accueil'); $manager->persist($item); $item = new Item(); $item->setName('Our destinations'); $item->setLabel('Our destinations'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Nos destinations'); $manager->persist($item); $item = new Item(); $item->setName('Our offers'); $item->setLabel('Our offers'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Nos offres'); $manager->persist($item); $item = new Item(); $item->setName('Our philosophy'); $item->setLabel('Our philosophy'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Notre philosophie'); $manager->persist($item); $item = new Item(); $item->setName('Gastronomy'); $item->setLabel('Gastronomy'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Gastronomie'); $manager->persist($item); $item = new Item(); $item->setName('Green seminars'); $item->setLabel('Green seminars'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Séminaires au vert'); $manager->persist($item); $giftAttribute = new Item\Attribute(); $giftAttribute->setName('class'); $giftAttribute->setValue('giftBoxes'); $giftAttribute->setLabel('Gift Box'); $giftAttribute->setType(Item\Attribute::LINK); $manager->persist($giftAttribute); $item = new Item(); $item->setName('Our gift packages'); $item->setLabel('Our gift packages'); $item->addAttribute($giftAttribute); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Nos coffrets cadeaux'); $manager->persist($item); $menu = new Menu(); $menu->setName('Main SEH'); $menu->setSlug('main_seh'); $repository->translate($menu, 'name', 'fr', 'Menu principal SEH'); $manager->persist($menu); $item = new Item(); $item->setName('Homepage'); $item->setLabel('Homepage'); $item->addAttribute($homeAttribute); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Page d\'accueil'); $manager->persist($item); $item = new Item(); $item->setName('Our destinations'); $item->setLabel('Our destinations'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Nos destinations'); $manager->persist($item); $item = new Item(); $item->setName('Your envies, our offers'); $item->setLabel('Your envies, our offers'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Vos envies, nos offres'); $manager->persist($item); $item = new Item(); $item->setName('Seminars'); $item->setLabel('Seminars'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Séminaires'); $manager->persist($item); $item = new Item(); $item->setName('Loyalty'); $item->setLabel('Loyalty'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Fidélité'); $manager->persist($item); $item = new Item(); $item->setName('Professional space'); $item->setLabel('Professional space'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Espace professionnel'); $manager->persist($item); $item = new Item(); $item->setName('The group'); $item->setLabel('The group'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Le groupe'); $manager->persist($item); // Menu Footer Nous Contacter $menu = new Menu(); $menu->setName('Footer Contact SEH'); $menu->setSlug('footer-contact-seh'); $repository->translate($menu, 'name', 'fr', 'Menu Footer Nous contacter SEH'); $manager->persist($menu); $item = new Item(); $item->setName('Click here to contact us'); $item->setLabel('Click here to contact us'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Cliquer ici pour nous contacter'); $manager->persist($item); $item = new Item(); $item->setName('Discover the FAQ'); $item->setLabel('Discover the FAQ'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Découvrir les FAQ'); $manager->persist($item); $menu = new Menu(); $menu->setName('Footer Contact PDJ'); $menu->setSlug('footer-contact-pdj'); $repository->translate($menu, 'name', 'fr', 'Menu Footer Nous contacter PDJ'); $manager->persist($menu); $item = new Item(); $item->setName('Click here to contact us'); $item->setLabel('Click here to contact us'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Cliquer ici pour nous contacter'); $manager->persist($item); $item = new Item(); $item->setName('Discover the FAQ'); $item->setLabel('Discover the FAQ'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Découvrir les FAQ'); $manager->persist($item); $menu = new Menu(); $menu->setName('Footer Contact IH'); $menu->setSlug('footer-contact-ih'); $repository->translate($menu, 'name', 'fr', 'Menu Footer Nous contacter IH'); $manager->persist($menu); $item = new Item(); $item->setName('Click here to contact us'); $item->setLabel('Click here to contact us'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Cliquer ici pour nous contacter'); $manager->persist($item); $item = new Item(); $item->setName('Discover the FAQ'); $item->setLabel('Discover the FAQ'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Découvrir les FAQ'); $manager->persist($item); $menu = new Menu(); $menu->setName('Footer Contact QYS'); $menu->setSlug('footer-contact-qys'); $repository->translate($menu, 'name', 'fr', 'Menu Footer Nous contacter QYS'); $manager->persist($menu); $item = new Item(); $item->setName('Click here to contact us'); $item->setLabel('Click here to contact us'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Cliquer ici pour nous contacter'); $manager->persist($item); $item = new Item(); $item->setName('Discover the FAQ'); $item->setLabel('Discover the FAQ'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Découvrir les FAQ'); $manager->persist($item); $menu = new Menu(); $menu->setName('Footer Contact RDS'); $menu->setSlug('footer-contact-rds'); $repository->translate($menu, 'name', 'fr', 'Menu Footer Nous contacter RDS'); $manager->persist($menu); $item = new Item(); $item->setName('Click here to contact us'); $item->setLabel('Click here to contact us'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Cliquer ici pour nous contacter'); $manager->persist($item); $item = new Item(); $item->setName('Discover the FAQ'); $item->setLabel('Discover the FAQ'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Découvrir les FAQ'); $manager->persist($item); // Fin Menu Footer Nous Contacter // Menu Footer Espace pro $menu = new Menu(); $menu->setName('Footer Pro space PDJ'); $menu->setSlug('footer-pro-space_pdj'); $repository->translate($menu, 'name', 'fr', 'Menu Footer Espace pro PDJ'); $manager->persist($menu); $item = new Item(); $item->setName('Company'); $item->setLabel('Company'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Société'); $manager->persist($item); $item = new Item(); $item->setName('Tour Operator'); $item->setLabel('Tour Operator'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Tour opérateur'); $manager->persist($item); $item = new Item(); $item->setName('Group'); $item->setLabel('Group'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Groupe'); $manager->persist($item); $item = new Item(); $item->setName('Reservations'); $item->setLabel('Reservations'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Reservations'); $manager->persist($item); $menu = new Menu(); $menu->setName('Footer Pro space IH'); $menu->setSlug('footer-pro-space-ih'); $repository->translate($menu, 'name', 'fr', 'Menu Footer Espace pro IH'); $manager->persist($menu); $item = new Item(); $item->setName('Company'); $item->setLabel('Company'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Société'); $manager->persist($item); $item = new Item(); $item->setName('Tour Operator'); $item->setLabel('Tour Operator'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Tour opérateur'); $manager->persist($item); $item = new Item(); $item->setName('Group'); $item->setLabel('Group'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Groupe'); $manager->persist($item); $item = new Item(); $item->setName('Reservations'); $item->setLabel('Reservations'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Reservations'); $manager->persist($item); $menu = new Menu(); $menu->setName('Footer Pro space QYS'); $menu->setSlug('footer-pro-space-qys'); $repository->translate($menu, 'name', 'fr', 'Menu Footer Espace pro QYS'); $manager->persist($menu); $item = new Item(); $item->setName('Company'); $item->setLabel('Company'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Société'); $manager->persist($item); $item = new Item(); $item->setName('Tour Operator'); $item->setLabel('Tour Operator'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Tour opérateur'); $manager->persist($item); $item = new Item(); $item->setName('Group'); $item->setLabel('Group'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Groupe'); $manager->persist($item); $item = new Item(); $item->setName('Reservations'); $item->setLabel('Reservations'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Reservations'); $manager->persist($item); $menu = new Menu(); $menu->setName('Footer Pro space RDS'); $menu->setSlug('footer-pro-space-rds'); $repository->translate($menu, 'name', 'fr', 'Menu Footer Espace pro RDS'); $manager->persist($menu); $item = new Item(); $item->setName('Company'); $item->setLabel('Company'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Société'); $manager->persist($item); $item = new Item(); $item->setName('Tour Operator'); $item->setLabel('Tour Operator'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Tour opérateur'); $manager->persist($item); $item = new Item(); $item->setName('Group'); $item->setLabel('Group'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Groupe'); $manager->persist($item); $item = new Item(); $item->setName('Reservations'); $item->setLabel('Reservations'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Reservations'); $manager->persist($item); $menu = new Menu(); $menu->setName('Footer Pro space SEH'); $menu->setSlug('footer-pro-space-seh'); $repository->translate($menu, 'name', 'fr', 'Menu Footer Espace pro SEH'); $manager->persist($menu); $item = new Item(); $item->setName('Company'); $item->setLabel('Company'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Société'); $manager->persist($item); $item = new Item(); $item->setName('Tour Operator'); $item->setLabel('Tour Operator'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Tour opérateur'); $manager->persist($item); $item = new Item(); $item->setName('Group'); $item->setLabel('Group'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Groupe'); $manager->persist($item); $item = new Item(); $item->setName('Reservations'); $item->setLabel('Reservations'); $item->setMenu($menu); $menu->addItem($item); $repository->translate($item, 'label', 'fr', 'Reservations'); $manager->persist($item); // Fin Menu Footer Espace pro $manager->flush(); }
/** * @param $entityName * @param $type * @param null $depth * @param null $displayAll * * @return array */ private function generateChildren($entityName, $type, $depth = null, $displayAll = null) { $em = $this->entityManager; $children = array(); $brandId = $this->getBrandId(); $brandSlug = $this->getBrandSlug(); $entityRepository = $em->getRepository($entityName); $entities = $entityRepository->findAllForMenu(strpos($entityName, 'Hotel') === false || $brandSlug != 'seh' ? $brandId : null); foreach ($entities as $entity) { if (strpos($entityName, 'Hotel') !== false) { $brandName = $entity->getBrand()->getName(); $itemName = sprintf('%s %s', $entity->getName(), $brandName); $keyGroup = $brandName; } else { $itemName = $entity->getName(); $keyGroup = substr($entity->getName(), 0, 1); } if (strpos($entityName, 'Region') !== false) { $countryName = $entity->getCountry()->getName(); $countrySlug = $entity->getCountry()->getSlug(); if ($countryName && $countrySlug !== 'france') { $itemName = sprintf('%s (%s)', $itemName, $countryName); } } $child = new Menu\Item(); $child->setName($itemName); $child->setLabel($itemName); $child->setSlug(sprintf('%s-menu-item', $entity->getSlug())); try { $link = $this->urlManager->generateUrlByType($entity, $type, true); } catch (\Exception $e) { $link = '#'; } $child->setLink(array('externalLink' => $link)); if ($entity->getMenuThumbnail() && $entity->getMenuThumbnail()) { $child->setImage($entity->getMenuThumbnail()); } $children[$keyGroup][] = $child; } return $children; }