예제 #1
0
 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));
     }
 }
예제 #2
0
 /**
  * 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));
     }
 }