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