Beispiel #1
0
 /**
  * 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));
 }