Same filename and directory in other branches
  1. 4.7.x modules/help.module

Manages displaying online help.

File

modules/help.module
View source
<?php

/**
 * @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("\n  <p>This guide explains what the various modules in <a href=\"%Drupal\">Drupal</a> do and how to configure them.</p>\n  <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>\n  <h2>Help topics</h2>\n  <p>Help is available on the following items:</p>\n  %help_pages\n  <h2>Glossary of Drupal terminology</h2>\n  <dl>\n   <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>\n   <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>\n   <dt>Moderation</dt>\n   <dd>The activity of making sure a post to a Drupal site fits in with what is expected for that Drupal site.\n    <dl>\n     <dt>Approved</dt><dd>A moderated post which has been accepted by the moderators for publication. (See published).</dd>\n     <dt>Waiting</dt><dd>A moderated post which is still being voted on to be accepted for publication. (See published.)</dd>\n    </dl>\n   </dd>\n   <dt>Node</dt><dd>The basic data unit in Drupal. Everything is a node or an extension of a node.</dd>\n   <dt>Public</dt><dd>See published.</dd>\n   <dt>Published</dt><dd>A node that is viewable by everyone. (See unpublished.)</dd>\n   <dt>Role</dt><dd>A classification users are placed into for the purpose of setting users' permissions.</dd>\n   <dt>Taxonomy</dt><dd>A division of a collection of things into ordered, classified groups. (See <a href=\"%taxonomy\">taxonomy help</a>.)</dd>\n   <dt>Unpublished</dt><dd>A node that is only viewable by administrators and moderators.</dd>\n   <dt>User</dt><dd>A person who has an account at your Drupal site, and is logged in with that account.</dd>\n   <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>\n  </dl>", array(
    '%Drupal' => 'http://drupal.org',
    '%handbook' => 'http://drupal.org/handbook',
    '%help_pages' => help_links_as_list(),
    '%taxonomy' => url('admin/help/taxonomy'),
  ));
  print theme('page', $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;
    }
  }
  print theme('page', $output);
}

Functions

Namesort descending Description
help_help Implementation of hook_help().
help_links_as_list
help_main Menu callback; prints a page listing a glossary of Drupal terminology.
help_menu Implementation of hook_menu().
help_page Menu callback; prints a page listing general help for all modules.