From a32e3d14088cede04a6ebf55c09ea111fec3efef Mon Sep 17 00:00:00 2001
From: Dries Buytaert <dries@buytaert.net>
Date: Sun, 26 Jan 2003 13:27:59 +0000
Subject: [PATCH] - Added sitemap feature to administration pages.  Requested
 by various   people including Michael and Moshe.

---
 includes/menu.inc    | 17 +++++++++++++++++
 modules/admin.module | 12 +++++++++++-
 2 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/includes/menu.inc b/includes/menu.inc
index df54d7232941..cefa47a272ba 100644
--- a/includes/menu.inc
+++ b/includes/menu.inc
@@ -129,6 +129,23 @@ function menu_tree($parent = "", $all = 1) {
   return $output;
 }
 
+function menu_map($parent = "") {
+
+  $result = db_query("SELECT * FROM menu WHERE parent = '%s' ORDER BY weight, name", $parent);
+
+  if (db_num_rows($result)) {
+    $output = "<ul>";
+    while ($item = db_fetch_object($result)) {
+      $output .= "<li>". menu_item($item) ."</li>";
+      $output .= menu_map($item->name);
+    }
+    $output .= "</ul>";
+  }
+
+  return $output;
+}
+
+
 function menu_add($name, $link, $title = NULL, $help = NULL, $parent = NULL, $weight = 1) {
   if (!db_result(db_query("SELECT name FROM menu WHERE link = '%s'", $link))) {
     db_query("INSERT INTO menu (name, link, title, help, parent, weight) VALUES ('%s', '%s', '%s', '%s', '%s', '%d')", $name, $link, $title, $help, $parent, $weight);
diff --git a/modules/admin.module b/modules/admin.module
index 9a8d039b6eba..29d49a2c28a2 100644
--- a/modules/admin.module
+++ b/modules/admin.module
@@ -9,7 +9,17 @@ function status($message) {
   }
 }
 
-function admin_page($mod) {
+function admin_link($type) {
+  if ($type == "admin") {
+    menu_add("sitemap", url("admin/admin/sitemap"), "Sitemap", NULL, NULL, 8);
+  }
+}
+
+function admin_admin() {
+  print menu_map();
+}
+
+function admin_page() {
   global $user;
 
   if (user_access("access administration pages")) {
-- 
GitLab