From 92995414b4c4bbecc9ef13dba29009e02cf951a7 Mon Sep 17 00:00:00 2001 From: Dries Buytaert <dries@buytaert.net> Date: Sat, 8 Nov 2003 09:56:22 +0000 Subject: [PATCH] - Committed stage 1 of the menu callbacks improvements. Patch by Jonathan. --- includes/menu.inc | 8 ++++++++ index.php | 32 ++++++++++++++++++++++++-------- modules/admin.module | 31 ++----------------------------- modules/blog.module | 4 ++-- modules/blog/blog.module | 4 ++-- modules/book.module | 2 +- modules/book/book.module | 2 +- modules/forum.module | 2 +- modules/forum/forum.module | 2 +- modules/page.module | 2 +- modules/page/page.module | 2 +- modules/poll.module | 2 +- modules/poll/poll.module | 2 +- modules/queue.module | 2 +- modules/story.module | 2 +- modules/story/story.module | 2 +- modules/tracker.module | 2 +- modules/tracker/tracker.module | 2 +- modules/user.module | 6 +++--- modules/user/user.module | 6 +++--- 20 files changed, 57 insertions(+), 60 deletions(-) diff --git a/includes/menu.inc b/includes/menu.inc index 7cb17459a4e9..e8276b38ad6a 100644 --- a/includes/menu.inc +++ b/includes/menu.inc @@ -110,6 +110,14 @@ function menu_execute_active_handler() { } } +function menu_active_handler_exists() { + global $_list; + + $path = menu_get_active_item(); + + return function_exists($_list[$path]["callback"]); +} + /** * Returns true when the path is in the active trail. */ diff --git a/index.php b/index.php index 35f865a002a3..b4834e96a25d 100644 --- a/index.php +++ b/index.php @@ -9,18 +9,34 @@ menu_build("system"); -$mod = arg(0); - -if (isset($mod) && module_hook($mod, "page")) { - module_invoke($mod, "page"); +if (menu_active_handler_exists()) { + $breadcrumb = menu_get_active_breadcrumb(); + array_pop($breadcrumb); + $title = menu_get_active_title(); + + theme("header"); + theme("breadcrumb", $breadcrumb); + if ($help = menu_get_active_help()) { + $contents = "<small>$help</small><hr />"; + } + $contents .= menu_execute_active_handler(); + theme("box", $title, $contents); + theme("footer"); } else { - if (module_hook(variable_get("site_frontpage", "node"), "page")) { - module_invoke(variable_get("site_frontpage", "node"), "page"); + $mod = arg(0); + + if (isset($mod) && module_hook($mod, "page")) { + module_invoke($mod, "page"); } else { - theme("header"); - theme("footer"); + if (module_hook(variable_get("site_frontpage", "node"), "page")) { + module_invoke(variable_get("site_frontpage", "node"), "page"); + } + else { + theme("header"); + theme("footer"); + } } } diff --git a/modules/admin.module b/modules/admin.module index f8667f1f6352..4df79bc19e72 100644 --- a/modules/admin.module +++ b/modules/admin.module @@ -32,36 +32,9 @@ function admin_link($type) { } } -function admin_page() { +function admin_admin() { if (user_access("access administration pages")) { - $title = menu_get_active_title(); - - theme("header", $title); - - $contents = ""; - - if ($help = menu_get_active_help()) { - $contents .= "<small>$help</small><hr />"; - } - - if (arg(1)) { - $contents .= menu_execute_active_handler(); - } - else { - $contents .= watchdog_overview("actions"); - } - - $breadcrumb = menu_get_active_breadcrumb(); - array_pop($breadcrumb); - - theme("breadcrumb", $breadcrumb); - theme("box", $title, $contents); - theme("footer"); - } - else { - theme("header", t("Access denied")); - theme("box", t("Access denied"), message_access()); - theme("footer"); + return watchdog_overview("actions"); } } diff --git a/modules/blog.module b/modules/blog.module index a8a54c4b36fc..c8aa80a438be 100644 --- a/modules/blog.module +++ b/modules/blog.module @@ -252,10 +252,10 @@ function blog_link($type, $node = 0, $main) { if ($type == "system") { if (user_access("maintain personal blog")) { - menu("node/add/blog", t("blog entry"), "blog_page", 0); + menu("node/add/blog", t("blog entry"), "page", 0); } if (user_access("maintain personal blog")) { - menu("blog/" . $user->uid, t("my blog"), "user_page", 1); + menu("blog/" . $user->uid, t("my blog"), "page", 1); } } diff --git a/modules/blog/blog.module b/modules/blog/blog.module index a8a54c4b36fc..c8aa80a438be 100644 --- a/modules/blog/blog.module +++ b/modules/blog/blog.module @@ -252,10 +252,10 @@ function blog_link($type, $node = 0, $main) { if ($type == "system") { if (user_access("maintain personal blog")) { - menu("node/add/blog", t("blog entry"), "blog_page", 0); + menu("node/add/blog", t("blog entry"), "page", 0); } if (user_access("maintain personal blog")) { - menu("blog/" . $user->uid, t("my blog"), "user_page", 1); + menu("blog/" . $user->uid, t("my blog"), "page", 1); } } diff --git a/modules/book.module b/modules/book.module index 72059c6e32ee..ec855509555f 100644 --- a/modules/book.module +++ b/modules/book.module @@ -71,7 +71,7 @@ function book_link($type, $node = 0, $main = 0) { if ($type == "system") { if (user_access("maintain books")) { - menu("node/add/book", t("book page"), "book_page", 0); + menu("node/add/book", t("book page"), "page", 0); } if (user_access("administer nodes")) { menu("admin/node/book", t("books"), "book_admin", 4); diff --git a/modules/book/book.module b/modules/book/book.module index 72059c6e32ee..ec855509555f 100644 --- a/modules/book/book.module +++ b/modules/book/book.module @@ -71,7 +71,7 @@ function book_link($type, $node = 0, $main = 0) { if ($type == "system") { if (user_access("maintain books")) { - menu("node/add/book", t("book page"), "book_page", 0); + menu("node/add/book", t("book page"), "page", 0); } if (user_access("administer nodes")) { menu("admin/node/book", t("books"), "book_admin", 4); diff --git a/modules/forum.module b/modules/forum.module index 66fee1d55572..63755b56ee9c 100644 --- a/modules/forum.module +++ b/modules/forum.module @@ -94,7 +94,7 @@ function forum_link($type, $node = 0, $main = 0) { } if ($type == "system" && user_access("create forum topics")) { - menu("node/add/forum",t("forum topic"), "forum_page"); + menu("node/add/forum",t("forum topic"), "page"); } if (!$main && $type == "node" && $node->type == "forum") { diff --git a/modules/forum/forum.module b/modules/forum/forum.module index 66fee1d55572..63755b56ee9c 100644 --- a/modules/forum/forum.module +++ b/modules/forum/forum.module @@ -94,7 +94,7 @@ function forum_link($type, $node = 0, $main = 0) { } if ($type == "system" && user_access("create forum topics")) { - menu("node/add/forum",t("forum topic"), "forum_page"); + menu("node/add/forum",t("forum topic"), "page"); } if (!$main && $type == "node" && $node->type == "forum") { diff --git a/modules/page.module b/modules/page.module index 7e7fe72b8886..ff6e8c2e1102 100644 --- a/modules/page.module +++ b/modules/page.module @@ -89,7 +89,7 @@ function page_link($type) { if ($type == "system") { if (user_access("maintain static pages")) { - menu("node/add/page", t("static page"), "page_page", 0); + menu("node/add/page", t("static page"), "page", 0); } } diff --git a/modules/page/page.module b/modules/page/page.module index 7e7fe72b8886..ff6e8c2e1102 100644 --- a/modules/page/page.module +++ b/modules/page/page.module @@ -89,7 +89,7 @@ function page_link($type) { if ($type == "system") { if (user_access("maintain static pages")) { - menu("node/add/page", t("static page"), "page_page", 0); + menu("node/add/page", t("static page"), "page", 0); } } diff --git a/modules/poll.module b/modules/poll.module index 7c06eb22aad1..b4bd980ced88 100644 --- a/modules/poll.module +++ b/modules/poll.module @@ -182,7 +182,7 @@ function poll_link($type, $node = 0, $main) { if ($type == "system") { if (user_access("create polls")) { - menu("node/add/poll", t("poll"), "poll_page", 0); + menu("node/add/poll", t("poll"), "page", 0); } } else if ($type == "page" && user_access("access content")) { diff --git a/modules/poll/poll.module b/modules/poll/poll.module index 7c06eb22aad1..b4bd980ced88 100644 --- a/modules/poll/poll.module +++ b/modules/poll/poll.module @@ -182,7 +182,7 @@ function poll_link($type, $node = 0, $main) { if ($type == "system") { if (user_access("create polls")) { - menu("node/add/poll", t("poll"), "poll_page", 0); + menu("node/add/poll", t("poll"), "page", 0); } } else if ($type == "page" && user_access("access content")) { diff --git a/modules/queue.module b/modules/queue.module index cc526ddd059b..92f2decb1683 100644 --- a/modules/queue.module +++ b/modules/queue.module @@ -35,7 +35,7 @@ function queue_perm() { function queue_link($type) { if ($type == "system") { if (user_access("access submission queue")) { - menu("queue", t("view submissions"), "queue_page", 1); + menu("queue", t("view submissions"), "page", 1); } } diff --git a/modules/story.module b/modules/story.module index 17ea3b6c2ac8..b1559c0eda75 100644 --- a/modules/story.module +++ b/modules/story.module @@ -53,7 +53,7 @@ function story_link($type) { if ($type == "system") { if (user_access("create stories")) { - menu("node/add/story", t("story"), "story_page", 0); + menu("node/add/story", t("story"), "page", 0); } } diff --git a/modules/story/story.module b/modules/story/story.module index 17ea3b6c2ac8..b1559c0eda75 100644 --- a/modules/story/story.module +++ b/modules/story/story.module @@ -53,7 +53,7 @@ function story_link($type) { if ($type == "system") { if (user_access("create stories")) { - menu("node/add/story", t("story"), "story_page", 0); + menu("node/add/story", t("story"), "page", 0); } } diff --git a/modules/tracker.module b/modules/tracker.module index cb75d04e2e1a..78d27c793ab8 100644 --- a/modules/tracker.module +++ b/modules/tracker.module @@ -22,7 +22,7 @@ function tracker_link($type) { if ($type == "system") { if (user_access("access content")) { - menu("tracker", t("recent posts"), "tracker_page", 1); + menu("tracker", t("recent posts"), "page", 1); } } diff --git a/modules/tracker/tracker.module b/modules/tracker/tracker.module index cb75d04e2e1a..78d27c793ab8 100644 --- a/modules/tracker/tracker.module +++ b/modules/tracker/tracker.module @@ -22,7 +22,7 @@ function tracker_link($type) { if ($type == "system") { if (user_access("access content")) { - menu("tracker", t("recent posts"), "tracker_page", 1); + menu("tracker", t("recent posts"), "page", 1); } } diff --git a/modules/user.module b/modules/user.module index d67f95359856..853638672afb 100644 --- a/modules/user.module +++ b/modules/user.module @@ -496,9 +496,9 @@ function user_link($type) { if ($type == "system") { global $user; if ($user->uid) { - menu("user", t("my account"), "user_page", 8); - menu("user/edit", t("edit account"), "user_page", 0); - menu("user/logout", t("log out"), "user_page", 10); + menu("user", t("my account"), "page", 8); + menu("user/edit", t("edit account"), "page", 0); + menu("user/logout", t("log out"), "page", 10); } if (user_access("administer users")) { diff --git a/modules/user/user.module b/modules/user/user.module index d67f95359856..853638672afb 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -496,9 +496,9 @@ function user_link($type) { if ($type == "system") { global $user; if ($user->uid) { - menu("user", t("my account"), "user_page", 8); - menu("user/edit", t("edit account"), "user_page", 0); - menu("user/logout", t("log out"), "user_page", 10); + menu("user", t("my account"), "page", 8); + menu("user/edit", t("edit account"), "page", 0); + menu("user/logout", t("log out"), "page", 10); } if (user_access("administer users")) { -- GitLab