/** * @param string|null $modelClass */ function __construct($modelClass = null) { $this->modelClass = $modelClass; if (is_null(static::$current)) { static::$current = $this; $this->level(0); } else { static::$current->addItem($this); $this->level(static::$current->level() + 1); } }
/** * @param string|null $modelClass */ function __construct($modelClass = null) { $admin = Admin::instance(); $this->router = $admin->router; $this->htmlBuilder = $admin->htmlBuilder; $this->modelClass = $modelClass; $this->subItems = []; if (is_null(static::$current)) { static::$current = $this; } else { static::$current->addItem($this); } }
/** * @return MenuItem[] */ public function getMenu() { return $this->menu->items(); }
/** @test */ public function it_renders() { $menuWithItems = new MenuItem(); $menuWithItems->label('With Items'); for ($i = 0; $i < 3; $i++) { $menu = new MenuItem(); $menu->label('Test Label')->icon('fa-test'); $result = $menu->render(); $this->assertEquals('<li><a><i></i> Test Label</a></li>', $result); $menuWithItems->addItem($menu); } $result = $menuWithItems->render(); $this->assertEquals('<li><a><i></i> With Items<span></span></a><ul><li><a><i></i> Test Label</a></li><li><a><i></i> Test Label</a></li><li><a><i></i> Test Label</a></li></ul></li>', $result); }
protected function renderSingleItem() { $content = $this->htmlBuilder->tag('i', ['class' => ['fa', 'fa-fw', $this->menuItem->getIcon()]]); $content .= ' ' . $this->menuItem->getLabel(); return $this->htmlBuilder->tag('a', ['href' => $this->menuItem->getUrl()], $content); }