public function add_item($link, $level, $parent = null) { $access = isset($link->access) ? trim($link->access) : ''; if ($access != '' && !CMS::check_globals_or($access)) { return $this; } if (empty($link->url) && empty($link->id) && ($m = Core_Regexps::match_with_results('{^\\%(.+)$}', trim($link->title)))) { $_component = trim($m[1]); $_parms = false; if ($m = Core_Regexps::match_with_results('{^([^\\s]+)\\s+(.+)$}', $_component)) { $_component = $m[1]; $_parms = trim($m[2]); } if (CMS::component_exists($_component)) { $_class = CMS::$component_names[$_component]; $_classref = Core_Types::reflection_for($_class); $links = $_classref->hasMethod('navigation_tree') ? $_classref->getMethod('navigation_tree')->invokeArgs(NULL, array($_parms)) : array(); foreach ($links as $k => &$v) { $v["from-{$_component}"] = 1; } return $this->load_data($links, $level, $parent); } return $this; } return parent::add_item($link, $level, $parent); }
public function add_item($link, $level, $parent = null) { $access = isset($link->access) ? trim($link->access) : ''; if ($access != '' && !CMS::check_globals_or($access)) { return $this; } if (empty($link->url) && empty($link->id) && ($m = Core_Regexps::match_with_results('{^\\%(.+)$}', trim($link->title)))) { $_component = trim($m[1]); $links = $this->load_from_component_by_string($_component); if (!empty($links)) { return $this->load_data($links, $level, $parent); } return $this; } return parent::add_item($link, $level, $parent); }