/** * 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); }
/** * 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); }