Пример #1
0
 /**
  * Render a treeview
  *
  * @param Group $group
  *
  * @return string
  */
 protected function renderTreeview(Group $group)
 {
     $match = false;
     $html = '';
     $template = '
         <li class="treeview %s">
             <a href="#">
                 <i class="%s"></i> <span>%s</span> <i class="fa fa-angle-left pull-right"></i>
             </a>
             <ul class="treeview-menu">
                 %s
             </ul>
         </li>
     ';
     foreach ($group->items() as $item) {
         if (!$item->hasAccess()) {
             continue;
         }
         if ($item instanceof Group) {
             $html .= $this->renderTreeview($item);
         } else {
             $html .= $this->renderItem($item);
             if ($this->getResolver()->match($item)) {
                 $match = true;
             }
         }
     }
     if (in_array(WithIcon::class, class_uses($group))) {
         /** @var WithIcon $group */
         $icon = $group->icon();
     } else {
         $icon = '';
     }
     $value = null === $this->getTranslator() ? $group->value() : $this->getTranslator()->translate($group->value());
     return sprintf($template, $match ? 'active' : '', $icon, $value, $html);
 }
Пример #2
0
 /**
  * Render a dropdown
  *
  * @param Group $group
  *
  * @return string
  */
 protected function renderDropdown(Group $group)
 {
     $html = '';
     $template = '
         <li class="dropdown">
             <a href="#" class="dropdown-toggle" data-toggle="dropdown"> %s <span class="caret"></span></a>
             <ul class="dropdown-menu">
                 %s
             </ul>
         </li>
     ';
     $groupValue = null === $this->getTranslator() ? $group->value() : $this->getTranslator()->translate($group->value());
     if (in_array(WithIcon::class, class_uses($group))) {
         /** @var WithIcon $item */
         $groupValue = sprintf('<i class="%s"></i> %s', $group->icon(), $groupValue);
     }
     foreach ($group->items() as $item) {
         if (!$item->hasAccess()) {
             continue;
         }
         if ($item instanceof Separator) {
             $html .= $this->renderSeparator();
         } else {
             $html .= $this->renderItem($item);
         }
     }
     return sprintf($template, $groupValue, $html);
 }