protected function CreateAfterUrl() { $args = array('navigation' => $this->navigation->GetID()); $args['previous'] = $this->item->GetID(); $parent = $this->item->GetParent(); if ($parent) { $args['parent'] = $parent->GetID(); } return BackendRouter::ModuleUrl(new NavigationItemForm(), $args); }
/** * Returns the first child of the item * @param NavigationItem $item */ public function FirstChildOf($item) { $sql = Access::SqlBuilder(); if ($item) { $tblNavItem = NavigationItem::Schema()->Table(); $where = $sql->IsNull($tblNavItem->Field('Previous'))->And_($sql->Equals($tblNavItem->Field('Parent'), $sql->Value($item->GetID()))); return NavigationItem::Schema()->First($where); } else { return $this->TopMost(); } }
protected function Url() { $urlItem = $this->naviItem->GetUrlItem(); if ($urlItem) { return $urlItem->GetUrl(); } $pageItem = $this->naviItem->GetPageItem(); if ($pageItem) { return FrontendRouter::Url($pageItem); } $itemID = $this->naviItem->GetID(); throw new \LogicException("Navigation item (ID = {$itemID}) without related url or page: clean up database manually"); }