function generate_tree($start_obj_id, $objects) { $obj_tree = array(); foreach ($objects as $obj_id => $obj_data) { if ($start_obj_id == $obj_data['parent']) { $obj_tree[$obj_id]['sort_order'] = $obj_data['sort_order']; $obj_tree[$obj_id]['children'] = generate_tree($obj_id, $objects); } } uasort($obj_tree, 'generate_tree_cmp'); return $obj_tree; }
function generate_tree($array, $label_item_id = "item_id", $label_parent_id = "item_parent", $label_subitems = "item_subitems", $localParentId = 0) { $branch = array(); foreach ($array as $element) { if ($element[$label_parent_id] == $localParentId) { $children = generate_tree($array, $label_item_id, $label_parent_id, $label_subitems, $element[$label_item_id]); if ($children) { $element[$label_subitems] = $children; } $branch[] = $element; } } return $branch; }
$item_id = $item_array["ID"]; $item_name = ""; if (isset($item_array["hostname"])) { $item_name .= $item_array["hostname"]; if (isset($item_array["entryname"])) { $item_name .= ":"; } } if (isset($item_array["entryname"])) { $item_name .= $item_array["entryname"]; } echo "<option value={$item_id}"; if (isset($id) and $id == $item_id) { echo " SELECTED"; # set the name of the selected item $main_item_name = $item_name; } echo ">{$item_name}</option>"; } echo '</select> </td>'; echo '</tr>'; } echo '</table></fieldset>'; echo '</form><br>'; # Show the tree if (!empty($id)) { generate_tree($id); } mysql_close($dbh); require_once 'include/foot.php'; }
} // redirect redirect(LINKS::get("admin_menus_view", $menu_id)); } /* * daca se vrea stergerea unui element */ if (isset($_POST['btn_delete_item'])) { $del = $db->query("DELETE FROM dl_menus_items WHERE item_id = '{$item_id}'"); $upd = $db->query("UPDATE dl_menus_items SET item_parent = '0' WHERE item_parent = '{$item_id}'"); redirect(LINKS::get("admin_menus_view", $menu_id)); } // select all menus $current_menus = $db->query_fetch("SELECT * FROM dl_menus ORDER BY menu_title ASC"); // select current menu infos $menu = $db->query_fetch("SELECT * FROM dl_menus WHERE menu_id = '{$menu_id}'")[0]; $menu['items'] = $db->query_fetch("SELECT * FROM dl_menus_items WHERE item_menu = '{$menu_id}' ORDER BY item_parent, item_sort ASC"); $c_item = $db->query_fetch("SELECT * FROM dl_menus_items WHERE item_id = '{$item_id}' LIMIT 1")[0]; $c_item['item_link'] = generate_link($c_item['item_value']); // generate tree $menu['items'] = generate_tree($menu['items']); //print_array($c_item); // assign data TPL::assign("current_menus", $current_menus); TPL::assign("c_menu", $menu); TPL::assign("c_item", $c_item); // set render TPL::render('v_content/content_menus'); break; } }
public static function get_menu($menu_id) { global $db; $menu_id = $db->real_escape($menu_id); if (!is_numeric($menu_id)) { $menu_id = $db->query_fetch("SELECT menu_id FROM dl_menus WHERE menu_title = '{$menu_id}'")[0]['menu_id']; } $menu = $db->query_fetch("SELECT * FROM dl_menus_items WHERE item_menu = {$menu_id} ORDER BY item_parent, item_sort ASC"); $current_url = URL::get_full_url(); foreach ($menu as $k => $item) { $menu[$k]['item_link'] = generate_link($item['item_value']); if ($menu[$k]['item_link'] == $current_url) { $menu[$k]['item_current'] = true; } else { $menu[$k]['item_current'] = false; } $menu[$k]['item_subitems'] = array(); } $menu = generate_tree($menu); return $menu; }