<?php // $Id$ /** * @file * Manages displaying online help. */ /** * Implementation of hook_menu(). */ function help_menu($may_cache) { $items = array(); if ($may_cache) { $items[] = array('path' => 'admin/help', 'title' => t('help'), 'callback' => 'help_main', 'access' => user_access('access administration pages'), 'weight' => 9); foreach (module_list() as $name) { if (module_hook($name, 'help')) { $items[] = array('path' => 'admin/help/' . $name, 'title' => t($name), 'callback' => 'help_page', 'type' => MENU_CALLBACK, 'access' => user_access('access administration pages')); } } } return $items; } /** * Menu callback; prints a page listing a glossary of Drupal terminology. */ function help_main() { $output = t(" <p>This guide explains what the various modules in <a href=\"%Drupal\">Drupal</a> do and how to configure them.</p> <p>It is not a substitute for the <a href=\"%handbook\">Drupal handbook</a> 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.</p> <h2>Help topics</h2> <p>Help is available on the following items:</p> %help_pages <h2>Glossary of Drupal terminology</h2> <dl> <dt>Block</dt><dd>A small box containing information or content placed in the left-hand or right-hand sidebar of a web page.</dd> <dt>Comment</dt><dd>A note attached to a node. Usually intended to clarify, explain, criticize, or express an opinion on the original material.</dd> <dt>Moderation</dt> <dd>The activity of making sure a post to a Drupal site fits in with what is expected for that Drupal site. <dl> <dt>Approved</dt><dd>A moderated post which has been accepted by the moderators for publication. (See published).</dd> <dt>Waiting</dt><dd>A moderated post which is still being voted on to be accepted for publication. (See published.)</dd> </dl> </dd> <dt>Node</dt><dd>The basic data unit in Drupal. Everything is a node or an extension of a node.</dd> <dt>Public</dt><dd>See published.</dd> <dt>Published</dt><dd>A node that is viewable by everyone. (See unpublished.)</dd> <dt>Role</dt><dd>A classification users are placed into for the purpose of setting users' permissions.</dd> <dt>Taxonomy</dt><dd>A division of a collection of things into ordered, classified groups. (See <a href=\"%taxonomy\">taxonomy help</a>.)</dd> <dt>Unpublished</dt><dd>A node that is only viewable by administrators and moderators.</dd> <dt>User</dt><dd>A person who has an account at your Drupal site, and is logged in with that account.</dd> <dt>Visitor</dt><dd>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 <strong>not</strong> logged in with that account. Also termed \"anonymous user\".</dd> </dl>", array('%Drupal' => 'http://drupal.org', '%handbook' => 'http://drupal.org/handbook', '%help_pages' => help_links_as_list(), '%taxonomy' => url('admin/help/taxonomy'))); return $output; } function help_links_as_list() { $output = '<ul>'; foreach (module_list() as $name) { if (module_hook($name, 'help')) { if (module_invoke($name, 'help', "admin/help#$name")) { $output .= '<li><a href="' . url("admin/help/$name") . '">' . t($name) . '</a></li>'; } } } $output .= '</ul>'; return $output; } /** * Implementation of hook_help(). */ function help_help($section) { switch ($section) { case 'admin/modules#description': return t('Manages the display of online help.'); } } /** * Menu callback; prints a page listing general help for all modules. */ function help_page() { $name = arg(2); if (module_hook($name, 'help')) { $temp = module_invoke($name, 'help', "admin/help#$name"); if (empty($temp)) { $output .= t("No help is available for module %module.", array('%module' => $name)); } else { $output .= $temp; } } return $output; } ?>