Example #1
0
 /**
  * Hent innholdet av en node
  */
 public static function load_node($node_id, $explicit = true)
 {
     $node_id = intval($node_id);
     // finnes ikke?
     if (!isset(self::$nodes[$node_id])) {
         if ($explicit) {
             page_not_found();
         }
         return false;
     }
     self::$node_id = $node_id;
     $parent_enabled = 1;
     // finn hvilke parent nodes vi har
     $parent_nodes = array();
     $parent_id = $node_id == 0 || !isset(self::$nodes[self::$nodes[$node_id]['node_parent_node_id']]) ? 0 : self::$nodes[self::$nodes[$node_id]['node_parent_node_id']]['node_id'];
     while (isset(self::$nodes[$parent_id]) && ($row = self::$nodes[$parent_id])) {
         $parent_nodes[] = $parent_id;
         $parent_id = $row['node_parent_node_id'];
         if ($row['node_enabled'] == 0) {
             $parent_enabled = 0;
         }
     }
     // fant ikke tilbake til root?
     if ($parent_id != 0) {
         if ($explicit) {
             page_not_found();
         }
         return false;
     }
     // hent mer info
     self::$node_info = self::$nodes[$node_id];
     self::$node_info['parent_enabled'] = $parent_enabled;
     self::$node_params = new params(self::$node_info['node_params']);
     // sett opp path
     $parent_nodes = array_reverse($parent_nodes);
     $parent_nodes[] = $node_id;
     foreach ($parent_nodes as $id) {
         $row = self::$nodes[$id];
         // sett opp linken
         switch ($row['node_type']) {
             case "url_absolute":
                 $params = new params($row['node_params']);
                 $url = htmlspecialchars($params->get("url"));
                 break;
             case "url_relative":
                 $params = new params($row['node_params']);
                 $url = ess::$s['relative_path'] . htmlspecialchars($params->get("url"));
                 break;
             default:
                 // container
                 if ($row['node_id'] == self::$default_node) {
                     $url = ess::$s['relative_path'] . '/node';
                 } else {
                     $url = ess::$s['relative_path'] . '/node/' . $row['node_id'];
                 }
         }
         // legg til
         nodes::add_node($row['node_id'], $row['node_title'], $url);
         ess::$b->page->add_title($row['node_title']);
     }
     return true;
 }