/** * Sett opp menygruppe */ protected static function build_menu_group(&$html, $prefix, $node_id, &$parent_nodes, &$expand_max, $expand) { if (isset(self::$nodes_sub_active[$node_id])) { $expand_more = !$expand_max || $expand_max > $expand; $expand++; $prefix_sub = $prefix . "\t"; $prefix_next = $prefix_sub . "\t"; $html .= $prefix . "<ul>"; foreach (self::$nodes_sub_active[$node_id] as $row) { $row = self::$nodes[$row]; // er vi på denne? (uthev den) $active = $row['node_id'] == self::$node_id || !$expand_more && in_array($row['node_id'], $parent_nodes) ? ' class="active"' : ''; // innholdet switch ($row['node_type']) { case "url_absolute": $params = new params($row['node_params']); $row_prefix = '<a href="' . htmlspecialchars($params->get("url")) . '"' . $active . ($params->get("new_window") ? ' target="_blank"' : '') . '>'; $row_suffix = '</a>'; break; case "url_relative": $params = new params($row['node_params']); $row_prefix = '<a href="' . ess::$s['relative_path'] . htmlspecialchars($params->get("url")) . '"' . $active . ($params->get("new_window") ? ' target="_blank"' : '') . '>'; $row_suffix = '</a>'; 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']; } $row_prefix = '<a href="' . $url . '"' . $active . '>'; $row_suffix = '</a>'; } $content = $row_prefix . htmlspecialchars($row['node_title']) . $row_suffix; // enheten $html .= $prefix_sub . '<li' . $active . '>'; // underelementer if (($row['node_expand_menu'] > 0 || in_array($row['node_id'], $parent_nodes) || $row['node_id'] == self::$node_id) && $expand_more) { $html .= $prefix_next . $content; nodes::build_menu_group($html, $prefix_next, $row['node_id'], $parent_nodes, $expand_max, $expand); $html .= $prefix_sub; } else { $html .= $content; } $html .= '</li>'; } $html .= $prefix . "</ul>"; } }