コード例 #1
0
 /**
  * @param ItemInterface $rootItem
  *
  * @return ItemInterface|null
  */
 private function findFirstLevelActive(ItemInterface $rootItem)
 {
     foreach ($rootItem as $firstLevelItem) {
         if ($this->matcher->isCurrent($firstLevelItem) || $this->matcher->isAncestor($firstLevelItem)) {
             return $firstLevelItem;
         }
     }
     return;
 }
コード例 #2
0
 /**
  * @param ItemInterface $item
  *
  * @return ItemInterface|null
  */
 private function retrieveCurrentItem(ItemInterface $item)
 {
     $currentItem = null;
     if ($this->matcher->isCurrent($item)) {
         return $item;
     }
     if ($this->matcher->isAncestor($item)) {
         foreach ($item->getChildren() as $child) {
             $currentItem = $this->retrieveCurrentItem($child);
             if (null !== $currentItem) {
                 break;
             }
         }
     }
     return $currentItem;
 }
コード例 #3
0
ファイル: MenuHelper.php プロジェクト: dongilbert/mautic
 /**
  * Concats the appropriate classes for menu links.
  *
  * @param ItemInterface    $item
  * @param MatcherInterface $matcher
  * @param array            $options
  */
 public function buildClasses(ItemInterface &$item, MatcherInterface &$matcher, $options)
 {
     $isAncestor = $matcher->isAncestor($item, $options['matchingDepth']);
     $isCurrent = $matcher->isCurrent($item);
     $class = $item->getAttribute('class');
     $classes = $class ? " {$class}" : '';
     $classes .= $isCurrent ? " {$options['currentClass']}" : '';
     $classes .= $isAncestor ? " {$options['ancestorClass']}" : '';
     $classes .= $isAncestor && $this->invisibleChildSelected($item, $matcher) ? " {$options['currentClass']}" : '';
     $classes .= $item->actsLikeFirst() ? " {$options['firstClass']}" : '';
     $classes .= $item->actsLikeLast() ? " {$options['lastClass']}" : '';
     $item->setAttribute('class', trim($classes));
 }
コード例 #4
0
ファイル: MenuHelper.php プロジェクト: HomeRefill/mautic
 /**
  * Concats the appropriate classes for menu links
  *
  * @param ItemInterface    $item
  * @param MatcherInterface $matcher
  * @param array            $options
  */
 public function buildClasses(ItemInterface &$item, MatcherInterface &$matcher, $options)
 {
     $showChildren = $item->hasChildren() && $item->getDisplayChildren();
     $isAncestor = $matcher->isAncestor($item, $options["matchingDepth"]);
     $isCurrent = $matcher->isCurrent($item);
     $class = $item->getAttribute("class");
     $classes = $class ? " {$class}" : "";
     $classes .= $isCurrent ? " {$options["currentClass"]}" : "";
     $classes .= $isAncestor ? " {$options["ancestorClass"]}" : "";
     $classes .= $isAncestor && $this->invisibleChildSelected($item, $matcher) ? " {$options["currentClass"]}" : "";
     $classes .= $item->actsLikeFirst() ? " {$options["firstClass"]}" : "";
     $classes .= $item->actsLikeLast() ? " {$options["lastClass"]}" : "";
     $item->setAttribute("class", trim($classes));
 }