From d988dae61fdbbcf4802f7de1bbfa8fe4be85827a Mon Sep 17 00:00:00 2001 From: Dries Buytaert <dries@buytaert.net> Date: Wed, 30 Jan 2002 18:15:02 +0000 Subject: [PATCH] - Applied Natrak's module improvements. --- includes/module.inc | 14 ++++++++++++++ modules/blog.module | 9 ++++++--- modules/blog/blog.module | 9 ++++++--- modules/queue.module | 2 +- modules/tracker.module | 2 +- modules/tracker/tracker.module | 2 +- modules/user.module | 26 +++++++++++--------------- modules/user/user.module | 26 +++++++++++--------------- 8 files changed, 51 insertions(+), 39 deletions(-) diff --git a/includes/module.inc b/includes/module.inc index 2e8476572e18..8f53e85914ae 100644 --- a/includes/module.inc +++ b/includes/module.inc @@ -19,6 +19,20 @@ function module_invoke($name, $hook, $a1 = NULL, $a2 = NULL, $a3 = NULL, $a4 = N } } +// invoke $hook for all appropriate modules: +function module_invoke_all($hook, $a1 = NULL, $a2 = NULL, $a3 = NULL, $a4 = NULL) { + $return = array(); + foreach (module_list() as $name) { + if (module_hook($name, $hook)) { + if ($result = module_invoke($name, $hook, $a1, $a2, $a3, $a4)) { + $return = array_merge($return, $result); + } + } + } + + return $return; +} + // return array of module names (includes lazy module loading): function module_list() { static $list; diff --git a/modules/blog.module b/modules/blog.module index 04dcea472e4e..1674394a1f03 100644 --- a/modules/blog.module +++ b/modules/blog.module @@ -314,9 +314,12 @@ function blog_link($type, $node = 0) { $links[] = "<a href=\"module.php?mod=blog\" title=\"". t("Read the latest blog entries.") ."\">". t("user blogs") ."</a>"; } - if ($type == "menu") { - $links[] = "<a href=\"module.php?mod=node&op=add&type=blog\" title=\"". t("Post a new entry to your personal blog.") ."\">". t("add blog entry") ."</a>"; - $links[] = "<a href=\"module.php?mod=blog&op=view&id=$user->uid\" title=\"". t("Read your latest blog entries.") ."\">". t("view your blog") ."</a>"; + if ($type == "menu.create" && user_access("post content")) { + $links[] = "<a href=\"module.php?mod=node&op=add&type=blog\" title=\"". t("Post a new entry to your personal blog.") ."\">". t("create blog entry") ."</a>"; + } + + if ($type == "menu.view" && user_access("access content")) { + $links[] = "<a href=\"module.php?mod=blog&op=view&id=$user->uid\" title=\"". t("Read your latest blog entries.") ."\">". t("view personal blog") ."</a>"; } if ($type == "node" && $node->type == "blog") { diff --git a/modules/blog/blog.module b/modules/blog/blog.module index 04dcea472e4e..1674394a1f03 100644 --- a/modules/blog/blog.module +++ b/modules/blog/blog.module @@ -314,9 +314,12 @@ function blog_link($type, $node = 0) { $links[] = "<a href=\"module.php?mod=blog\" title=\"". t("Read the latest blog entries.") ."\">". t("user blogs") ."</a>"; } - if ($type == "menu") { - $links[] = "<a href=\"module.php?mod=node&op=add&type=blog\" title=\"". t("Post a new entry to your personal blog.") ."\">". t("add blog entry") ."</a>"; - $links[] = "<a href=\"module.php?mod=blog&op=view&id=$user->uid\" title=\"". t("Read your latest blog entries.") ."\">". t("view your blog") ."</a>"; + if ($type == "menu.create" && user_access("post content")) { + $links[] = "<a href=\"module.php?mod=node&op=add&type=blog\" title=\"". t("Post a new entry to your personal blog.") ."\">". t("create blog entry") ."</a>"; + } + + if ($type == "menu.view" && user_access("access content")) { + $links[] = "<a href=\"module.php?mod=blog&op=view&id=$user->uid\" title=\"". t("Read your latest blog entries.") ."\">". t("view personal blog") ."</a>"; } if ($type == "node" && $node->type == "blog") { diff --git a/modules/queue.module b/modules/queue.module index 8d2fdbfa59cd..d03ea647bcd0 100644 --- a/modules/queue.module +++ b/modules/queue.module @@ -19,7 +19,7 @@ function queue_perm() { } function queue_link($type) { - if ($type == "menu" && user_access("access submission queue")) { + if ($type == "menu.view" && user_access("access submission queue")) { $links[] = "<a href=\"module.php?mod=queue\" title=\"". t("Moderate the content in the submission queue.") ."\">". t("submission queue") ."</a> (<span style=\"color: red;\">". queue_count() ."</span>)"; } diff --git a/modules/tracker.module b/modules/tracker.module index 1daf0094465c..c61f17fac7e9 100644 --- a/modules/tracker.module +++ b/modules/tracker.module @@ -3,7 +3,7 @@ function tracker_link($type) { - if ($type == "menu") { + if ($type == "menu.view") { $links[] = "<a href=\"module.php?mod=tracker\" title=\"". t("Display an overview of the recent comments.") ."\">". t("recent comments") ."</a>"; } diff --git a/modules/tracker/tracker.module b/modules/tracker/tracker.module index 1daf0094465c..c61f17fac7e9 100644 --- a/modules/tracker/tracker.module +++ b/modules/tracker/tracker.module @@ -3,7 +3,7 @@ function tracker_link($type) { - if ($type == "menu") { + if ($type == "menu.view") { $links[] = "<a href=\"module.php?mod=tracker\" title=\"". t("Display an overview of the recent comments.") ."\">". t("recent comments") ."</a>"; } diff --git a/modules/user.module b/modules/user.module index c538b5d09984..54e9c1f723b5 100644 --- a/modules/user.module +++ b/modules/user.module @@ -458,19 +458,8 @@ function user_block() { $output .= "<div style=\"width: 125;\">\n"; - foreach (module_list() as $name) { - if (module_hook($name, "link")) { - $links = module_invoke($name, "link", "menu"); - foreach ($links as $link) { - $output .= "$link<br />\n"; - } - } - } - - if (user_access("access administration pages")) { - $output .= "<br />\n"; - $output .= "<a href=\"admin.php\">". strtr(t("administer %a"), array("%a" => variable_get("site_name", "drupal"))) ."</a><BR>\n"; - } + $links = array_merge(module_invoke_all("link", "menu.create"), array(""), module_invoke_all("link", "menu.view"), array(""), module_invoke_all("link", "menu.settings"), array(""), module_invoke_all("link", "menu.misc")); + $output .= @implode("<br />\n", $links); $output .= "</div>"; } @@ -499,9 +488,16 @@ function user_link($type) { $links[] = "<a href=\"module.php?mod=user\" title=\"". t("Create a user account, request a new password or edit your account settings.") ."\">". t("user account") ."</a>"; } - if ($type == "menu") { + if ($type == "menu.settings") { $links[] = "<a href=\"module.php?mod=user&op=edit\" title=\"". t("View and edit your account information.") ."\">". t("account settings") ."</a>"; - $links[] = "<br /><a href=\"module.php?mod=user&op=logout\" title=\"". t("Logout.") ."\">". t("logout") ."</a>"; + } + + if ($type == "menu.misc") { + if (user_access("access administration pages")) { + $links[] = "<a href=\"admin.php\">". strtr(t("administer %a"), array("%a" => variable_get("site_name", "drupal"))) ."</a>"; + } + + $links[] = "<a href=\"module.php?mod=user&op=logout\" title=\"". t("Logout.") ."\">". t("logout") ."</a>"; } if ($type == "admin" && user_access("administer users")) { diff --git a/modules/user/user.module b/modules/user/user.module index c538b5d09984..54e9c1f723b5 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -458,19 +458,8 @@ function user_block() { $output .= "<div style=\"width: 125;\">\n"; - foreach (module_list() as $name) { - if (module_hook($name, "link")) { - $links = module_invoke($name, "link", "menu"); - foreach ($links as $link) { - $output .= "$link<br />\n"; - } - } - } - - if (user_access("access administration pages")) { - $output .= "<br />\n"; - $output .= "<a href=\"admin.php\">". strtr(t("administer %a"), array("%a" => variable_get("site_name", "drupal"))) ."</a><BR>\n"; - } + $links = array_merge(module_invoke_all("link", "menu.create"), array(""), module_invoke_all("link", "menu.view"), array(""), module_invoke_all("link", "menu.settings"), array(""), module_invoke_all("link", "menu.misc")); + $output .= @implode("<br />\n", $links); $output .= "</div>"; } @@ -499,9 +488,16 @@ function user_link($type) { $links[] = "<a href=\"module.php?mod=user\" title=\"". t("Create a user account, request a new password or edit your account settings.") ."\">". t("user account") ."</a>"; } - if ($type == "menu") { + if ($type == "menu.settings") { $links[] = "<a href=\"module.php?mod=user&op=edit\" title=\"". t("View and edit your account information.") ."\">". t("account settings") ."</a>"; - $links[] = "<br /><a href=\"module.php?mod=user&op=logout\" title=\"". t("Logout.") ."\">". t("logout") ."</a>"; + } + + if ($type == "menu.misc") { + if (user_access("access administration pages")) { + $links[] = "<a href=\"admin.php\">". strtr(t("administer %a"), array("%a" => variable_get("site_name", "drupal"))) ."</a>"; + } + + $links[] = "<a href=\"module.php?mod=user&op=logout\" title=\"". t("Logout.") ."\">". t("logout") ."</a>"; } if ($type == "admin" && user_access("administer users")) { -- GitLab