Index: modules/aggregator.module =================================================================== RCS file: /cvs/drupal/drupal/modules/aggregator.module,v retrieving revision 1.258 diff -u -r1.258 aggregator.module --- modules/aggregator.module 11 Oct 2005 19:44:34 -0000 1.258 +++ modules/aggregator.module 28 Oct 2005 02:23:38 -0000 @@ -12,51 +12,21 @@ function aggregator_help($section) { switch ($section) { case 'admin/help#aggregator': - return t(' -

Thousands of sites (particularly news sites and weblogs) publish their latest headlines and/or stories in a machine-readable format so that other sites can easily link to them. This content is usually in the form of an RSS feed (which is an XML-based syndication standard).

-

You can read aggregated content from many sites using RSS feed readers, such as Amphetadesk.

-

Drupal provides the means to aggregate feeds from many sites and display these aggregated feeds to your site\'s visitors. To do this, enable the aggregator module in site administration and then go to the aggregator configuration page, where you can subscribe to feeds and set up other options.

-

How do I find RSS feeds to aggregate?

-

Many web sites (especially weblogs) display small XML icons or other obvious links on their home page. You can follow these to obtain the web address for the RSS feed. Common extensions for RSS feeds are .rss, .xml and .rdf. For example: Slashdot RSS.

-

If you can\'t find a feed for a site, or you want to find several feeds on a given topic, try an RSS syndication directory such as Syndic8.

-

To learn more about RSS, read Mark Pilgrim\'s What is RSS and WebReference.com\'s The Evolution of RSS articles.

-

NOTE: Enable your site\'s XML syndication button by turning on the Syndicate block in block management.

-

How do I add a news feed?

-

To subscribe to an RSS feed on another site, use the aggregation page.

-

Once there, click the new feed tab. Drupal will then ask for the following:

- -

Once you have submitted the new feed, check to make sure it is working properly by selecting update items on the aggregation page. If you do not see any items listed for that feed, edit the feed and make sure that the URL was entered correctly.

-

Adding categories

-

News items can be filed into categories. To create a category, start at the aggregation page.

-

Once there, select new category from the menu. Drupal will then ask for the following:

- -

Using the news aggregator

-

The news aggregator has a number of ways that it displays your subscribed content:

- -

Pages that display items (for sources, categories, etc.) display the following for each item: -

-

Additionally, users with the administer news feeds permission will see a link to categorize the news items. Clicking this will allow them to select which category(s) each news item is in.

-

Technical details

-

Drupal automatically generates an OPML feed file that is available by selecting the XML icon on the News Sources page.

-

When fetching feeds Drupal supports conditional GETs, this reduces the bandwidth usage for feeds that have not been updated since the last check.

-

If a feed is permanently moved to a new location Drupal will automatically update the feed URL to the new address.

', array('%block' => url('admin/block'), '%admin-news' => url('admin/aggregator'), '%new-feed' => url('admin/aggregator/add/feed'), '%new-category' => url('admin/aggregator/add/category'), '%update-items' => url('admin/aggregator'), '%news-aggregator' => url('aggregator'), '%sources' => url('aggregator/sources'), '%categories' => url('aggregator/categories'))); + $output = '

'. t('The news aggregator is a powerful on-site RSS syndicator/news reader that can gather fresh content from news sites and weblogs around the web.') .'

'; + $output .= '

'. t('Users can view the latest news chronologically in the main news aggregator display or by source. Administrators can add, edit and delete feeds and choose how often to check for newly updated news for each individual feed. Administrators can also tag individual feeds with categories, offering selective grouping of some feeds into separate displays. Listings of the latest news for individual sources or categorized sources can be enabled as blocks for display in the sidebar through the block administration page. The news aggregator requires cron to check for the latest news from the sites to which you have subscribed. Drupal also provides a machine-readable OPML file of all of your subscribed feeds.', array('%aggregator' => url('aggregator'), '%aggregator-sources' => url('aggregator/sources'), '%admin-block' => url('admin/block'), '%aggregator-opml' => url('aggregator/opml'))) .'

'; + $output .= t('

You can

+ +', array('%admin-aggregator' => url('admin/aggregator'), '%admin-aggregator-add-feed' => url('admin/aggregator/add/feed'), '%admin-aggregator-add-category' => url('admin/aggregator/add/category'), '%admin-settings-aggregator' => url('admin/settings/aggregator'), '%admin-access' => url('admin/access'), '%aggregator' => url('aggregator'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Aggregator page.', array('%aggregator' => 'http://www.drupal.org/handbook/modules/aggregator/')) .'

'; + return $output; case 'admin/modules#description': return t('Aggregates syndicated content (RSS and RDF feeds).'); case 'admin/aggregator': Index: modules/archive.module =================================================================== RCS file: /cvs/drupal/drupal/modules/archive.module,v retrieving revision 1.83 diff -u -r1.83 archive.module --- modules/archive.module 24 Oct 2005 18:50:10 -0000 1.83 +++ modules/archive.module 28 Oct 2005 02:23:38 -0000 @@ -11,6 +11,17 @@ */ function archive_help($section) { switch ($section) { + case 'admin/help#archive': + $output = '

'. t('The archive page allows content to be viewed by date. It also provides a monthly calendar view that users can use to navigate through content.') .'

'; + $output .= '

'. t('To view the archive by date, select the date in the calendar. Administrators can enable the browse archives block in block administration to allow users to browse by calendar. Clicking on a date in the monthly calendar view shows the content for that date. Users can navigate to different months using arrows beside the month\'s name in the calendar display. The current date will be highlighted in the calendar.') .'

'; + $output .= t('

You can

+ +', array('%archive' => url('archive'), '%admin-block' => url('admin/block'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Archive page.', array('%archive' => 'http://www.drupal.org/handbook/modules/archive/')) .'

'; + return $output; case 'admin/modules#description': return t('Displays a calendar for navigating older content.'); } Index: modules/block.module =================================================================== RCS file: /cvs/drupal/drupal/modules/block.module,v retrieving revision 1.184 diff -u -r1.184 block.module --- modules/block.module 22 Oct 2005 15:14:46 -0000 1.184 +++ modules/block.module 28 Oct 2005 02:23:38 -0000 @@ -12,21 +12,30 @@ function block_help($section) { switch ($section) { case 'admin/help#block': - return t(' -

Blocks are the boxes visible in the sidebar(s) of your web site and other regions. These are usually generated automatically by modules (e.g. recent forum topics), but you can also create your own blocks.

-

The region each block appears in depends on both which theme you are using (some are left-only, some right, some both, and some may offer other regions), and on the settings in block management.

-

The block management screen lets you specify the vertical sort-order of the blocks within a sidebar. You do this by assigning a weight to each block. Lighter blocks (smaller weight) "float up" towards the top of the sidebar. Heavier ones "sink down" towards the bottom of it.

-

A block\'s visibility depends on:

+ $output = '

'. t('Blocks are the boxes of related/grouped data that are visible in the sidebar(s) of your web site. These are usually generated automatically by modules (e.g. recent forum topics), but administrators can also create their own defined blocks.') .'

'; + $output .= '

'. t('The sidebar each block appears in depends on both which theme you are using (some are left-only, some right, some both), and on the settings in block management.') .'

'; + $output .= '

'. t('The block management screen lets you specify the vertical sort-order of the blocks within a sidebar. You do this by assigning a weight to each block. Lighter blocks (smaller weight) "float up" towards the top of the sidebar. Heavier ones "sink down" towards the bottom of it.') .'

'; + $output .= t('

A block\'s visibility depends on:

- -

Administrator defined blocks

-

An administrator defined block contains content supplied by you (as opposed to being generated automatically by a module). Each admin-defined block consists of a title, a description, and a body which can be as long as you wish. The Drupal engine will render the content of the block.

'); +'); + $output .= '

'. t('Module blocks') .'

'; + $output .= '

'. t('Module blocks are available when modules are enabled. These blocks can be administered in block administration.') .'

'; + $output .= '

'. t('Administrator defined blocks') .'

'; + $output .= '

'. t('An administrator defined block contains content supplied by the administrator. Each admin-defined block consists of a title, a description, and a body which can be as long as you wish. The Drupal engine will render the content of the block.') .'

'; + $output .= t('

You can

+ +', array('%admin-block' => url('admin/block'), '%admin-block-add' => url('admin/block/add'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Block page.', array('%block' => 'http://www.drupal.org/handbook/modules/block/')) .'

'; + return $output; case 'admin/modules#description': return t('Controls the boxes that are displayed around the main content.'); case 'admin/block': Index: modules/blog.module =================================================================== RCS file: /cvs/drupal/drupal/modules/blog.module,v retrieving revision 1.233 diff -u -r1.233 blog.module --- modules/blog.module 11 Oct 2005 19:44:34 -0000 1.233 +++ modules/blog.module 28 Oct 2005 02:23:38 -0000 @@ -56,11 +56,20 @@ function blog_help($section) { switch ($section) { case 'admin/help#blog': - return t(" -

Drupal's blog module allows registered users to maintain an online weblog (commonly known as a blog), often referred to as an online journal or diary. These can be filled with daily thoughts, poetry, boneless blabber, spiritual theories, intimate details, valuable experiences, cynical rants, semi-coherent comments, writing experiments, artistic babblings, critics on current facts, fresh insights, diverse dreams, chronicles and mumbling madness available for public consumption.

-

Blogs are made up of individual entries (nodes) that are timestamped and are typically viewed by day as you would a diary. Blogs often contain links to things you've seen and/or agree/disagree with. A typical example of a long term blog can be seen at %scripting-com.

-

The blog module adds a \"user blogs\" navigation link to the site, which takes any visitor to a page that displays the most recent blog entries from all the users on the site. Personal user menus gain a \"create a blog entry\" link (which takes you to a submission form) and a \"view blog\" link (which displays your blog entries as other people will see them). On the bottom of each of your own blog entries, there is an \"edit this blog entry\" link that lets you edit or delete that entry.

-

If a user has the ability to post blogs, then the import module (news aggregator) will display a blog-it link (b) next to each news item in its lists. Click on this and you will be taken to the blog submission form, with the title, a link to the item, and a link to the source into the body text already in the text box, ready for you to add your explanation. This actively encourages people to add blog entries about things they see and hear elsewhere in the Drupal site and from your syndicated partner sites.

", array('%scripting-com' => 'http://www.scripting.com/')); + $output = '

'. t('The blog module allows registered users to maintain an online weblog (commonly known as a blog), often referred to as an online journal or diary. Blogs are made up of individual posts that are time stamped and are typically viewed by date as you would a diary. Blogs often contain links to webpages users have read and/or agree/disagree with.') .'

'; + $output .= '

'. t('The blog module adds a user blogs navigation link to the site, which takes any visitor to a page that displays the most recent blog entries from all the users on the site. The navigation menu has a create a blog entry link (which takes you to a submission form) and a view personal blog link (which displays your blog entries as other people will see them). The blog module also creates a recent blog posts block that can be enabled.') .'

'; + $output .= '

'. t('If a user has the ability to post blogs, then the import module (news aggregator) will display a blog-it link next to each news item in its lists. Clicking on this takes the user to the blog submission form, with the title, a link to the item, and a link to the source into the body text already in the text box, ready for the user to add a comment or explanation. This actively encourages people to add blog entries about things they see and hear elsewhere in the website and from your syndicated partner sites.') .'

'; + $output .= t('

You can

+ +', array('%user' => url('user'), '%node-add-blog' => url('node/add/blog'), '%admin-node-configure-types-blog' => url('admin/node/configure/types/blog'), '%admin-settings-blogapi' => url('admin/settings/blogapi'), '%admin-block' => url('admin/block'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Blog page.', array('%blog' => 'http://www.drupal.org/handbook/modules/blog/')) .'

'; + return $output; case 'admin/modules#description': return t('Enables keeping an easily and regularly updated web page or a blog.'); case 'node/add#blog': Index: modules/blogapi.module =================================================================== RCS file: /cvs/drupal/drupal/modules/blogapi.module,v retrieving revision 1.62 diff -u -r1.62 blogapi.module --- modules/blogapi.module 25 Oct 2005 03:43:57 -0000 1.62 +++ modules/blogapi.module 28 Oct 2005 02:23:38 -0000 @@ -12,7 +12,17 @@ function blogapi_help($section) { switch ($section) { case 'admin/help#blogapi': - return t('

This module adds support for several XML-RPC based blogging APIs. Specifically, it currently implements the %bloggerAPI, %metaweblogAPI, and most of the %moveabletype extensions. This allows users to contribute to Drupal using external GUI applications, which can often offer richer functionality that online forms based editing.

This module also allows site administrators to configure which node types can be posted via the external applications. So, for instance, users can post forum topics as well as blog posts. Where supported, the external applications will display each node type as a separate "blog".

', array('%bloggerAPI' => 'Blogger API', '%metaweblogAPI' => 'MetaWeblog API', '%moveabletype' => 'Movable Type API. ')); + $output = '

'. t('The blog API module enables a post to be posted to a site via external GUI applications. Many users perfer to use external tools to improve their ability to read and post responses in a customized way. The blog api provides users the freedom to use the blogging tools they want but still have the blogging server of choice.') .'

'; + $output .= '

'. t('When this module is enabled and configured you can use programs like Ecto to create and publish posts from your desktop. Blog API module supports several XML-RPC based blogging APIs such as the Blogger API, MetaWeblog API, and most of the Movable Type API. Any desktop blogging tools or other services (e.g. Flickr\'s "post to blog") that support these APIs should work with this site.', array('%external-http-ecto-kung-foo-tv' => 'http://ecto.kung-foo.tv/', '%-' => url('http://www.blogger.com/developers/api/1_docs/'), '%external-http-www-xmlrpc-com-metaWeblogApi' => 'http://www.xmlrpc.com/metaWeblogApi', '%external-http-www-movabletype-org-docs-mtmanual_programmatic-html' => 'http://www.movabletype.org/docs/mtmanual_programmatic.html', '%external-http-www-flickr-com' => 'http://www.flickr.com')) .'

'; + $output .= '

'. t('This module also allows site administrators to configure which content types can be posted via the external applications. So, for instance, users can post forum topics as well as blog posts. Where supported, the external applications will display each content type as a separate "blog".') .'

'; + $output .= t('

You can

+ +', array('%file-xmlrpc' => 'xmlrpc.php', '%admin-settings-blogapi' => url('admin/settings/blogapi'))); + $output .= '

'. t('For more information please read the configuration and customization handbook BlogApi page.', array('%blogapi' => 'http://www.drupal.org/handbook/modules/blogapi/')) .'

'; + return $output; case 'admin/modules#description': return t('Allows users to post content using applications that support XML-RPC blog APIs.'); } Index: modules/book.module =================================================================== RCS file: /cvs/drupal/drupal/modules/book.module,v retrieving revision 1.325 diff -u -r1.325 book.module --- modules/book.module 24 Oct 2005 19:03:09 -0000 1.325 +++ modules/book.module 28 Oct 2005 02:30:12 -0000 @@ -1119,44 +1119,21 @@ function book_help($section) { switch ($section) { case 'admin/help#book': - return t( -"

The \"book\" content type is suited for creating structured, multi-page hypertexts such as site resource guides, manuals, and Frequently Asked Questions (FAQs). It permits a document to have chapters, sections, subsections, etc. Authors with suitable permissions can add pages to a collaborative book, placing them into the existing document by adding them to a table of contents menu.

- -

Books have additional ''previous'', ''up'', and ''next'' navigation elements at the bottom of each page for moving through the text. Additional navigation may be provided by enabling the \"book navigation block\" on the -block administration page. -

- -

Users can select the \"printer-friendly version\" link visible at the bottom of a book page to generate a printer-friendly display of the page and all of its subsections. They can choose to export the page and its subsections as DocBook XML (for offline editing, or production of print or other electronic publication formats) by selecting the \"export DocBook XML\" link. DocBook export currently treats node content as preformatted text. Selecting the \"export OPML\" link will generate an outline document (titles only) in OPML format, readable by many outline editing tools. Note: it may be neccessary to shift-click on the link to save the results to a file on the local computer.

- -

Administrators can view a book outline, from which is it possible to change the titles of sections, and their weight (thus reordering sections). From this outline, it is also possible to edit and/or delete book pages. Many content types besides pages (for example, blog entries, stories, and polls) can be added to a collaborative book by choosing the \"outline\" tab when viewing the post.

- -

You can:

- -

For more information, visit the online documentation. -", -array( - '%create' => url('node/add/book'), - '%collaborative-book' => url('admin/node/book'), - '%workflow' => url('admin/node/configure/types/book'), - '%book-block' => url('admin/block'), - '%permissions' => url('admin/access/permissions'), - '%book-module-help' => url('http://drupal.org/handbook/modules/book') - ) -); + $output = '

'. t('The book content type is suited for creating structured, multi-page hypertexts such as site resource guides, manuals, and Frequently Asked Questions (FAQs). It permits a document to have chapters, sections, subsections, etc. Authors with suitable permissions can add pages to a collaborative book, placing them into the existing document by adding them to a table of contents menu. ') .'

'; + $output .= '

'. t('Books have additional previous, up, and next navigation elements at the bottom of each page for moving through the text. Additional navigation may be provided by enabling the book navigation block on the block administration page.', array('%admin-block' => url('admin/block'))) .'

'; + $output .= '

'. t('Users can select the printer-friendly version link visible at the bottom of a book page to generate a printer-friendly display of the page and all of its subsections. They can choose to export the page and its subsections as DocBook XML (for offline editing, or production of print or other electronic publication formats), or as an outline (titles only), by selecting the export DocBook XML and export OPML links respectively. DocBook export currently treats node content as preformatted text.') .'

'; + $output .= '

'. t('Administrators can view a book outline, from which is it possible to change the titles of sections, and their weight (thus reordering sections). From this outline, it is also possible to edit and/or delete book pages. Many content types besides pages (for example, blog entries, stories, and polls) can be added to a collaborative book by choosing the outline tab when viewing the post.') .'

'; + $output .= t('

You can

+ +', array('%node-add-book' => url('node/add/book'), '%admin-node-book' => url('admin/node/book'), '%admin-node-configure-types-book' => url('admin/node/configure/types/book'), '%admin-block' => url('admin/block'), '%admin-access' => url('admin/access'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Book page.', array('%book' => 'http://www.drupal.org/handbook/modules/book/')) .'

'; + return $output; case 'admin/modules#description': return t('Allows users to collaboratively author a book.'); case 'admin/node/book': Index: modules/comment.module =================================================================== RCS file: /cvs/drupal/drupal/modules/comment.module,v retrieving revision 1.384 diff -u -r1.384 comment.module --- modules/comment.module 20 Oct 2005 09:27:36 -0000 1.384 +++ modules/comment.module 28 Oct 2005 03:49:00 -0000 @@ -19,31 +19,21 @@ /** * Implementation of hook_help(). */ -function comment_help($section = "admin/help#comment") { +function comment_help($section) { switch ($section) { case 'admin/help#comment': - return t(" -

When enabled, the Drupal comment module creates a discussion board for each Drupal node. Users can post comments to discuss a forum topic, weblog post, story, collaborative book page, etc. An administrator can give comment permissions to user groups, and users can (optionally) edit their last comment, assuming no others have been posted since.

- -

User control of comment display

-

Attached to each comment board is a control panel for customizing the way that comments are displayed. Users can control the chronological ordering of posts (newest or oldest first) and the number of posts to display on each page. Additional settings include:

- -

When a user chooses save settings, the comments are then redisplayed using the user's new choices. Administrators can set the default settings for the comment control panel, along with other comment defaults, in administer » comments » configure.

- -

Additional comment configurations

-

Comments behave like other user submissions in Drupal. Filters, smileys and HTML that work in nodes will also work with comments. Administrators can control access to various comment module functions through administer » access control » permissions. Know that in a new Drupal installation, all comment permissions are disabled by default. The choice of which permissions to grant to which roles (groups of users) is left up to the site administrator. The following permissions:

- - -

Notification of new comments

-

Drupal provides specific features to inform site members when new comments have been posted.

-

Drupal displays the total number of comments attached to each node, and tracks comments read by individual site members. Members which have logged in will see a notice accompanying nodes which contain comments they have not read. Some administrators may want to download, install and configure the notify module. Users can then request that Drupal send them an e-mail when new comments are posted (the notify module requires that cron.php be configured properly).

-

The tracker module, disabled by default, displays all the site's recent posts. There is a link to the recent posts page in the navigation block. This page is a useful way to browse new or updated nodes and comments. Content which the user has not yet read is tagged with a red star (this graphic depends on the current theme). Visit the comment board for any node, and Drupal will display a red \"new\" label beside the text of unread comments.

", array('%comment-config' => url('admin/comment/configure'), '%permissions' => url('admin/access/permissions'), '%tracker' => url('tracker'), '%download-notify' => 'http://drupal.org/project/releases', '%comment-initial' => url('admin/comment/configure/roles'))); + $output = '

'. t('The comment module creates a discussion board for each post. Users can post comments to discuss a forum topic, weblog post, story, collaborative book page, etc. The ability to comment is an important part of involving members in a communtiy dialogue.') .'

'; + $output .= '

'. t('An administrator can give comment permissions to user groups, and users can (optionally) edit their last comment, assuming no others have been posted since. Attached to each comment board is a control panel for customizing the way that comments are displayed. Users can control the chronological ordering of posts (newest or oldest first) and the number of posts to display on each page. Comments behave like other user submissions. Filters, smileys and HTML that work in nodes will also work with comments. The comment module provides specific features to inform site members when new comments have been posted. On sites with active commenting from users, the administrator can turn over comment moderation to the community.') .'

'; + $output .= t('

You can

+ +', array('%admin-access' => url('admin/access'), '%admin-comment-configure' => url('admin/comment/configure'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Comment page.', array('%comment' => 'http://www.drupal.org/handbook/modules/comment/')) .'

'; + return $output; + case 'admin/modules#description': + return t('Allows users to comment on and discuss published content.'); case 'admin/comment': case 'admin/comment/new': return t("

Below is a list of the latest comments posted to your site. Click on a subject to see the comment, the author's name to edit the author's user information , \"edit\" to modify the text, and \"delete\" to remove their submission.

"); @@ -52,8 +42,6 @@ case 'admin/comment/configure': case 'admin/comment/configure/settings': return t("

Comments can be attached to any node, and their settings are below. The display comes in two types: a \"flat list\" where everything is flush to the left side, and comments come in chronological order, and a \"threaded list\" where replies to other comments are placed immediately below and slightly indented, forming an outline. They also come in two styles: \"expanded\", where you see both the title and the contents, and \"collapsed\" where you only see the title. Preview comment forces a user to look at their comment by clicking on a \"Preview\" button before they can actually add the comment.

"); - case 'admin/modules#description': - return t('Allows users to comment on and discuss published content.'); } } Index: modules/contact.module =================================================================== RCS file: /cvs/drupal/drupal/modules/contact.module,v retrieving revision 1.26 diff -u -r1.26 contact.module --- modules/contact.module 11 Oct 2005 19:44:34 -0000 1.26 +++ modules/contact.module 28 Oct 2005 02:23:38 -0000 @@ -14,6 +14,17 @@ */ function contact_help($section) { switch ($section) { + case 'admin/help#contact': + $output = '

'. t('The contact module allows other users to contact you by e-mail via your personal contact form. Users can send a subject and message in the contact form. The contact module is important in helping make connections among members of your community.') .'

'; + $output .= '

'. t('Users can administer the contact settings in their account settings. Note that a users e-mail address is not made public and that privileged users such as site administrators are able to contact you even if you choose not to enable this feature. If users activate the personal contact form, then a contact tab will appear in their user profile.') .'

'; + $output .= t('

You can

+ +', array('%profile' => url('profile'), '%admin-user' => url('admin/user'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Contact page.', array('%contact' => 'http://www.drupal.org/handbook/modules/contact/')) .'

'; + return $output; case 'admin/modules#description': return t('Enables the use of both personal and site-wide contact forms.'); case 'admin/contact': Index: modules/drupal.module =================================================================== RCS file: /cvs/drupal/drupal/modules/drupal.module,v retrieving revision 1.109 diff -u -r1.109 drupal.module --- modules/drupal.module 11 Oct 2005 19:44:34 -0000 1.109 +++ modules/drupal.module 28 Oct 2005 02:23:38 -0000 @@ -12,12 +12,25 @@ function drupal_help($section) { switch ($section) { case 'admin/help#drupal': - return t(" -

The \"Drupal\" module features a capability whereby other drupal sites may call home to report their existence. In turn, this enables a pod of Drupal sites to find, cooperate and advertise each other.

-

Currently, the main application of this feature is the Drupal sites page. By default, fresh Drupal installations can use drupal.org as their directory server and report their existence. This reporting occurs via scheduled XML-RPC pings.

-

Drupal administrators should simply enable this feature to get listed on the Drupal sites page. Just set your site's name, e-mail address, slogan and mission statement on the administer » settings page. Then make sure that the field called Drupal XML-RPC server on the administer » settings » drupal page is set to %drupal-xml-rpc, and enable this feature using the dropdown directly below.

-

The listing of your site will occur shortly after your site's next cron run. Note that cron.php should be called using the domain name which you want to have listed at drupal.org. For example, don't kick off cron by requesting http://127.0.0.1/cron.php. Instead, use a publicly accessible domain name such as http://www.example.com/cron.php.

-

Also note that your installation need not use drupal.org as its directory server. For example, this feature is perfectly capable of aggregating pings from all of your departmental drupal installations sites within an enterprise.

", array('%drupal-sites' => 'http://www.drupal.org/drupal-sites', '%Drupal' => 'http://www.drupal.org', '%drupal-xml-rpc' => 'http://www.drupal.org/xmlrpc.php', '%xml-rpc' => 'http://www.xmlrpc.com/', '%site-settings' => url('admin/settings'), '%drupal-settings' => url('admin/settings/drupal'))); + $output = '

'. t('The Drupal module uses the XML-RPC network communication protocol to connect your site with a directory server that maintains a directory of sites. Community leaders who have common interests may wish to be part of a larger community and showing sites in a common directory is a good way to do this.') .'

'; + $output .= t('

Enabling the drupal module will:

+ +'); + $output .= '

'. t('The Drupal module administration page allows you to set the xml-rpc server page. The listing of your site in a site directory will occur shortly after your sites next cron run.') .'

'; + $output .= t('

You can

+ +', array('%file-cron' => 'cron.php', '%external-http-www-drupal-org-xmlrpc-php' => 'http://www.drupal.org/xmlrpc.php', '%file-xmlrpc' => 'xmlrpc.php', '%admin-settings-drupal' => url('admin/settings/drupal'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Drupal page.', array('%drupal' => 'http://www.drupal.org/handbook/modules/drupal/')) .'

'; + return $output; case 'admin/modules#description': return t('Lets users log in using a Drupal ID and can notify a central server about your site.'); case 'admin/settings/drupal': Index: modules/filter.module =================================================================== RCS file: /cvs/drupal/drupal/modules/filter.module,v retrieving revision 1.77 diff -u -r1.77 filter.module --- modules/filter.module 22 Oct 2005 15:14:46 -0000 1.77 +++ modules/filter.module 28 Oct 2005 02:23:38 -0000 @@ -22,6 +22,17 @@ */ function filter_help($section) { switch ($section) { + case 'admin/help#filter': + $output = '

'. t('The filter module allows administrators to configure text input formats for the site. For example, an administrator may want a filter to strip out malicious HTML from user\'s comments. Administrators may also want to make URLs linkable even if they are only entered in an unlinked format.') .'

'; + $output .= '

'. t('Users can choose between the available input formats when creating or editing content. Administrators can configure which input formats are available to which user roles, as well as choose a default input format. Administrators can also create new input formats. Each input format can be configured to use a selection of filters.') .'

'; + $output .= t('

You can

+ +', array('%admin-filters' => url('admin/filters'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Filter page.', array('%filter' => 'http://www.drupal.org/handbook/modules/filter/')) .'

'; + return $output; case 'admin/modules#description': return t('Handles the filtering of content in preparation for display.'); Index: modules/forum.module =================================================================== RCS file: /cvs/drupal/drupal/modules/forum.module,v retrieving revision 1.278 diff -u -r1.278 forum.module --- modules/forum.module 28 Oct 2005 00:42:55 -0000 1.278 +++ modules/forum.module 28 Oct 2005 02:46:06 -0000 @@ -11,14 +11,28 @@ */ function forum_help($section) { switch ($section) { + case 'admin/help#forum': + $output = '

'. t('The forum module lets you create threaded discussion forums for a particular topic on your site. This is similar to a message board system such as phpBB. Forums are very useful because they allow community members to discuss topics with one another, and they are archived for future reference.') .'

'; + $output .= '

'. t('Forums can be organized under what are called containers. Containers hold forums and, in turn, forums hold threaded discussions. Both containers and forums can be placed inside other containers and forums. By planning the structure of your containers and forums well, you make it easier for users to find a topic area of interest to them. Forum topics can be moved by selecting a different forum and can be left in the existing forum by selecting leave a shadow copy. Forum topics can also have their own URL.') .'

'; + $output .= '

'. t('Forums module requires Taxonomy and Comments module be enabled.') .'

'; + $output .= t('

You can

+ +', array('%admin-forum' => url('admin/forum'), '%admin-modules' => url('admin/modules'), '%admin-help-comment' => url('admin/help/comment'), '%admin-help-taxonomy' => url('admin/help/taxonomy'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Forum page.', array('%forum' => 'http://www.drupal.org/handbook/modules/forum/')) .'

'; + return $output; + case 'admin/modules#description': + return t('Enables threaded discussions about general topics.'); case 'admin/forum': return t('

This is a list of existing containers and forums that you can edit. Containers hold forums and, in turn, forums hold threaded discussions. Both containers and forums can be placed inside other containers and forums. By planning the structure of your containers and forums well, you make it easier for users to find a topic area of interest to them.

'); case 'admin/forum/add/container': return t('

Containers help you organize your forums. The job of a container is to hold, or contain, other forums that are related. For example, a container named "Food" might hold two forums named "Fruit" and "Vegetables".

'); case 'admin/forum/add/forum': return t('

A forum holds discussion topics that are related. For example, a forum named "Fruit" might contain topics titled "Apples" and "Bananas".

'); - case 'admin/modules#description': - return t('Enables threaded discussions about general topics.'); case 'admin/forum/configure': return t('This is where you can configure system-wide options for how your forums act and display.'); case 'node/add#forum': Index: modules/help.module =================================================================== RCS file: /cvs/drupal/drupal/modules/help.module,v retrieving revision 1.47 diff -u -r1.47 help.module --- modules/help.module 25 Aug 2005 21:14:16 -0000 1.47 +++ modules/help.module 28 Oct 2005 02:23:38 -0000 @@ -84,6 +84,20 @@ */ function help_help($section) { switch ($section) { + case 'admin/help#help': + $output = '

'. t('The help module displays context sensitive help information. Users can learn how to use modules and accomplish tasks quicker with less errors by clicking on links in provided by the help module.') .'

'; + $output .= t('

Modules can make documentation available to other modules with this module. All user help should be presented using this module. Some examples of help:

+ +'); + $output .= '

'. t('You can not administer the help system.') .'

'; + $output .= '

'. t('For more information please read the configuration and customization handbook Help page.', array('%help' => 'http://www.drupal.org/handbook/modules/help/')) .'

'; + return $output; case 'admin/modules#description': return t('Manages the display of online help.'); } Index: modules/legacy.module =================================================================== RCS file: /cvs/drupal/drupal/modules/legacy.module,v retrieving revision 1.6 diff -u -r1.6 legacy.module --- modules/legacy.module 25 Aug 2005 21:14:16 -0000 1.6 +++ modules/legacy.module 28 Oct 2005 02:23:38 -0000 @@ -11,6 +11,22 @@ */ function legacy_help($section) { switch ($section) { + case 'admin/help#legacy': + $output = '

'. t('The legacy module provides legacy handlers for upgrades from older installations. These handlers help automatically redirect references to pages from old installations and prevent page not found errors for your site.') .'

'; + $output .= '

'. t('The legacy module handles legacy style taxonomy page, taxonomy feed, and blog feed paths. It also handles URL upgrades from Drupal 4.1. It rewrites old-style URLs to new-style URLs (clean URLs). ') .'

'; + $output .= t('

Example Mappings:

+ +'); + $output .= '

'. t('Legacy module has no configurable options.') .'

'; + $output .= '

'. t('For more information please read the configuration and customization handbook Legacy page.', array('%legacy' => 'http://www.drupal.org/handbook/modules/legacy/')) .'

'; + return $output; case 'admin/modules#description': return t('Provides legacy handlers for upgrades from older Drupal installations.'); } Index: modules/locale.module =================================================================== RCS file: /cvs/drupal/drupal/modules/locale.module,v retrieving revision 1.128 diff -u -r1.128 locale.module --- modules/locale.module 13 Oct 2005 10:02:31 -0000 1.128 +++ modules/locale.module 28 Oct 2005 03:49:07 -0000 @@ -16,8 +16,23 @@ /** * Implementation of hook_help(). */ -function locale_help($section = "admin/help#locale") { +function locale_help($section) { switch ($section) { + case 'admin/help#locale': + $output = '

'. t('The locale module allows you to present your Drupal site in a language other than the default English. You can use it to set up a multi-lingual web site or replace given built-in text with text which has been customized for your site. Whenever the locale module encounters text which needs to be displayed, it tries to translate it into the currently selected language. If a translation is not available, then the string is remembered, so you can look up untranslated strings easily.') .'

'; + $output .= '

'. t('The locale module provides two options for providing translations. The first is the integrated web interface, via which you can search for untranslated strings, and specify their translations. An easier and less time-consuming method is to import existing translations for your language. These translations are available as GNU gettext Portable Object files (.po files for short). Translations for many languages are available for download from the translation page.') .'

'; + $output .= '

'. t('If an existing translation does not meet your needs, the .po files are easily edited with special editing tools. The locale module\'s import feature allows you to add strings from such files into your site\'s database. The export functionality enables you to share your translations with others, generating Portable Object files from your site strings.') .'

'; + $output .= t('

You can

+ +', array('%admin-locale' => url('admin/locale'), '%admin-locale-string-search' => url('admin/locale/string/search'), '%admin-locale-language-add' => url('admin/locale/language/add'), '%external-http-drupal-org-project-Translations' => 'http://drupal.org/project/Translations')); + $output .= '

'. t('For more information please read the configuration and customization handbook Locale page.', array('%locale' => 'http://www.drupal.org/handbook/modules/locale/')) .'

'; + return $output; case 'admin/modules#description': return t('Enables the translation of the user interface to languages other than English.'); case 'admin/locale': @@ -31,14 +46,6 @@ return t("

This page allows you to export Drupal strings. The first option is to export a translation so it can be shared. The second option generates a translation template, which contains all Drupal strings, but without their translations. You can use this template to start a new translation using various software packages designed for this task.

"); case 'admin/locale/string/search': return t("

It is often convenient to get the strings from your setup on the export page, and use a desktop Gettext translation editor to edit the translations. On this page you can search in the translated and untranslated strings, and the default English texts provided by Drupal.

", array("%export" => url("admin/locale/language/export"))); - - case 'admin/help#locale': - return t(" -

Most programs are written and documented in English, and primarily use English to interact with users. This is also true for a great deal of web sites. However, many users are less comfortable with English than with their native language, and would prefer to use their mother tongue where possible. Therefore Drupal provides a framework to setup a multi-lingual web site, or to overwrite the default English texts.

-

How interface translation works

-

Whenever Drupal encounters an interface string which needs to be displayed, it tries to translate it into the currently selected language. If a translation is not available, then the string is remembered, so you can look up untranslated strings easily.

-

Drupal provides two options to translate these strings. The first option is an integrated web interface, where you can search for untranslated strings, and provide translations for these via simple web forms. An easier and faster method is to import translations already done for your language. This is achieved by the use of GNU gettext Portable Object files. These are editable with desktop editing tools designed for this purpose. Drupal's import feature allows you to add strings from such files into the site database. The export functionality enables you to share your translations with others, generating Portable Object files from your site strings."); - break; } } Index: modules/menu.module =================================================================== RCS file: /cvs/drupal/drupal/modules/menu.module,v retrieving revision 1.40 diff -u -r1.40 menu.module --- modules/menu.module 22 Oct 2005 15:14:46 -0000 1.40 +++ modules/menu.module 28 Oct 2005 02:23:38 -0000 @@ -57,6 +57,25 @@ */ function menu_help($section) { switch ($section) { + case 'admin/help#menu': + $output = t('

The menu module allows for customization of the menus. Menus are useful for providing navigation in your site. The main menu for navigation is the navigation menu. Menus appear in blocks on your site.

+ +'); + $output .= t('

You can

+ +', array('%admin-menu' => url('admin/menu'), '%admin-block' => url('admin/block'), '%admin-menu-menu-add' => url('admin/menu/menu/add'), '%admin-menu-item-add' => url('admin/menu/item/add'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Menu page.', array('%menu' => 'http://www.drupal.org/handbook/modules/menu/')) .'

'; + return $output; case 'admin/modules#description': return t('Allows administrators to customize the site navigation menu.'); case 'admin/menu': Index: modules/node.module =================================================================== RCS file: /cvs/drupal/drupal/modules/node.module,v retrieving revision 1.542 diff -u -r1.542 node.module --- modules/node.module 28 Oct 2005 00:28:14 -0000 1.542 +++ modules/node.module 28 Oct 2005 02:38:57 -0000 @@ -14,31 +14,24 @@ function node_help($section) { switch ($section) { case 'admin/help#node': - $output = t(" -

Nodes

-

The core of the Drupal system is the node. All of the contents of the system are placed in nodes, or extensions of nodes. - A base node contains:

-
A Title
Up to 128 characters of text that titles the node.
-
A Teaser
A small block of text that is meant to get you interested in the rest of node. Drupal will automatically pull a small amount of the body of the node to make the teaser (To configure how long the teaser will be click here). The teaser can be changed if you don't like what Drupal grabs.
-
The Body
The main text that comprises your content.
-
A Type
What kind of node is this? Blog, book, forum, comment, unextended, etc.
-
An Author
The author's name. It will either be \"anonymous\" or a valid user. You cannot set it to an arbitrary value.
-
Authored on
The date the node was written.
-
Changed
The last time this node was changed.
-
Sticky at top of lists
In listings such as the frontpage or a taxonomy overview the teasers of a selected amount of nodes is displayed. If you want to force a node to appear on the top of such a listing, you must set it to 'sticky'. This way it will float to the top of a listing, and it will not be pushed down by newer content. -
Allow user comments
A node can have comments. These comments can be written by other users (Read-write), or only by admins (Read-only).
-
Revisions
Drupal has a revision system so that you can \"roll back\" to an older version of a post if the new version is not what you want.
-
Promote to front page
To get people to look at the new stuff on your site you can choose to move it to the front page. The front page is configured to show the teasers from only a few of the total nodes you have on your site (To configure how many teasers click here).
-
Published
When using Drupal's moderation system a node remains unpublished -- unavailable to non-moderators -- until it is marked Published.
-

Now that you know what is in a node, here are some of the types of nodes available.

", array("%teaser" => url("admin/node/configure/settings"))); - - foreach (node_get_types() as $type => $name) { - $output .= '

'. t('Node type: %name', array('%name' => $name)). '

'; - $output .= implode("\n", module_invoke_all('help', 'node/add#'. $type)); - } - + $output = '

'. t('All content in a website is stored and treated as nodes. Therefore nodes are any postings such as blogs, stories, polls and forums. The node module manages these content types and is one of the strengths of Drupal over other content management systems.') .'

'; + $output .= '

'. t('Treating all content as nodes allows the flexibility of creating new types of content. It also allows you to painlessly apply new features or changes to all content. Comments are not stored as nodes but are always associated with a node.') .'

'; + $output .= t('

Node module features

+ +'); + $output .= t('

You can

+ +', array('%search' => url('search'), '%admin-node-configure-types' => url('admin/node/configure/types'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Node page.', array('%node' => 'http://www.drupal.org/handbook/modules/node/')) .'

'; return $output; - case 'admin/modules#description': return t('Allows content to be submitted to the site and displayed on pages.'); case 'admin/node/configure': Index: modules/page.module =================================================================== RCS file: /cvs/drupal/drupal/modules/page.module,v retrieving revision 1.140 diff -u -r1.140 page.module --- modules/page.module 11 Oct 2005 19:44:35 -0000 1.140 +++ modules/page.module 28 Oct 2005 02:23:38 -0000 @@ -11,6 +11,22 @@ */ function page_help($section) { switch ($section) { + case 'admin/help#page': + $output = '

'. t('The page module allows users to create static pages, which are the most basic type of content. Pages are commonly collected in books via the book module. Users should create a page if the information on the page is static. An example would be an "about" page. ') .'

'; + $output .= '

'. t('When a page is created, a user can set authoring information, configure publishing options, whether readers will be able to post comments. They can also select the content type of the page (e.g., full HTML, filtered HTML). ') .'

'; + $output .= '

'. t('As an administrator, you can set the publishing default for a page (in its workflow): you can specify whether a page is by default published, sent to moderation, promoted to the front page, sticky at the top of lists, and whether revisions are enabled by default. You can set the permissions that different user roles have to view, create, and edit pages.') .'

'; + $output .= '

'. t('If the location module is enabled, then location specific information can be added. If the trackback module is enabled trackbacks can be configured.') .'

'; + $output .= t('

You can

+ +', array('%admin-help-node' => url('admin/help/node'), '%admin-help-page' => url('admin/help/page'), '%admin-help-story' => url('admin/help/story'), '%node-add-page' => url('node/add/page'), '%admin-node-configure-types-page' => url('admin/node/configure/types/page'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Page page.', array('%page' => 'http://www.drupal.org/handbook/modules/page/')) .'

'; + return $output; case 'admin/modules#description': return t('Enables the creation of pages that can be added to the navigation system.'); case 'node/add#page': Index: modules/path.module =================================================================== RCS file: /cvs/drupal/drupal/modules/path.module,v retrieving revision 1.67 diff -u -r1.67 path.module --- modules/path.module 11 Oct 2005 19:44:35 -0000 1.67 +++ modules/path.module 28 Oct 2005 02:25:53 -0000 @@ -11,41 +11,35 @@ */ function path_help($section) { switch ($section) { + case 'admin/help#path': + $output = '

'. t('The path module allows you to specify aliases for Drupal URLs. Such aliases improve readability of URLs for your users and may help internet search engines to index your content more effectively. More than one alias may be created for a given page.') .'

'; + $output .= t('

Some examples of URL aliases are:

+ +'); + $output .= '

'. t('The path module enables an extra field for aliases in all node input and editing forms (when users have the appropriate permissions). It also provides an interface to view and edit all URL aliases. The two permissions are related to URL aliasing are "administer a list of URL aliases" and "add url aliases". ') .'

'; + $output .= '

'. t('This module also comes with user-defined mass URL aliasing capabilities, which is useful if you wish to uniformly use URLs different from the default. For example, you may want to have your URLs presented in a different language. Access to the Drupal source code on the web server is required to set up these kinds of aliases. ') .'

'; + $output .= t('

You can

+ +', array('%admin-path-add' => url('admin/path/add'), '%admin-path' => url('admin/path'), '%external-http-drupal-org-node-15365' => 'http://drupal.org/node/15365', '%admin-settings' => url('admin/settings'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Path page.', array('%path' => 'http://www.drupal.org/handbook/modules/path/')) .'

'; + return $output; case 'admin/modules#description': return t('Allows users to rename URLs.'); case 'admin/path': return t("

Drupal provides users complete control over URLs through aliasing. This feature is typically used to make URLs human-readable or easy to remember. For example, one could map the relative URL 'node/1' onto 'about'. Each system path can have multiple aliases.

"); case 'admin/path/add': return t('

Enter the path you wish to create the alias for, followed by the name of the new alias.

'); - case 'admin/help#path': - return t(' -

Background

-

A very powerful feature of Drupal is the ability to have control over all paths. The path module is the tool that provides this functionality and is part of the basic Drupal installation, although it is not enabled by default. Some examples of re-mapping paths are:

-
-user/login => login
-
-image/tid/16 => store
-
-taxonomy/term/7+19+20+21 => store/products/whirlygigs
-
-node/3 => contact
-
-

This functionality integrates seamlessly into node forms and also provides the administrator an interface to view all aliases that have been created.

-

Aliases have a many to one relationship with their original Drupal URLs. In other words you can have many different aliases map to a single path. An example of where a multiple aliases come in handy is creating a standard RSS feed URL:

- -
-node/feed => rss.xml
-node/feed => index.rdf
-
- -

When Drupal generates links for a path with multiple aliases it will choose the first alias created per system URL. So in our above example, Drupal would use rss.xml as the default alias rather than index.rdf. To change this behavior, delete the aliases for node/feed and create the index.rdf alias before rss.xml.

- -

Permissions

-

Two permissions are related to URL aliasing: create url aliases and administer url aliases.

-
  1. create url aliases - Allows users to create aliases for nodes. Enabling this permission will display a path field to the user in any node form, allowing them to enter an alias for that node. They will be able to edit/delete the alias after it is created using the same form.
  2. administer url aliases - Allows users to access the alias administration interface. This interface displays all aliases and provides a way to create and modify them. This is also the location to build aliases for things other than nodes. For example, you can create an alias for a taxonomy URL or even re-map the admin path (although the original admin path will still be accessible since aliases do not cancel out original paths).
- -

Mass URL aliasing

-

Drupal also comes with user defined mass URL aliasing capabilities. You might like to see completely different URLs used by Drupal, or even URLs translated to the visitors\' native language, in which case this feature is handy. You need to have a working PHP programming knowledge to make use of this feature however. Read on in the Drupal Handbook about mass url aliasing.

', array("%mass-alias-doc" => "http://drupal.org/node/23708")); } } Index: modules/ping.module =================================================================== RCS file: /cvs/drupal/drupal/modules/ping.module,v retrieving revision 1.31 diff -u -r1.31 ping.module --- modules/ping.module 25 Aug 2005 21:14:16 -0000 1.31 +++ modules/ping.module 28 Oct 2005 02:39:47 -0000 @@ -12,17 +12,20 @@ function ping_help($section) { switch ($section) { case 'admin/help#ping': - $output .= t(" -

Drupal can automatically send notifications (called \"pings\") to the %pingomatic to tell them that your site has changed. In turn pingomatic.com will ping other services like weblogs.com, Technorati, blo.gs, BlogRolling, Feedster.com, Moreover, etc.

-

The ping feature requires crontab.

", array('%pingomatic' => 'http://pingomatic.com/')); - break; - + $output = '

'. t('The ping module is useful for notifying interested sites that your site has changed. It automatically sends notifications (called "pings") to the pingomatic service to tell it that your site has changed. In turn pingomatic will ping other services such as weblogs.com, Technorati, blo.gs, BlogRolling, Feedster.com, Moreover, etc.', array('%external-http-pingomatic-com' => 'http://pingomatic.com/')) .'

'; + $output .= '

'. t('The ping module requires cron or a similar periodic job scheduler to be enabled.') .'

'; + $output .= t('

You can:

+

+', array('%admin-modules' => url('admin/modules'), '%file-cron' => 'cron.php', '%external-http-drupal-org-node-23714' => 'http://drupal.org/node/23714')); + $output .= '

'. t('For more information please read the configuration and customization handbook Ping page.', array('%ping' => 'http://www.drupal.org/handbook/modules/ping/')) .'

'; + return $output; case 'admin/modules#description': - $output = t('Alerts other sites when your site has been updated.'); - break; + return('Alerts other sites when your site has been updated.'); } - - return $output; } /** Index: modules/poll.module =================================================================== RCS file: /cvs/drupal/drupal/modules/poll.module,v retrieving revision 1.173 diff -u -r1.173 poll.module --- modules/poll.module 11 Oct 2005 19:44:35 -0000 1.173 +++ modules/poll.module 28 Oct 2005 02:23:38 -0000 @@ -13,15 +13,16 @@ function poll_help($section) { switch ($section) { case 'admin/help#poll': - return t(" -

Users with the correct permissions can create and/or vote on polls.

- -

Creating a poll is much like creating any other node. Click \"create poll\" in your user box. The title of the poll should be the question, then enter the answers and the \"base\" vote counts. You can also choose the time period over which the vote will run.

The Poll item in the navigation links will take you to a page where you can see all the current polls, vote on them (if you haven't already) and view the results.

", array("%permissions" => url("admin/access/permissions"), "%poll" => url("poll"))); + $output = '

'. t('The poll module can be used to create simple polls for site users. A poll is a simple multiple choice questionnaire which displays the cummulative results of the answers to the poll. Having polls on the site is a good way to get instant feedback from community members.') .'

'; + $output .= '

'. t('Users can create a poll. The title of the poll should be the question, then enter the answers and the "base" vote counts. You can also choose the time period over which the vote will run.The poll item in the navigation menu will take you to a page where you can see all the current polls, vote on them (if you haven\'t already) and view the results.', array('%poll' => url('poll'))) .'

'; + $output .= t('

You can

+ +', array('%poll' => url('poll'), '%admin-node-configure-types-poll' => url('admin/node/configure/types/poll'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Poll page.', array('%poll' => 'http://www.drupal.org/handbook/modules/poll/')) .'

'; + return $output; case 'admin/modules#description': return t("Allows your site to capture votes on different topics in the form of multiple choice questions."); case 'node/add#poll': Index: modules/profile.module =================================================================== RCS file: /cvs/drupal/drupal/modules/profile.module,v retrieving revision 1.115 diff -u -r1.115 profile.module --- modules/profile.module 21 Oct 2005 11:14:55 -0000 1.115 +++ modules/profile.module 28 Oct 2005 02:23:38 -0000 @@ -19,6 +19,27 @@ */ function profile_help($section) { switch ($section) { + case 'admin/help#profile': + $output = '

'. t('The profile module allows you to define custom fields (such as country, real name, age, ...) in the user profile. This permits users of a site to share more information about themselves, and can help community-based sites to organize users around profile fields.') .'

'; + $output .= t('

The following types of fields can be added to the user profile:

+ +'); + $output .= t('

You can

+ +', array('%profile' => url('profile'), '%admin-settings-profile' => url('admin/settings/profile'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Profile page.', array('%profile' => 'http://www.drupal.org/handbook/modules/profile/')) .'

'; + return $output; case 'admin/modules#description': return t('Supports configurable user profiles.'); case 'admin/settings/profile': Index: modules/search.module =================================================================== RCS file: /cvs/drupal/drupal/modules/search.module,v retrieving revision 1.139 diff -u -r1.139 search.module --- modules/search.module 22 Oct 2005 15:14:46 -0000 1.139 +++ modules/search.module 28 Oct 2005 03:01:57 -0000 @@ -93,8 +93,20 @@ /** * Implementation of hook_help(). */ -function search_help($section = 'admin/help#search') { +function search_help($section) { switch ($section) { + case 'admin/help#search': + $output = '

'. t('The search module adds the ability to search for content by keywords. Search is often the only practical way to find content on a large site. Search is useful for finding users and posts by searching on keywords.') .'

'; + $output .= '

'. t('The search engine works by maintaining an index of the words in your site\'s content. It indexes the posts and users. You can adjust the settings to tweak the indexing behaviour. Note that the search requires cron to be set up correctly. The index percentage sets the maximum amount of items that will be indexed in one cron run. Set this number lower if your cron is timing out or if PHP is running out of memory.') .'

'; + $output .= t('

You can

+ +', array('%admin-help-system' => url('admin/help/system'), '%file-cron' => 'cron.php', '%external-http-drupal-org-node-23714' => 'http://drupal.org/node/23714', '%admin-settings-search' => url('admin/settings/search'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Search page.', array('%search' => 'http://www.drupal.org/handbook/modules/search/')) .'

'; + return $output; case 'admin/modules#description': return t('Enables site-wide keyword searching.'); case 'admin/settings/search': Index: modules/statistics.module =================================================================== RCS file: /cvs/drupal/drupal/modules/statistics.module,v retrieving revision 1.210 diff -u -r1.210 statistics.module --- modules/statistics.module 12 Oct 2005 01:00:24 -0000 1.210 +++ modules/statistics.module 28 Oct 2005 02:23:38 -0000 @@ -12,33 +12,36 @@ function statistics_help($section) { switch ($section) { case 'admin/help#statistics': - return t(" -

Introduction

-

The statistics module keeps track of numerous statistics for your site but be warned, statistical collection does cause a little overhead, thus everything comes disabled by default.

-

The module counts how many times, and from where -- using HTTP referrer -- each of your posts is viewed. Once we have that count the module can do the following with it: -

-

Notes on using the statistics:

- -

As with any new module, the statistics module needs to be enabled before you can use it. Also refer to the permissions section, as this module supports four separate permissions.

-

Configuring the statistics module

-

There are some configuration options added to the main administer » settings » statistics section:

- -

Popular content block

-

This module creates a block that can display the day's top viewed content, the all time top viewed content, and the last content viewed. Each of these links can be enabled or disabled individually, and the number of posts displayed for each can be configured with a drop down menu. If you disable all sections of this block, it will not appear.

-

Don't forget to enable the block.

", - array('%modules' => url('admin/modules'), '%permissions' => url('admin/access/permissions'), '%referer' => url('admin/logs/referrers'), '%configuration' => url('admin/settings/statistics'), '%block' => url('admin/block'))); + $output = '

'. t('The statistics module keeps track of numerous statistics of site usage. It counts how many times, and from where each of your posts is viewed. The statistics module can be used to learn many useful things about how users are interacting with each other and with your site.') .'

'; + $output .= t('

Statistics module features

+ +'); + $output .= t('

Configuring the statistics module

+ +'); + $output .= t('

You can

+ +', array('%admin-settings-statistics' => url('admin/settings/statistics'), '%admin-logs' => url('admin/logs'), '%admin-logs-hits' => url('admin/logs/hits'), '%admin-block' => url('admin/block'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Statistics page.', array('%statistics' => 'http://www.drupal.org/handbook/modules/statistics/')) .'

'; + return $output; case 'admin/modules#description': return t('Logs access statistics for your site.'); case 'admin/settings/statistics': Index: modules/story.module =================================================================== RCS file: /cvs/drupal/drupal/modules/story.module,v retrieving revision 1.173 diff -u -r1.173 story.module --- modules/story.module 11 Oct 2005 19:44:35 -0000 1.173 +++ modules/story.module 28 Oct 2005 02:23:38 -0000 @@ -11,6 +11,17 @@ */ function story_help($section) { switch ($section) { + case 'admin/help#story': + $output = '

'. t('The story module is used to create a content post type called stories. Stories are articles in their simplest form: they have a title, a teaser and a body. Stories are typically used to post news articles or as a group blog. ') .'

'; + $output .= '

'. t('The story administration interface allows for complex configuration. It provides a submission form, workflow, default view permission, default edit permission, permissions for permission, and attachments. Trackbacks can also be enabled.') .'

'; + $output .= t('

You can

+ +', array('%node-add-story' => url('node/add/story'), '%admin-node-configure-types' => url('admin/node/configure/types'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Story page.', array('%story' => 'http://www.drupal.org/handbook/modules/story/')) .'

'; + return $output; case 'admin/modules#description': return t('Allows users to submit stories, articles or similar content.'); case 'node/add#story': Index: modules/system.module =================================================================== RCS file: /cvs/drupal/drupal/modules/system.module,v retrieving revision 1.247 diff -u -r1.247 system.module --- modules/system.module 26 Oct 2005 01:24:09 -0000 1.247 +++ modules/system.module 28 Oct 2005 02:41:17 -0000 @@ -10,9 +10,22 @@ * Implementation of hook_help(). */ function system_help($section) { - global $base_url; - switch ($section) { + case 'admin/help#system': + $output = '

'. t('The system module provides system-wide defaults such as running jobs at a particular time, and storing web pages to improve efficiency. The ability to run scheduled jobs makes administering the web site more usable, as administrators do not have to manually start jobs. The storing of web pages, or caching, allows the site to efficiently re-use web pages and improve web site performance. The settings module provides control over preferences, behaviours including visual and operational settings.') .'

'; + $output .= '

'. t('Some modules require regularly scheduled actions, such as cleaning up logfiles. Cron, which stands for chronograph, is a periodic command scheduler executing commands at intervals specified in seconds. It can be used to control the execution of daily, weekly and monthly jobs (or anything with a period measured in seconds). The aggregator module periodically updates feeds using cron. Ping periodically notifies services of new content on your site. Search periodically indexes the content on your site. Automating tasks is one of the best ways to keep a system running smoothly, and if most of your administration does not require your direct involvement, cron is an ideal solution.') .'

'; + $output .= '

'. t('There is a caching mechanism which stores dynamically generated web pages in a database. By caching a web page, the system module does not have to create the page each time someone wants to view it, instead it takes only one SQL query to display it, reducing response time and the server\'s load. Only pages requested by anonymous users are cached. In order to reduce server load and save bandwidth, the system module stores and sends cached pages compressed.') .'

'; + $output .= t('

You can

+ +', array('%file-cron' => 'cron.php', '%external-http-drupal-org-node-23714' => 'http://drupal.org/node/23714', '%admin-settings' => url('admin/settings'))); + $output .= '

'. t('For more information please read the configuration and customization handbook System page.', array('%system' => 'http://www.drupal.org/handbook/modules/system/')) .'

'; + return $output; + case 'admin/modules#description': + return t('Handles general site configuration for administrators.'); case 'admin': return t('

Welcome to the administration section. Below are the most recent system events.

'); case 'admin/settings': @@ -27,18 +40,6 @@ return t('

These options control the display settings for the %template theme. When your site is displayed using this theme, these settings will be used. By clicking "Reset to defaults," you can choose to use the global settings for this theme.

', array('%template' => $theme, '%global' => url('admin/themes/settings'))); case 'admin/modules': return t('

Modules are plugins for Drupal that extend its core functionality. Here you can select which modules are enabled. Click on the name of the module in the navigation menu for their individual configuration pages. Once a module is enabled, new permissions might be made available. Modules can automatically be temporarily disabled to reduce server load when your site becomes extremely busy by enabling the throttle.module and checking throttle. The auto-throttle functionality must be enabled on the throttle configuration page after having enabled the throttle module.

', array('%permissions' => url('admin/access/permissions'), '%throttle' => url('admin/settings/throttle'))); - case 'admin/help#system': - return t(" -

Drupal comes with system-wide defaults but the setting-module provides control over many Drupal preferences, behaviours including visual and operational settings.

-

Cron

-

Some modules require regularly scheduled actions, such as cleaning up logfiles. Cron, which stands for chronograph, is a periodic command scheduler executing commands at intervals specified in seconds. It can be used to control the execution of daily, weekly and monthly jobs (or anything with a period measured in seconds). Automating tasks is one of the best ways to keep a system running smoothly, and if most of your administration does not require your direct involvement, cron is an ideal solution.

-

The recommended way to set up your cron system is to set up a Unix/Linux crontab entry (see \"man crontab\") that frequently visits %cron-link. Note that cron does not guarantee the commands will be executed at the specified interval. However, Drupal will try its best to run the tasks as close to the specified intervals as possible. The more you visit cron.php, the more accurate cron will be.

-

If your hosting company does not allow you to set up crontab entries, you can always ask someone else to set up an entry for you. After all, virtually any Unix/Linux machine with access to the internet can set up a crontab entry to frequently visit %cron-link.

-

For the Unix/Linux crontab itself, use a browser like lynx or wget but make sure the process terminates: either use /usr/bin/lynx -source %base_url/cron.php or /usr/bin/wget -o /dev/null -O /dev/null %cron-link. Take a look at the example scripts in the scripts-directory. Make sure to adjust them to fit your needs. A good crontab line to run the cron script once every hour would be: -

     00 * * * * /home/www/drupal/scripts/cron-lynx.sh
- Note that it is essential to access cron.php using a browser on the web site's domain; do not run it using command line PHP and avoid using localhost or 127.0.0.1 or some of the environment variables will not be set correctly and features may not work as expected.

", array('%base_url' => $base_url, '%cron-link' => "$base_url/cron.php", '%lynx' => 'http://lynx.browser.org', '%wget' => 'http://www.gnu.org/software/wget/wget.html' )); - case 'admin/modules#description': - return t('Handles general site configuration for administrators.'); } } Index: modules/taxonomy.module =================================================================== RCS file: /cvs/drupal/drupal/modules/taxonomy.module,v retrieving revision 1.232 diff -u -r1.232 taxonomy.module --- modules/taxonomy.module 21 Oct 2005 11:12:46 -0000 1.232 +++ modules/taxonomy.module 28 Oct 2005 02:26:53 -0000 @@ -1235,47 +1235,26 @@ */ function taxonomy_help($section) { switch ($section) { + case 'admin/help#taxonomy': + $output = '

'. t('The taxonomy module is one of the most popular features because users often want to create categories to organize content by type. It can automatically classify new content, which is very useful for organizing content on-the-fly. A simple example would be organizing a list of music reviews by musical genre.') .'

'; + $output .= '

'. t('Taxonomy is also the study of classification. The taxonomy module allows you to define vocabularies (sets of categories) which are used to classify content. The module supports hierarchical classification and association between terms, allowing for truly flexible information retrieval and classification. The taxonomy module allows multiple lists of categories for classification (controlled vocabularies) and offers the possibility of creating thesauri (controlled vocabularies that indicate the relationship of terms) and taxonomies (controlled vocabularies where relationships are indicated hierarchically). To delete a term choose edit term. To delete a vocabulary, and all its terms, choose edit vocabulary.') .'

'; + $output .= '

'. t('A controlled vocabulary is a set of terms to use for describing content (known as descriptors in indexing lingo). Drupal allows you to describe each piece of content (blog, story, etc.) using one or many of these terms. For simple implementations, you might create a set of categories without subcategories, similar to Slashdot\'s sections. For more complex implementations, you might create a hierarchical list of categories. ') .'

'; + $output .= t('

You can

+ +', array('%admin-taxonomy-add-vocabulary' => url('admin/taxonomy/add/vocabulary'), '%admin-taxonomy' => url('admin/taxonomy'), '%external-http-drupal-org-project-taxonomy_access' => 'http://drupal.org/project/taxonomy_access', '%external-http-drupal-org-project-taxonomy_browser' => 'http://drupal.org/project/taxonomy_browser')); + $output .= '

'. t('For more information please read the configuration and customization handbook Taxonomy page.', array('%taxonomy' => 'http://www.drupal.org/handbook/modules/taxonomy/')) .'

'; + return $output; case 'admin/modules#description': return t('Enables the categorization of content.'); case 'admin/taxonomy': return t('

The taxonomy module allows you to classify content into categories and subcategories; it allows multiple lists of categories for classification (controlled vocabularies) and offers the possibility of creating thesauri (controlled vocabularies that indicate the relationship of terms), taxonomies (controlled vocabularies where relationships are indicated hierarchically), and free vocabularies where terms, or tags, are defined during content creation. To delete a term, choose "edit term". To delete a vocabulary and all its terms, choose "edit vocabulary".

'); case 'admin/taxonomy/add/vocabulary': return t("

When you create a controlled vocabulary you are creating a set of terms to use for describing content (known as descriptors in indexing lingo). Drupal allows you to describe each piece of content (blog, story, etc.) using one or many of these terms. For simple implementations, you might create a set of categories without subcategories, similar to Slashdot.org's or Kuro5hin.org's sections. For more complex implementations, you might create a hierarchical list of categories.

"); - case 'admin/help#taxonomy': - return t(' -

Background

-

Taxonomy is the study of classification. Drupal\'s taxonomy module allows you to define vocabularies which are used to classify content. The module supports hierarchical classification and association between terms, allowing for truly flexible information retrieval and classification. For more details about classification types and insight into the development of the taxonomy module, see this drupal.org discussion.

-

An example taxonomy: food

- -

Notes

-

Vocabularies

-

When you create a controlled vocabulary you are creating a set of terms to use for describing content (known as descriptors in indexing lingo). Drupal allows you to describe each piece of content (blog, story, etc.) using one or many of these terms. For simple implementations, you might create a set of categories without subcategories, similar to Slashdot\'s sections. For more complex implementations, you might create a hierarchical list of categories such as Food taxonomy shown above.

-

Setting up a vocabulary

-

When setting up a controlled vocabulary, if you select the hierarchy option, you will be defining a tree structure of terms, as in a thesaurus. If you select the related terms option, you are allowing the definition of related terms (think see also), as in a thesaurus. Selecting multiple select will allow you to describe a piece of content using more than one term. That content will then appear on each term\'s page, increasing the chance that a user will find it.

-

When setting up a controlled vocabulary you are asked for:

-

Adding terms to a vocabulary

-

Once done defining the vocabulary, you have to add terms to it to make it useful. The options you see when adding a term to a vocabulary will depend on what you selected for related terms, hierarchy and multiple select. These options are:

-

-

Displaying content organized by terms

-

In order to view the content associated with a term or a collection of terms, you should browse to a properly formed Taxonomy URL. For example, taxonomy/term/1+2. Taxonomy URLs always contain one or more term IDs at the end of the URL. You may learn the term ID for a given term by hovering over that term in the taxonomy overview page and noting the number at the end or the URL. To build a Taxonomy URL start with "taxonomy/term/". Then list the term IDs, separated by "+" to choose content tagged with any of the given term IDs, or separated by "," to choose content tagged with all of the given term IDs. In other words, "+" is less specific than ",". Finally, you may optionally specify a "depth" in the vocabulary hierarchy. This defaults to "0", which means only the explicitly listed terms are searched. A positive number indicates the number of additional levels of the tree to search. You may also use the value "all", which means that all descendant terms are searched.

-

RSS feeds

-

Every term, or collection of terms, provides an RSS feed to which interested users may subscribe. The URL format for a sample RSS feed is taxonomy/term/1+2/0/feed. These are built just like Taxonomy URLs, but are followed by the word "feed".

', array('%classification-types' => 'http://en.wikipedia.org/wiki/Taxonomic_classification', '%drupal-dis' => 'http://drupal.org/node/55', '%slashdot' => 'http://slashdot.org/', '%taxo-example' => url('taxonomy/term/1+2'), '%taxo-overview' => url('admin/taxonomy'), '%userland-rss' => 'http://backend.userland.com/stories/rss', '%sample-rss' => url('taxonomy/term/1+2/feed'), '%taxo-help' => url('admin/help/taxonomy', NULL, 'taxonomy-url'))); } } Index: modules/throttle.module =================================================================== RCS file: /cvs/drupal/drupal/modules/throttle.module,v retrieving revision 1.55 diff -u -r1.55 throttle.module --- modules/throttle.module 11 Oct 2005 19:44:35 -0000 1.55 +++ modules/throttle.module 28 Oct 2005 02:23:38 -0000 @@ -108,6 +108,18 @@ */ function throttle_help($section) { switch ($section) { + case 'admin/help#throttle': + $output = '

'. t('The throttle module provides a congestion control throttling mechanism for automatically detecting a surge in incoming traffic. If the site gets linked to by a popular website, or otherwise comes under a "Denial of Service" (DoS) attack, your webserver might become overwhelmed. This mechanism is utilized by other modules to automatically optimize their performance by temporarily disabling CPU-intensive functionality. For example, in the site theme, you might choose to disable pictures when the site is too busy (reducing bandwidth), or in modules, you might choose to disable some complicated logic (reducing CPU utilization).') .'

'; + $output .= '

'. t('The congestion control throttle can be automatically enabled when the number of anonymous users currently visiting the site exceeds the specified threshold. The congestion control throttle can be automatically enabled when the number of authenticated users currently visiting the site exceeds the specified threshold. ') .'

'; + $output .= t('

You can

+ +', array('%admin-modules' => url('admin/modules'), '%admin-block' => url('admin/block'), '%admin-settings-throttle' => url('admin/settings/throttle'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Throttle page.', array('%throttle' => 'http://www.drupal.org/handbook/modules/throttle/')) .'

'; + return $output; case 'admin/modules#description': return t('Handles the auto-throttling mechanism, to control site congestion.'); case 'admin/settings/throttle': Index: modules/tracker.module =================================================================== RCS file: /cvs/drupal/drupal/modules/tracker.module,v retrieving revision 1.122 diff -u -r1.122 tracker.module --- modules/tracker.module 24 Sep 2005 07:53:26 -0000 1.122 +++ modules/tracker.module 28 Oct 2005 02:23:38 -0000 @@ -12,11 +12,17 @@ function tracker_help($section) { switch ($section) { case 'admin/help#tracker': - return t('

The tracker module is a handy module for displaying the most recently added or updated content to a Drupal site. The link to the tracker is labeled recent posts in the user\'s navigation block. Updates include changes to the text by either the original author or someone else that has permission to edit the content, such as an editor or administrator as well as all comments added to an item.

-

The Tracker module presents a page listing the recently-updated content written by the user with the content type, the title, the user\'s name, how many comments that item has received, as well as how long ago it was updated. If an item was written by someone else, tracker will show that item at the top of the list. An example:

-

A user named Jessica writes a blog post, then some time passes, and others write blog posts. Then if John posts a comment to Jessica\'s post, and you have bookmarked John\'s tracker page (see below on how to do this) then Jessica\'s content will appear at the top.

-

If an user with administer comments (e.g. an administrator or editor of a site) deletes a comment (e.g. it is off-topic, inappropriate language, or unsolicited advertisement), the content item will drop down to when it was updated previous to that deleted comment.

-

To use the Tracker module to "watch" for a user\'s updated content, click on that user\'s profile, then the "track" tab.

'); + $output = '

'. t('The tracker module displays the most recently added or updated content to the website allowing users to see the most recent contributions. The tracker module provides user level tracking for those who like to follow the contributions of particular authors.') .'

'; + $output .= '

'. t('The "recent posts" page is available via a link in the navigation menu block and contains a reverse chronological list of new and recently-updated content. The table displays the content type, the title, the author\'s name, how many comments that item has received, and when it was last updated. Updates include any changes to the text, either by the original author or someone else, as well as any new comments added to an item. To use the tracker module to watch for a user\'s updated content, click on that user\'s profile, then the track tab.') .'

'; + $output .= t('

You can

+ +', array('%tracker' => url('tracker'), '%profile' => url('profile'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Tracker page.', array('%tracker' => 'http://www.drupal.org/handbook/modules/tracker/')) .'

'; + return $output; case 'admin/modules#description': return t('Enables tracking of recent posts for users.'); } Index: modules/upload.module =================================================================== RCS file: /cvs/drupal/drupal/modules/upload.module,v retrieving revision 1.55 diff -u -r1.55 upload.module --- modules/upload.module 11 Oct 2005 19:44:35 -0000 1.55 +++ modules/upload.module 28 Oct 2005 02:23:38 -0000 @@ -11,6 +11,18 @@ */ function upload_help($section) { switch ($section) { + case 'admin/help#upload': + $output = '

'. t('The upload module allows users to upload files to the site. The ability to upload files to a site is important for members of a community who want to share work. It is also useful to administrators who want to keep uploaded files connected to a node or page.') .'

'; + $output .= '

'. t('Users with the upload files permission can upload attachments. You can choose which post types can take attachments on the content types settings page. Each user role can be customized for the file size of uploads, and the dimension of image files.') .'

'; + $output .= t('

You can

+ +', array('%admin-user-configure' => url('admin/user/configure'), '%admin-node-configure' => url('admin/node/configure'), '%admin-settings' => url('admin/settings'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Upload page.', array('%upload' => 'http://www.drupal.org/handbook/modules/upload/')) .'

'; + return $output; case 'admin/modules#description': return t('Allows users to upload and attach files to content.'); case 'admin/settings/upload': Index: modules/user.module =================================================================== RCS file: /cvs/drupal/drupal/modules/user.module,v retrieving revision 1.524 diff -u -r1.524 user.module --- modules/user.module 28 Oct 2005 00:37:06 -0000 1.524 +++ modules/user.module 28 Oct 2005 02:28:08 -0000 @@ -1816,6 +1816,22 @@ global $user; switch ($section) { + case 'admin/help#user': + $output = '

'. t('The user module allows users to register, login, and logout. Users benefit from being able to sign on because it associates content they create with their account and allows various permissions to be set for their roles. The user module supports user roles which can setup fine grained permissions allowing each role to do only what the administrator wants them to. Each user is assigned to one or more roles. By default there are two roles anonymous - a user who has not logged in, and authenticated a user who has signed up and who has been authorized. ') .'

'; + $output .= '

'. t('Users can use their own name or handle and can fine tune some personal configuration settings through their individual my account page. Registered users need to authenticate by supplying either a local username and password, or a remote username and password such as DelphiForums ID, or one from a Drupal powered website. A visitor accessing your website is assigned an unique ID, the so-called session ID, which is stored in a cookie. For security\'s sake, the cookie does not contain personal information but acts as a key to retrieve the information stored on your server. ') .'

'; + $output .= t('

You can

+ +', array('%user' => url('user'), '%admin-user' => url('admin/user'), '%admin-themes' => url('admin/themes'), '%admin-help-profile' => url('admin/help/profile'), '%admin-help-system' => url('admin/help/system'))); + $output .= '

'. t('For more information please read the configuration and customization handbook User page.', array('%user' => 'http://www.drupal.org/handbook/modules/user/')) .'

'; + return $output; + case 'admin/modules#description': + return t('Manages the user registration and login system.'); case 'admin/user': return t('

Drupal allows users to register, login, logout, maintain user profiles, etc. No participant can use his own name to post content until he signs up for a user account.

'); case 'admin/user/create': @@ -1833,8 +1849,6 @@ ', array('%permissions' => url('admin/access/permissions'))); case 'admin/user/search': return t('

Enter a simple pattern ("*" may be used as a wildcard match) to search for a username. For example, one may search for "br" and Drupal might return "brian", "brad", and "brenda".

'); - case 'admin/modules#description': - return t('Manages the user registration and login system.'); case 'admin/user/configure': case 'admin/user/configure/settings': return t('

In order to use the full power of Drupal a visitor must sign up for an account. This page lets you setup how a user signs up, logs out, the guidelines from the system about user subscriptions, and the e-mails the system will send to the user.

'); @@ -1854,30 +1868,6 @@ } return $output; - case 'admin/help#user': - $output = t(" -

Introduction

-

Drupal offers a powerful access system that allows users to register, login, logout, maintain user profiles, etc. By using roles you can setup fine grained permissions allowing each role to do only what you want them to. Each user is assigned to one or more roles. By default there are two roles \"anonymous\" - a user who has not logged in, and \"authorized\" a user who has signed up and who has been authorized. As anonymous users, participants suffer numerous disadvantages, for example they cannot sign their names to nodes, and their moderated posts beginning at a lower score.

-

In contrast, those with a user account can use their own name or handle and are granted various privileges: the most important is probably the ability to moderate new submissions, to rate comments, and to fine-tune the site to their personal liking, with saved personal settings. Drupal themes make fine tuning quite a pleasure.

-

Registered users need to authenticate by supplying either a local username and password, or a remote username and password such as a Jabber ID, DelphiForums ID, or one from a Drupal powered website. See the distributed authentication help for more information on this innovative feature. - The local username and password, hashed with Message Digest 5 (MD5), are stored in your database. When you enter a password it is also hashed with MD5 and compared with what is in the database. If the hashes match, the username and password are correct. Once a user authenticated session is started, and until that session is over, the user won't have to re-authenticate. To keep track of the individual sessions, Drupal relies on PHP sessions. A visitor accessing your website is assigned an unique ID, the so-called session ID, which is stored in a cookie. For security's sake, the cookie does not contain personal information but acts as a key to retrieve the information stored on your server. When a visitor accesses your site, Drupal will check whether a specific session ID has been sent with the request. If this is the case, the prior saved environment is recreated.

-

User preferences and profiles

Each Drupal user has a profile, and a set of preferences which may be edited by clicking on the \"my account\" link. Of course, a user must be logged into reach those pages. There, users will find a page for changing their preferred time zone, language, username, e-mail address, password, theme, signature, and distributed authentication names. Changes made here take effect immediately. Also, administrators may make profile and preferences changes in account administration on behalf of their users.

- -

Distributed authentication

-

One of the more tedious moments in visiting a new website is filling out the registration form. The reg form provides helpful information to the website owner, but not much value for the user. The value for the end user is usually the ability to post a messages or receive personalized news, etc. Distributed authentication (DA) gives the user what they want without having to fill out the reg form. Removing this obstacle yields more registered and active users for the website.

-

DA enables a new user to input a username and password into the login box and immediately be recognized, even if that user never registered on your site. This works because Drupal knows how to communicate with external registration databases. For example, lets say that your new user 'Joe' is already a registered member of Delphi Forums. If your Drupal has the delphi module installed, then Drupal will inform Joe on the registration and login screens that he may login with his Delphi ID instead of registering with your Drupal instance. Joe likes that idea, and logs in with a username of joe@remote.delphiforums.com and his usual Delphi password. Drupal then communicates with remote.delphiforums.com (usually using XML, HTTP-POST, or SOAP) behind the scenes and asks "is this password for username=joe?" If Delphi replies yes, then Drupal will create a new local account for joe and log joe into it. Joe may keep on logging into your Drupal instance in the same manner, and he will be logged into the same joe@remote.delphiforums.com account.

-

One key element of DA is the 'authmap' table, which maps a user's authname (e.g. joe@remote.delphiforums.com) to his local UID (i.e. user identification number). This map is checked whenever a user successfully logs into an external authentication source. Once Drupal knows that the current user is definitely joe@remote.delphiforums.com (because Delphi says so), he looks up Joe's UID and logs Joe into that account.

-

To disable distributed authentication, simply disable or remove all DA modules. For a virgin install, that means removing/disabling the jabber module and the drupal module.

-

Drupal is setup so that it is very easy to add support for any external authentication source. You currently have the following authentication modules installed ...

", array('%user-role' => url('admin/access/roles'), '%user-permission' => url('admin/access/permissions'), '%jabber' => 'http://www.jabber.org/', '%delphi-forums' => 'http://www.delphiforums.com/', '%drupal' => 'http://www.drupal.org/', '%da-auth' => url('admin/help/user#da'), '%php-sess' => 'http://www.php.net/manual/en/ref.session.php', '%admin-user' => url('admin/user'), '%xml' => 'http://www.xmlrpc.org/', '%http-post' => 'http://www.w3.org/Protocols/', '%soap' => 'http://www.soapware.org/', '%dis-module' => url('admin/modules'), '%user-prefs' => url('user/' . $user->uid))); - - foreach (module_list() as $module) { - if (module_hook($module, 'auth')) { - $output = strtr($output, array('%module-list' => '

'. module_invoke($module, 'info', 'name') ."

\n%module-list")); - $output = strtr($output, array('%module-list' => module_invoke($module, 'help', 'user/help') . "\n%module-list")); - } - } - - return strtr($output, array('%module-list' => '')); } } Index: modules/watchdog.module =================================================================== RCS file: /cvs/drupal/drupal/modules/watchdog.module,v retrieving revision 1.131 diff -u -r1.131 watchdog.module --- modules/watchdog.module 21 Oct 2005 10:50:03 -0000 1.131 +++ modules/watchdog.module 28 Oct 2005 02:55:54 -0000 @@ -15,12 +15,23 @@ /** * Implementation of hook_help(). */ -function watchdog_help($section = 'admin/help#watchdog') { +function watchdog_help($section) { switch ($section) { - case 'admin/logs': - return t('

The watchdog module monitors your web site, capturing system events in a log to be reviewed by an authorized individual at a later time. The watchdog log is simply a list of recorded events containing usage data, performance data, errors, warnings and operational information. It is vital to check the watchdog report on a regular basis as it is often the only way to tell what is going on.

'); + case 'admin/help#watchdog': + $output = '

'. t('The watchdog module monitors your system, capturing system events in a log to be reviewed by an authorized individual at a later time. This is useful for site administrators who want a quick overview of activities on their site. The logs also record the sequence of events, so it can be useful for debugging site errors.') .'

'; + $output .= '

'. t('The watchdog log is simply a list of recorded events containing usage data, performance data, errors, warnings and operational information. Administrators should check the watchdog report on a regular basis to ensure their site is working properly.') .'

'; + $output .= t('

You can

+ +', array('%admin-watchdog' => url('admin/watchdog'), '%admin-watchdog-events' => url('admin/watchdog/events'))); + $output .= '

'. t('For more information please read the configuration and customization handbook Watchdog page.', array('%watchdog' => 'http://www.drupal.org/handbook/modules/watchdog/')) .'

'; + return $output; case 'admin/modules#description': return t('Logs and records system events.'); + case 'admin/logs': + return t('

The watchdog module monitors your web site, capturing system events in a log to be reviewed by an authorized individual at a later time. The watchdog log is simply a list of recorded events containing usage data, performance data, errors, warnings and operational information. It is vital to check the watchdog report on a regular basis as it is often the only way to tell what is going on.

'); } }