/** * 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; }