summaryrefslogtreecommitdiff
path: root/modules/help/help.module
blob: 200bea791bcc2de8ece61d21d8cc639e10a63938 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?php
// $Id$

/**
 * Implementation of hook_menu().
 */
function help_menu() {
  $items = array();
  $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')) {
      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_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>
  <dt>Moderators</dt><dd>The group of Drupal users that reviews posts before they are published. These users have the \"access submission queue\" permission. (See Published).</dd></dl></dd>
  <dt>Node</dt><dd>The basic data unit in Drupal. Everything is a node or an extention 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 <u>not</u> 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/taxonomy/help')));

  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>' . t("<a href=\"%url\">$name</a>", array('%url' => url("admin/help/$name"))) . '</li>';
      }
    }
  }
  $output .= '</ul>';
  return $output;
}

/**
 * Implementation of hook_help().
 */
function help_help($section) {
  switch ($section) {
    case 'admin/modules#description':
      return t('Manages displaying 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 .= $temp;
    }
  }
  print theme('page', $output);
}

?>