diff --git a/includes/menu.inc b/includes/menu.inc index d1aa3372c64..53f1d208507 100644 --- a/includes/menu.inc +++ b/includes/menu.inc @@ -420,10 +420,16 @@ function menu_get_active_help() { return; } - $return = module_invoke_all('help', $path); - foreach ($return as $item) { - if (!empty($item)) { - $output .= $item ."\n"; + foreach (module_list() as $name) { + if (module_hook($name, 'help')) { + if ($temp = module_invoke($name, 'help', $path)) { + $output .= $temp . "\n"; + } + if (substr($path, 0, 6) == "admin/") { + if (module_invoke($name, 'help', 'admin/help#' . substr($path, 6))) { + $output .= theme("more_help_link", url('admin/help/' . substr($path, 6))); + } + } } } return $output; diff --git a/includes/theme.inc b/includes/theme.inc index 36181fac07b..f74700c5afc 100644 --- a/includes/theme.inc +++ b/includes/theme.inc @@ -516,6 +516,10 @@ function theme_error($message) { return '
'. $message .'
'; } +function theme_more_help_link($url) { + return '
'; +} + /** * Return code that emits an XML icon. */ diff --git a/misc/drupal.css b/misc/drupal.css index f733bd23855..4ca9f0c359e 100644 --- a/misc/drupal.css +++ b/misc/drupal.css @@ -377,6 +377,10 @@ tr.light .form-item, tr.dark .form-item { .user-login-block { text-align: center; } +.more-help-link { + font-size: 0.85em; + text-align: right; +} tr td.watchdog-user { background: #ffd; } diff --git a/modules/help.module b/modules/help.module index f386c177ab3..200bea791bc 100644 --- a/modules/help.module +++ b/modules/help.module @@ -6,22 +6,35 @@ */ function help_menu() { $items = array(); - $items[] = array('path' => 'admin/help/glossary', 'title' => t('glossary'), - 'callback' => 'help_glossary', - 'access' => user_access('access administration pages')); $items[] = array('path' => 'admin/help', 'title' => t('help'), - 'callback' => 'help_page', + 'callback' => 'help_main', 'access' => user_access('access administration pages'), 'weight' => 9); + + foreach (module_list() as $name) { + if (module_hook($name, 'help')) { + if (module_invoke($name, 'help', "admin/help#$name")) { + $items[] = array('path' => 'admin/help/' . $name, + 'title' => t($name), + 'callback' => 'help_page', + 'access' => user_access('access administration pages')); + } + } + } return $items; } /** * Menu callback; prints a page listing a glossary of Drupal terminology. */ -function help_glossary() { +function help_main() { $output = t(" -

Glossary

+

This guide explains what the various modules in Drupal do and how to configure them.

+

It is not a substitute for the Drupal handbook available online and should be used in conjunction with it. The online reference handbook might be more up-to-date and has helpful user-contributed comments. It is your definitive reference point for all Drupal documentation.

+

Help topics

+

Help is available on the following items:

+ %help_pages +

Glossary of Drupal Terminology

Block
A small box containing information or content placed in the left-hand or right-hand sidebar of a web page.
Comment
A note attached to a node. Usually intended to clarify, explain, criticize, or express an opinion on the original material.
Moderation
The activity of making sure a post to a Drupal site fits in with what is expected for that Drupal site.
@@ -36,11 +49,24 @@ function help_glossary() {
Unpublished
A node that is only viewable by administrators and moderators.
User
A person who has an account at your Drupal site, and is logged in with that account.
Visitor
A person who does not have an account at your Drupal site or a person who has an account at your Drupal site but is not logged in with that account. Also termed \"anonymous user\".
-
", array('%taxonomy' => url('admin/taxonomy/help'))); +
", array('%Drupal' => 'http://drupal.org', '%handbook' => 'http://drupal.org/handbook', '%help_pages' => help_links_as_list(), '%taxonomy' => url('admin/taxonomy/help'))); print theme('page', $output); } +function help_links_as_list() { + $output = ''; + return $output; +} + /** * Implementation of hook_help(). */ @@ -55,17 +81,13 @@ function help_help($section) { * Menu callback; prints a page listing general help for all modules. */ function help_page() { - foreach (module_list() as $name) { - if (module_hook($name, 'help')) { - $temp = module_invoke($name, 'help', "admin/help#$name"); - if (!empty($temp)) { - $links[] = l($name, "admin/help#$name"); - $output .= "

". ucfirst($name) .' module

'; - $output .= $temp; - } + $name = arg(2); + if (module_hook($name, 'help')) { + $temp = module_invoke($name, 'help', "admin/help#$name"); + if (!empty($temp)) { + $output .= $temp; } } - $output = ''. implode(' · ', $links) .'
'. $output; print theme('page', $output); } diff --git a/modules/help/help.module b/modules/help/help.module index f386c177ab3..200bea791bc 100644 --- a/modules/help/help.module +++ b/modules/help/help.module @@ -6,22 +6,35 @@ */ function help_menu() { $items = array(); - $items[] = array('path' => 'admin/help/glossary', 'title' => t('glossary'), - 'callback' => 'help_glossary', - 'access' => user_access('access administration pages')); $items[] = array('path' => 'admin/help', 'title' => t('help'), - 'callback' => 'help_page', + 'callback' => 'help_main', 'access' => user_access('access administration pages'), 'weight' => 9); + + foreach (module_list() as $name) { + if (module_hook($name, 'help')) { + if (module_invoke($name, 'help', "admin/help#$name")) { + $items[] = array('path' => 'admin/help/' . $name, + 'title' => t($name), + 'callback' => 'help_page', + 'access' => user_access('access administration pages')); + } + } + } return $items; } /** * Menu callback; prints a page listing a glossary of Drupal terminology. */ -function help_glossary() { +function help_main() { $output = t(" -

Glossary

+

This guide explains what the various modules in Drupal do and how to configure them.

+

It is not a substitute for the Drupal handbook available online and should be used in conjunction with it. The online reference handbook might be more up-to-date and has helpful user-contributed comments. It is your definitive reference point for all Drupal documentation.

+

Help topics

+

Help is available on the following items:

+ %help_pages +

Glossary of Drupal Terminology

Block
A small box containing information or content placed in the left-hand or right-hand sidebar of a web page.
Comment
A note attached to a node. Usually intended to clarify, explain, criticize, or express an opinion on the original material.
Moderation
The activity of making sure a post to a Drupal site fits in with what is expected for that Drupal site.
@@ -36,11 +49,24 @@ function help_glossary() {
Unpublished
A node that is only viewable by administrators and moderators.
User
A person who has an account at your Drupal site, and is logged in with that account.
Visitor
A person who does not have an account at your Drupal site or a person who has an account at your Drupal site but is not logged in with that account. Also termed \"anonymous user\".
-
", array('%taxonomy' => url('admin/taxonomy/help'))); +
", array('%Drupal' => 'http://drupal.org', '%handbook' => 'http://drupal.org/handbook', '%help_pages' => help_links_as_list(), '%taxonomy' => url('admin/taxonomy/help'))); print theme('page', $output); } +function help_links_as_list() { + $output = ''; + return $output; +} + /** * Implementation of hook_help(). */ @@ -55,17 +81,13 @@ function help_help($section) { * Menu callback; prints a page listing general help for all modules. */ function help_page() { - foreach (module_list() as $name) { - if (module_hook($name, 'help')) { - $temp = module_invoke($name, 'help', "admin/help#$name"); - if (!empty($temp)) { - $links[] = l($name, "admin/help#$name"); - $output .= "

". ucfirst($name) .' module

'; - $output .= $temp; - } + $name = arg(2); + if (module_hook($name, 'help')) { + $temp = module_invoke($name, 'help', "admin/help#$name"); + if (!empty($temp)) { + $output .= $temp; } } - $output = ''. implode(' · ', $links) .'
'. $output; print theme('page', $output); }