/** * creates a menu of siblings for given page_id * * @access public * @param integer $page_id * @return string **/ public static function siblingsMenu($id = NULL, $max_level = 999, $show_current = false, array &$options = array()) { global $page_id; if ($id === NULL) { $id = $page_id; } if ($id === 0) { $id = CAT_Helper_Page::getRootParent($page_id); } self::analyzeOptions($options); $level = CAT_Helper_Page::properties($id, 'level'); $menu = CAT_Helper_Page::getPagesForLevel($level, self::$menu_no); $selected = $id; // if current page is not in the menu... if (!self::isInMenu($id, $menu)) { $trail = CAT_Helper_Page::getPageTrail($page_id, false, true); foreach ($trail as $id) { if (false !== ($i = self::isInMenu($id, $menu))) { $menu[$i]['is_open'] = true; $menu[$i]['is_current'] = true; $selected = $menu[$i]['page_id']; break; } } } //return CAT_Helper_ListBuilder::getInstance(false)->config(array('__auto_link' => true))->tree($menu,0,$selected); return self::$list->buildList($menu, array('root_id' => 0, 'selected' => $selected)); }