protected function attached($presenter) { parent::attached($presenter); if ($presenter instanceof Presenter) { foreach ($this->rootItem->getItems(TRUE) as $item) { !$item->isUrl() and $item->setCurrent($presenter->isLinkCurrent($item->link, $item->linkArgs)); } } }
protected function createItems() { $rootItem = new Item('Homepage', 'Homepage:default'); $rootItem->addItem('page', 'Page', 'Page:default', 'fa-file-text-o')->addItem('list', 'List', 'Page:list'); $settingItem = $rootItem->addItem('setting', 'Setting', 'Setting:default'); $settingItem->addItem('base', 'Base', 'Setting:base'); $advanceItem = $settingItem->addItem('advanced', 'Advanced', 'Setting:advanced'); $advanceItem->addItem('web', 'Web', 'Setting:web'); $advanceItem->addItem('mail', 'Mail', 'Setting:mail'); return $rootItem; }
private function addItems(Item $rootItem, $items) { if (!is_array($items)) { return; } foreach ($items as $name => $data) { $data += $this->default; $item = $rootItem->addItem($name, $data['label'], $data['link'], $data['icon'], $data['resource']); $item->setLinkArgs($data['linkArgs']); $item->setActive($data['active']); $item->setValue($data['value']); $item->setOptions($data['options']); $this->addItems($item, $data['items']); } }