public function visitMenuItem(MenuItem $item) { $domain = $item->getExtra('translation_domain'); $parameters = $item->getExtra('translation_parameters'); if (false === $parameters) { return; } elseif (!is_array($parameters)) { $parameters = []; } $id = $item->getLabel(); if (null !== ($number = $item->getExtra('translation_number'))) { $item->setLabel($this->translator->transChoice($id, $number, $parameters, $domain)); } else { $item->setLabel($this->translator->trans($id, $parameters, $domain)); } }
/** * Add items into the breadcrumb based on a given child. * * @param MenuItem $item * @param string $locale */ private function addItemsBasedOnTheChild(MenuItem $item, $locale) { if ($item !== null) { $items = array(); $temporaryItem = $item; while ($temporaryItem->getParent() !== null) { $breadCrumb = new MenuItem($temporaryItem->getName(), $this->factory); $breadCrumb->setLabel($temporaryItem->getLabel()); if ($temporaryItem->getUri() !== '#' && $temporaryItem->getUri() !== null) { $breadCrumb->setUri($temporaryItem->getUri()); } $items[] = $breadCrumb; $temporaryItem = $temporaryItem->getParent(); } $home = new MenuItem('core.menu.home', $this->factory); $home->setLabel('core.menu.home'); $home->setUri('/' . $locale); $this->items[] = $home; $this->items = array_merge($this->items, array_reverse($items)); } }