Index: includes/module.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/module.inc,v retrieving revision 1.82 diff -u -F^f -r1.82 module.inc --- includes/module.inc 20 Aug 2006 05:57:40 -0000 1.82 +++ includes/module.inc 30 Aug 2006 03:34:32 -0000 @@ -103,8 +103,13 @@ function module_rebuild_cache() { ksort($files); foreach ($files as $filename => $file) { - drupal_get_filename('module', $file->name, $file->filename); - drupal_load('module', $file->name); + $file->metadata = module_parse_meta_file($file->name, dirname($file->filename)); + // Skip modules that don't provide metadata. + if (empty($file->metadata)) { + unset($files[$filename]); + continue; + } + $files[$filename]->metadata = $file->metadata; // log the critical hooks implemented by this module $bootstrap = 0; @@ -117,11 +122,11 @@ function module_rebuild_cache() { // Update the contents of the system table: if (isset($file->status) || (isset($file->old_filename) && $file->old_filename != $file->filename)) { - db_query("UPDATE {system} SET description = '%s', name = '%s', filename = '%s', bootstrap = %d WHERE filename = '%s'", $file->description, $file->name, $file->filename, $bootstrap, $file->old_filename); + db_query("UPDATE {system} SET description = '%s', name = '%s', filename = '%s', bootstrap = %d WHERE filename = '%s'", $file->metadata['description'], $file->name, $file->filename, $bootstrap, $file->old_filename); } else { // This is a new module. - db_query("INSERT INTO {system} (name, description, type, filename, status, throttle, bootstrap) VALUES ('%s', '%s', '%s', '%s', %d, %d, %d)", $file->name, $file->description, 'module', $file->filename, $file->status, $file->throttle, $bootstrap); + db_query("INSERT INTO {system} (name, description, type, filename, status, throttle, bootstrap) VALUES ('%s', '%s', '%s', '%s', %d, %d, %d)", $file->name, $file->metadata['description'], 'module', $file->filename, $file->status, $file->throttle, $bootstrap); } } @@ -129,6 +134,61 @@ function module_rebuild_cache() { } /** + * Parse drupal meta file format. + * // Comments are supported + * // with single-line PHP syntax + * + * Key:Value pairs + * With: Spaces + * On :Either + * Side : Work like you expect them to // with comments at the end too + * + * Double-Quotes : "Can be used to \"surround\" a value" + * And are : "needed to use two slashes inside a value // like this" + * Double-Quotes : are returned as part of the value " when not at the beginning " + * + * Single-Quotes : 'Can be used to \'surround\' a value' + * And are : 'needed to use two slashes inside a value // like this' + * Single-Quotes : are returned as part of the value ' when not at the beginning ' + * + * Multi-line values: "Are supported when you use quotes + * to surround them." + * + * The value: + * can be placed on the next line too + * + * This works: + * "For multi-line + * values as well." + * + * @param $module + * The name of the module + * @param $path + * The path the module lives in, not including the module name. + * @return + * The meta data array + */ +function module_parse_meta_file($module, $path) { + $filename = $path .'/'. $module .'.meta'; + $metadata = array(); + + if (file_exists($filename)) { + $handle = fopen($filename, "r"); + $meta = fread($handle, filesize($filename)); + fclose($handle); + $pattern = '@^\s*((?:[^:/]|/(?!/))+?)\s*:\s*(?:("(?:[^"]|(?<=\\\\)")*")|(\'(?:[^\']|(?<=\\\\)\')*\')|([^\n]*?))\s*($|//)@ms'; + if (preg_match_all($pattern, $meta, $matches, PREG_SET_ORDER)) { + foreach ($matches as $match) { + list(, $key, $value1, $value2, $value3) = $match; + $value = stripslashes(trim($value1, '"')) . stripslashes(trim($value2, "'")) . $value3; + $metadata[$key] = $value; + } + } + } + return $metadata; +} + +/** * Determine whether a given module exists. * * @param $module Index: modules/aggregator/aggregator.meta =================================================================== RCS file: modules/aggregator/aggregator.meta diff -N modules/aggregator/aggregator.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/aggregator/aggregator.meta 30 Aug 2006 03:34:32 -0000 @@ -0,0 +1,2 @@ +name: Aggregator +description: Aggregates syndicated content (RSS, RDF, and Atom feeds). Index: modules/aggregator/aggregator.module =================================================================== RCS file: /cvs/drupal/drupal/modules/aggregator/aggregator.module,v retrieving revision 1.302 diff -u -F^f -r1.302 aggregator.module --- modules/aggregator/aggregator.module 23 Aug 2006 18:38:41 -0000 1.302 +++ modules/aggregator/aggregator.module 30 Aug 2006 03:34:33 -0000 @@ -27,8 +27,6 @@ function aggregator_help($section) { ', array('@admin-aggregator' => url('admin/content/aggregator'), '@admin-aggregator-add-feed' => url('admin/content/aggregator/add/feed'), '@admin-aggregator-add-category' => url('admin/content/aggregator/add/category'), '@admin-settings-aggregator' => url('admin/settings/aggregator'), '@admin-access' => url('admin/user/access'), '@aggregator' => url('aggregator'))); $output .= '

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

'; return $output; - case 'admin/settings/modules#description': - return t('Aggregates syndicated content (RSS, RDF, and Atom feeds).'); case 'admin/content/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). To display the feed or category in a block you must decide how many items to show by editing the feed or block and turning on the feed\'s block.

', array('@block' => url('admin/build/block'))); case 'admin/content/aggregator/add/feed': Index: modules/block/block.meta =================================================================== RCS file: modules/block/block.meta diff -N modules/block/block.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/block/block.meta 30 Aug 2006 03:34:33 -0000 @@ -0,0 +1,3 @@ +name: Block +description: Controls the boxes that are displayed around the main content. + Index: modules/block/block.module =================================================================== RCS file: /cvs/drupal/drupal/modules/block/block.module,v retrieving revision 1.224 diff -u -F^f -r1.224 block.module --- modules/block/block.module 27 Aug 2006 12:43:18 -0000 1.224 +++ modules/block/block.module 30 Aug 2006 03:34:33 -0000 @@ -38,8 +38,6 @@ function block_help($section) { ', array('@admin-block' => url('admin/build/block'), '@admin-block-add' => url('admin/build/block/add'))); $output .= '

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

'; return $output; - case 'admin/settings/modules#description': - return t('Controls the boxes that are displayed around the main content.'); case 'admin/build/block': return t("

Blocks are boxes of content that may be rendered into certain regions of your web pages, for example, into sidebars. They are usually generated automatically by modules, but administrators can create blocks manually.

Index: modules/blog/blog.meta =================================================================== RCS file: modules/blog/blog.meta diff -N modules/blog/blog.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/blog/blog.meta 30 Aug 2006 03:34:33 -0000 @@ -0,0 +1,3 @@ +name: Blog +description: Enables keeping an easily and regularly updated web page or a blog. + Index: modules/blog/blog.module =================================================================== RCS file: /cvs/drupal/drupal/modules/blog/blog.module,v retrieving revision 1.264 diff -u -F^f -r1.264 blog.module --- modules/blog/blog.module 27 Aug 2006 12:43:18 -0000 1.264 +++ modules/blog/blog.module 30 Aug 2006 03:34:34 -0000 @@ -76,8 +76,6 @@ function blog_help($section) { ', array('@user' => url('user'), '@node-add-blog' => url('node/add/blog'), '@admin-node-configure-types-blog' => url('admin/content/types/blog'), '@admin-settings-blogapi' => url('admin/settings/blogapi'), '@admin-block' => url('admin/build/block'))); $output .= '

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

'; return $output; - case 'admin/settings/modules#description': - return t('Enables keeping an easily and regularly updated web page or a blog.'); } } Index: modules/blogapi/blogapi.meta =================================================================== RCS file: modules/blogapi/blogapi.meta diff -N modules/blogapi/blogapi.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/blogapi/blogapi.meta 30 Aug 2006 03:34:34 -0000 @@ -0,0 +1,3 @@ +name: Blog API +description: Allows users to post content using applications that support XML-RPC blog APIs. + Index: modules/blogapi/blogapi.module =================================================================== RCS file: /cvs/drupal/drupal/modules/blogapi/blogapi.module,v retrieving revision 1.94 diff -u -F^f -r1.94 blogapi.module --- modules/blogapi/blogapi.module 18 Aug 2006 18:58:44 -0000 1.94 +++ modules/blogapi/blogapi.module 30 Aug 2006 03:34:34 -0000 @@ -23,8 +23,6 @@ function blogapi_help($section) { ', 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://drupal.org/handbook/modules/blogapi/')) .'

'; return $output; - case 'admin/settings/modules#description': - return t('Allows users to post content using applications that support XML-RPC blog APIs.'); } } Index: modules/book/book.meta =================================================================== RCS file: modules/book/book.meta diff -N modules/book/book.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/book/book.meta 30 Aug 2006 03:34:34 -0000 @@ -0,0 +1,3 @@ +name: Book +description: Allows users to collaboratively author a book. + Index: modules/book/book.module =================================================================== RCS file: /cvs/drupal/drupal/modules/book/book.module,v retrieving revision 1.387 diff -u -F^f -r1.387 book.module --- modules/book/book.module 29 Aug 2006 18:43:25 -0000 1.387 +++ modules/book/book.module 30 Aug 2006 03:34:35 -0000 @@ -985,8 +985,6 @@ function book_help($section) { ', array('@node-add-book' => url('node/add/book'), '@admin-node-book' => url('admin/content/book'), '@admin-settings-content-types-book-page' => url('admin/content/types/book'), '@admin-block' => url('admin/build/block'), '@admin-access' => url('admin/user/access'))); $output .= '

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

'; return $output; - case 'admin/settings/modules#description': - return t('Allows users to collaboratively author a book.'); case 'admin/content/book': return t('

The book module offers a means to organize content, authored by many users, in an online manual, outline or FAQ.

'); case 'admin/content/book/orphan': Index: modules/comment/comment.meta =================================================================== RCS file: modules/comment/comment.meta diff -N modules/comment/comment.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/comment/comment.meta 30 Aug 2006 03:34:35 -0000 @@ -0,0 +1,3 @@ +name: Comment +description: Allows users to comment on and discuss published content. + Index: modules/comment/comment.module =================================================================== RCS file: /cvs/drupal/drupal/modules/comment/comment.module,v retrieving revision 1.481 diff -u -F^f -r1.481 comment.module --- modules/comment/comment.module 29 Aug 2006 18:43:25 -0000 1.481 +++ modules/comment/comment.module 30 Aug 2006 03:34:36 -0000 @@ -80,8 +80,6 @@ function comment_help($section) { ', array('@admin-access' => url('admin/user/access'), '@admin-settings-comment' => url('admin/content/comment/settings'))); $output .= '

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

'; return $output; - case 'admin/settings/modules#description': - return t('Allows users to comment on and discuss published content.'); case 'admin/content/comment': case 'admin/content/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.

"); Index: modules/contact/contact.meta =================================================================== RCS file: modules/contact/contact.meta diff -N modules/contact/contact.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/contact/contact.meta 30 Aug 2006 03:34:36 -0000 @@ -0,0 +1,3 @@ +name: Contact +description: Enables the use of both personal and site-wide contact forms. + Index: modules/contact/contact.module =================================================================== RCS file: /cvs/drupal/drupal/modules/contact/contact.module,v retrieving revision 1.63 diff -u -F^f -r1.63 contact.module --- modules/contact/contact.module 20 Aug 2006 05:57:40 -0000 1.63 +++ modules/contact/contact.module 30 Aug 2006 03:34:36 -0000 @@ -23,8 +23,6 @@ function contact_help($section) { $output .= '
  • '. t('Site-wide contact form menu configuration.', array('@menu-configuration' => url('admin/build/menu'))) .'
  • '; $output .= t('For more information, please read the configuration and customization handbook page for the contact module.', array('@contact' => url('http://drupal.org/handbook/modules/contact/', NULL, NULL, TRUE))); return $output; - case 'admin/settings/modules#description': - return t('Enables the use of both personal and site-wide contact forms.'); case 'admin/build/contact': $output = t('This page lets you setup your site-wide contact form. To do so, add one or more categories. You can associate different recipients with each category to route e-mails to different people. For example, you can route website feedback to the webmaster and direct product information requests to the sales department. On the settings page, you can customize the information shown above the contact form. This can be useful to provide additional contact information such as your postal address and telephone number.', array('@settings' => url('admin/build/contact/settings'), '@form' => url('contact'))); if (!module_exists('menu')) { Index: modules/drupal/drupal.meta =================================================================== RCS file: modules/drupal/drupal.meta diff -N modules/drupal/drupal.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/drupal/drupal.meta 30 Aug 2006 03:34:36 -0000 @@ -0,0 +1,3 @@ +name: Drupal +description: Lets you register your site with a central server and improve ranking of Drupal projects by posting information on your installed modules and themes; also enables users to log in using a Drupal ID. + Index: modules/drupal/drupal.module =================================================================== RCS file: /cvs/drupal/drupal/modules/drupal/drupal.module,v retrieving revision 1.127 diff -u -F^f -r1.127 drupal.module --- modules/drupal/drupal.module 18 Aug 2006 18:58:45 -0000 1.127 +++ modules/drupal/drupal.module 30 Aug 2006 03:34:37 -0000 @@ -44,8 +44,6 @@ function drupal_help($section) { $output .= '

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

    '; return $output; - case 'admin/settings/modules#description': - return t('Lets you register your site with a central server and improve ranking of Drupal projects by posting information on your installed modules and themes; also enables users to log in using a Drupal ID.'); case 'admin/settings/distributed-authentication': return t('

    Using this your site can "call home" to another Drupal server. By calling home to drupal.org and sending a list of your installed modules and themes, you help rank projects on drupal.org and so assist all Drupal administrators to find the best components for meeting their needs. If you want to register with a different server, you can change the Drupal XML-RPC server setting -- but the server has to be able to handle Drupal XML. Some XML-RPC servers may present directories of all registered sites. To get all your site information listed, go to the site information settings page and set the site name, the e-mail address, the slogan, and the mission statement.

    ', array('@site-settings' => url('admin/settings/site-information'))); case 'user/help#drupal': Index: modules/filter/filter.meta =================================================================== RCS file: modules/filter/filter.meta diff -N modules/filter/filter.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/filter/filter.meta 30 Aug 2006 03:34:37 -0000 @@ -0,0 +1,3 @@ +name: Filter +description: Handles the filtering of content in preparation for display. + Index: modules/filter/filter.module =================================================================== RCS file: /cvs/drupal/drupal/modules/filter/filter.module,v retrieving revision 1.137 diff -u -F^f -r1.137 filter.module --- modules/filter/filter.module 27 Aug 2006 12:54:01 -0000 1.137 +++ modules/filter/filter.module 30 Aug 2006 03:34:38 -0000 @@ -30,8 +30,6 @@ function filter_help($section) { ', array('@admin-filters' => url('admin/settings/filters'))); $output .= '

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

    '; return $output; - case 'admin/settings/modules#description': - return t('Handles the filtering of content in preparation for display.'); case 'admin/settings/filters': return t(' Index: modules/forum/forum.meta =================================================================== RCS file: modules/forum/forum.meta diff -N modules/forum/forum.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/forum/forum.meta 30 Aug 2006 03:34:38 -0000 @@ -0,0 +1,3 @@ +name: Forum +description: Enables threaded discussions about general topics. + Index: modules/forum/forum.module =================================================================== RCS file: /cvs/drupal/drupal/modules/forum/forum.module,v retrieving revision 1.356 diff -u -F^f -r1.356 forum.module --- modules/forum/forum.module 29 Aug 2006 18:43:25 -0000 1.356 +++ modules/forum/forum.module 30 Aug 2006 03:34:39 -0000 @@ -25,8 +25,6 @@ function forum_help($section) { ', array('@admin-forum' => url('admin/content/forum'), '@admin-modules' => url('admin/settings/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://drupal.org/handbook/modules/forum/')) .'

    '; return $output; - case 'admin/settings/modules#description': - return t('Enables threaded discussions about general topics.'); case 'admin/content/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/content/forum/add/container': Index: modules/help/help.meta =================================================================== RCS file: modules/help/help.meta diff -N modules/help/help.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/help/help.meta 30 Aug 2006 03:34:39 -0000 @@ -0,0 +1,2 @@ +name: Help +description: Manages the display of online help. Index: modules/help/help.module =================================================================== RCS file: /cvs/drupal/drupal/modules/help/help.module,v retrieving revision 1.57 diff -u -F^f -r1.57 help.module --- modules/help/help.module 25 Aug 2006 09:01:12 -0000 1.57 +++ modules/help/help.module 30 Aug 2006 03:34:39 -0000 @@ -116,8 +116,6 @@ function help_help($section) { $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://drupal.org/handbook/modules/help/')) .'

    '; return $output; - case 'admin/settings/modules#description': - return t('Manages the display of online help.'); } } Index: modules/legacy/legacy.meta =================================================================== RCS file: modules/legacy/legacy.meta diff -N modules/legacy/legacy.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/legacy/legacy.meta 30 Aug 2006 03:34:39 -0000 @@ -0,0 +1,3 @@ +name: Legacy +description: Provides legacy handlers for upgrades from older Drupal installations. + Index: modules/legacy/legacy.module =================================================================== RCS file: /cvs/drupal/drupal/modules/legacy/legacy.module,v retrieving revision 1.12 diff -u -F^f -r1.12 legacy.module --- modules/legacy/legacy.module 18 Aug 2006 12:16:58 -0000 1.12 +++ modules/legacy/legacy.module 30 Aug 2006 03:34:39 -0000 @@ -27,8 +27,6 @@ function legacy_help($section) { $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://drupal.org/handbook/modules/legacy/')) .'

    '; return $output; - case 'admin/settings/modules#description': - return t('Provides legacy handlers for upgrades from older Drupal installations.'); } } Index: modules/locale/locale.meta =================================================================== RCS file: modules/locale/locale.meta diff -N modules/locale/locale.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/locale/locale.meta 30 Aug 2006 03:34:39 -0000 @@ -0,0 +1,3 @@ +name: Locale +description: Enables the translation of the user interface to languages other than English. + Index: modules/locale/locale.module =================================================================== RCS file: /cvs/drupal/drupal/modules/locale/locale.module,v retrieving revision 1.143 diff -u -F^f -r1.143 locale.module --- modules/locale/locale.module 18 Aug 2006 18:58:46 -0000 1.143 +++ modules/locale/locale.module 30 Aug 2006 03:34:39 -0000 @@ -33,8 +33,6 @@ function locale_help($section) { ', array('@admin-locale' => url('admin/settings/locale'), '@admin-locale-string-search' => url('admin/settings/locale/string/search'), '@admin-locale-language-add' => url('admin/settings/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://drupal.org/handbook/modules/locale/')) .'

    '; return $output; - case 'admin/settings/modules#description': - return t('Enables the translation of the user interface to languages other than English.'); case 'admin/settings/locale': case 'admin/settings/locale/language/overview': return t("

    Drupal provides support for the translation of its interface text into different languages. This page provides an overview of the installed languages. You can add a language on the add language page, or directly by importing a translation. If multiple languages are enabled, registered users will be able to set their preferred language. The site default will be used for anonymous visitors and for users without their own settings.

    Drupal interface translations may be added or extended by several courses: by importing an existing translation, by translating everything from scratch, or by a combination of these approaches.

    ", array("@search" => url("admin/settings/locale/string/search"), "@import" => url("admin/settings/locale/language/import"), "@add-language" => url("admin/settings/locale/language/add"))); Index: modules/menu/menu.meta =================================================================== RCS file: modules/menu/menu.meta diff -N modules/menu/menu.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/menu/menu.meta 30 Aug 2006 03:34:39 -0000 @@ -0,0 +1,3 @@ +name: Menu +description: Allows administrators to customize the site navigation menu. + Index: modules/menu/menu.module =================================================================== RCS file: /cvs/drupal/drupal/modules/menu/menu.module,v retrieving revision 1.84 diff -u -F^f -r1.84 menu.module --- modules/menu/menu.module 29 Aug 2006 18:43:25 -0000 1.84 +++ modules/menu/menu.module 30 Aug 2006 03:34:40 -0000 @@ -31,8 +31,6 @@ function menu_help($section) { ', array('@admin-menu' => url('admin/build/menu'), '@admin-block' => url('admin/build/block'), '@admin-menu-menu-add' => url('admin/build/menu/menu/add'), '@admin-menu-item-add' => url('admin/build/menu/item/add'), '@admin-settings-menus' => url('admin/build/menu/settings'))); $output .= '

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

    '; return $output; - case 'admin/settings/modules#description': - return t('Allows administrators to customize the site navigation menu.'); case 'admin/build/menu': return '

    '. t('Menus are a collection of links (menu items) used to navigate a website. The list(s) below display the currently available menus along with their menu items. Select an operation from the list to manage each menu or menu item.', array('@admin-settings-menus' => url('admin/build/menu/settings'), '@admin-block'=> url('admin/build/block'))) .'

    '; case 'admin/build/menu/menu/add': Index: modules/node/node.meta =================================================================== RCS file: modules/node/node.meta diff -N modules/node/node.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/node/node.meta 30 Aug 2006 03:34:40 -0000 @@ -0,0 +1,3 @@ +name: Node +description: Allows content to be submitted to the site and displayed on pages. + Index: modules/node/node.module =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.module,v retrieving revision 1.690 diff -u -F^f -r1.690 node.module --- modules/node/node.module 29 Aug 2006 18:43:25 -0000 1.690 +++ modules/node/node.module 30 Aug 2006 03:34:42 -0000 @@ -52,8 +52,6 @@ function node_help($section) { ', array('@search' => url('search'), '@admin-settings-content-types' => url('admin/content/types'))); $output .= '

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

    '; return $output; - case 'admin/settings/modules#description': - return t('Allows content to be submitted to the site and displayed on pages.'); case 'admin/content/search': return t('

    Enter a simple pattern to search for a post. This can include the wildcard character *.
    For example, a search for "br*" might return "bread bakers", "our daily bread" and "brenda".

    '); case 'admin/content/types': Index: modules/path/path.meta =================================================================== RCS file: modules/path/path.meta diff -N modules/path/path.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/path/path.meta 30 Aug 2006 03:34:42 -0000 @@ -0,0 +1,3 @@ +name: Path +description: Allows users to rename URLs. + Index: modules/path/path.module =================================================================== RCS file: /cvs/drupal/drupal/modules/path/path.module,v retrieving revision 1.92 diff -u -F^f -r1.92 path.module --- modules/path/path.module 29 Aug 2006 18:43:25 -0000 1.92 +++ modules/path/path.module 30 Aug 2006 03:34:42 -0000 @@ -34,8 +34,6 @@ function path_help($section) { ', array('@admin-path-add' => url('admin/build/path/add'), '@admin-path' => url('admin/build/path'), '@external-http-drupal-org-node-15365' => 'http://drupal.org/node/15365', '@admin-clean-url-settings' => url('admin/settings/clean-urls'))); $output .= '

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

    '; return $output; - case 'admin/settings/modules#description': - return t('Allows users to rename URLs.'); case 'admin/build/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/build/path/add': Index: modules/ping/ping.meta =================================================================== RCS file: modules/ping/ping.meta diff -N modules/ping/ping.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/ping/ping.meta 30 Aug 2006 03:34:42 -0000 @@ -0,0 +1,3 @@ +name: Ping +description: Alerts other sites when your site has been updated. + Index: modules/ping/ping.module =================================================================== RCS file: /cvs/drupal/drupal/modules/ping/ping.module,v retrieving revision 1.42 diff -u -F^f -r1.42 ping.module --- modules/ping/ping.module 18 Aug 2006 12:16:58 -0000 1.42 +++ modules/ping/ping.module 30 Aug 2006 03:34:42 -0000 @@ -23,8 +23,6 @@ function ping_help($section) { ', array('@admin-modules' => url('admin/settings/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://drupal.org/handbook/modules/ping/')) .'

    '; return $output; - case 'admin/settings/modules#description': - return t('Alerts other sites when your site has been updated.'); } } Index: modules/poll/poll.meta =================================================================== RCS file: modules/poll/poll.meta diff -N modules/poll/poll.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/poll/poll.meta 30 Aug 2006 03:34:42 -0000 @@ -0,0 +1,3 @@ +name: Poll +description: Allows your site to capture votes on different topics in the form of multiple choice questions. + Index: modules/poll/poll.module =================================================================== RCS file: /cvs/drupal/drupal/modules/poll/poll.module,v retrieving revision 1.213 diff -u -F^f -r1.213 poll.module --- modules/poll/poll.module 29 Aug 2006 18:43:25 -0000 1.213 +++ modules/poll/poll.module 30 Aug 2006 03:34:42 -0000 @@ -23,8 +23,6 @@ function poll_help($section) { ', array('@poll' => url('poll'), '@admin-node-configure-types-poll' => url('admin/content/types/poll'))); $output .= '

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

    '; return $output; - case 'admin/settings/modules#description': - return t("Allows your site to capture votes on different topics in the form of multiple choice questions."); } } Index: modules/profile/profile.meta =================================================================== RCS file: modules/profile/profile.meta diff -N modules/profile/profile.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/profile/profile.meta 30 Aug 2006 03:34:42 -0000 @@ -0,0 +1,3 @@ +name: Profile +description: Supports configurable user profiles. + Index: modules/profile/profile.module =================================================================== RCS file: /cvs/drupal/drupal/modules/profile/profile.module,v retrieving revision 1.167 diff -u -F^f -r1.167 profile.module --- modules/profile/profile.module 20 Aug 2006 07:07:17 -0000 1.167 +++ modules/profile/profile.module 30 Aug 2006 03:34:43 -0000 @@ -40,8 +40,6 @@ function profile_help($section) { ', array('@profile' => url('profile'), '@admin-settings-profile' => url('admin/user/profile'))); $output .= '

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

    '; return $output; - case 'admin/settings/modules#description': - return t('Supports configurable user profiles.'); case 'admin/user/profile': return t('

    Here you can define custom fields that users can fill in in their user profile (such as country, real name, age, ...).

    '); } Index: modules/search/search.meta =================================================================== RCS file: modules/search/search.meta diff -N modules/search/search.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/search/search.meta 30 Aug 2006 03:34:43 -0000 @@ -0,0 +1,3 @@ +name: Search +description: Enables site-wide keyword searching. + Index: modules/search/search.module =================================================================== RCS file: /cvs/drupal/drupal/modules/search/search.module,v retrieving revision 1.195 diff -u -F^f -r1.195 search.module --- modules/search/search.module 29 Aug 2006 09:51:50 -0000 1.195 +++ modules/search/search.module 30 Aug 2006 03:34:44 -0000 @@ -107,8 +107,6 @@ function search_help($section) { ', 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://drupal.org/handbook/modules/search/')) .'

    '; return $output; - case 'admin/settings/modules#description': - return t('Enables site-wide keyword searching.'); case 'admin/settings/search': return t('

    The search engine works by maintaining an index of the words in your site\'s content. You can adjust the settings below to tweak the indexing behaviour. Note that the search requires cron to be set up correctly.

    Index: modules/statistics/statistics.meta =================================================================== RCS file: modules/statistics/statistics.meta diff -N modules/statistics/statistics.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/statistics/statistics.meta 30 Aug 2006 03:34:44 -0000 @@ -0,0 +1,3 @@ +name: Statistics +description: Logs access statistics for your site. + Index: modules/statistics/statistics.module =================================================================== RCS file: /cvs/drupal/drupal/modules/statistics/statistics.module,v retrieving revision 1.239 diff -u -F^f -r1.239 statistics.module --- modules/statistics/statistics.module 29 Aug 2006 18:43:25 -0000 1.239 +++ modules/statistics/statistics.module 30 Aug 2006 03:34:44 -0000 @@ -41,8 +41,6 @@ function statistics_help($section) { ', array('@admin-settings-statistics' => url('admin/logs/settings'), '@admin-logs' => url('admin/logs'), '@admin-logs-hits' => url('admin/logs/hits'), '@admin-block' => url('admin/build/block'))); $output .= '

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

    '; return $output; - case 'admin/settings/modules#description': - return t('Logs access statistics for your site.'); case 'admin/logs/settings': return t('

    Settings for the statistical information that Drupal will keep about the site. See site statistics for the actual information.

    ', array('@statistics' => url('admin/logs/hits'))); case 'admin/logs/hits': Index: modules/system/system.meta =================================================================== RCS file: modules/system/system.meta diff -N modules/system/system.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/system/system.meta 30 Aug 2006 03:34:44 -0000 @@ -0,0 +1,3 @@ +name: System +description: Handles general site configuration for administrators. + Index: modules/system/system.module =================================================================== RCS file: /cvs/drupal/drupal/modules/system/system.module,v retrieving revision 1.355 diff -u -F^f -r1.355 system.module --- modules/system/system.module 29 Aug 2006 20:19:41 -0000 1.355 +++ modules/system/system.module 30 Aug 2006 03:34:46 -0000 @@ -30,8 +30,6 @@ function system_help($section) { ', array('@file-cron' => 'cron.php', '@external-http-drupal-org-cron' => 'http://drupal.org/cron', '@cron-status' => url('admin/settings/cron-status'), '@cron-manually' => url('admin/settings/cron-status/cron'), '@admin-settings' => url('admin/settings/page-caching'))); $output .= '

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

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

    Welcome to the administration section. Here you may control how your site functions.

    '); case 'admin/build/themes': @@ -1206,12 +1204,10 @@ function system_modules() { $files = module_rebuild_cache(); foreach ($files as $filename => $file) { - drupal_get_filename('module', $file->name, $file->filename); - drupal_load('module', $file->name); + $metadata = $file->metadata; + $file->description = $metadata['description']; - $file->description = module_invoke($file->name, 'help', 'admin/settings/modules#description'); - - $form['name'][$file->name] = array('#value' => $file->name); + $form['name'][$file->name] = array('#value' => $metadata['name']); $form['description'][$file->name] = array('#value' => $file->description); $options[$file->name] = ''; if ($file->status) { Index: modules/taxonomy/taxonomy.meta =================================================================== RCS file: modules/taxonomy/taxonomy.meta diff -N modules/taxonomy/taxonomy.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/taxonomy/taxonomy.meta 30 Aug 2006 03:34:46 -0000 @@ -0,0 +1,3 @@ +name: Taxonomy +description: Enables the categorization of content. + Index: modules/taxonomy/taxonomy.module =================================================================== RCS file: /cvs/drupal/drupal/modules/taxonomy/taxonomy.module,v retrieving revision 1.310 diff -u -F^f -r1.310 taxonomy.module --- modules/taxonomy/taxonomy.module 29 Aug 2006 18:43:26 -0000 1.310 +++ modules/taxonomy/taxonomy.module 30 Aug 2006 03:34:47 -0000 @@ -1331,8 +1331,6 @@ function taxonomy_help($section) { ', array('@admin-taxonomy-add-vocabulary' => url('admin/content/taxonomy/add/vocabulary'), '@admin-taxonomy' => url('admin/content/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://drupal.org/handbook/modules/taxonomy/')) .'

    '; return $output; - case 'admin/settings/modules#description': - return t('Enables the categorization of content.'); case 'admin/content/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 view and manage the terms of each vocabulary, click on the associated list terms link. To delete a vocabulary and all its terms, choose "edit vocabulary".

    '); case 'admin/content/taxonomy/add/vocabulary': Index: modules/throttle/throttle.meta =================================================================== RCS file: modules/throttle/throttle.meta diff -N modules/throttle/throttle.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/throttle/throttle.meta 30 Aug 2006 03:34:47 -0000 @@ -0,0 +1,3 @@ +name: Throttle +description: Handles the auto-throttling mechanism, to control site congestion. + Index: modules/throttle/throttle.module =================================================================== RCS file: /cvs/drupal/drupal/modules/throttle/throttle.module,v retrieving revision 1.65 diff -u -F^f -r1.65 throttle.module --- modules/throttle/throttle.module 18 Aug 2006 18:58:46 -0000 1.65 +++ modules/throttle/throttle.module 30 Aug 2006 03:34:47 -0000 @@ -133,8 +133,6 @@ function throttle_help($section) { ', array('@admin-modules' => url('admin/settings/modules'), '@admin-block' => url('admin/build/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://drupal.org/handbook/modules/throttle/')) .'

    '; return $output; - case 'admin/settings/modules#description': - return t('Handles the auto-throttling mechanism, to control site congestion.'); case 'admin/settings/throttle': return t('If your site gets linked to by a popular website, or otherwise comes under a "Denial of Service" (DoS) attack, your webserver might become overwhelmed. This module provides a congestion control throttling mechanism for automatically detecting a surge in incoming traffic. This mechanism is utilized by other Drupal modules to automatically optimize their performance by temporarily disabling CPU-intensive functionality.'); } Index: modules/tracker/tracker.meta =================================================================== RCS file: modules/tracker/tracker.meta diff -N modules/tracker/tracker.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/tracker/tracker.meta 30 Aug 2006 03:34:47 -0000 @@ -0,0 +1,3 @@ +name: Tracker +description: Enables tracking of recent posts for users. + Index: modules/tracker/tracker.module =================================================================== RCS file: /cvs/drupal/drupal/modules/tracker/tracker.module,v retrieving revision 1.135 diff -u -F^f -r1.135 tracker.module --- modules/tracker/tracker.module 20 Aug 2006 05:57:41 -0000 1.135 +++ modules/tracker/tracker.module 30 Aug 2006 03:34:47 -0000 @@ -23,8 +23,6 @@ function tracker_help($section) { ', array('@tracker' => url('tracker'), '@profile' => url('profile'))); $output .= '

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

    '; return $output; - case 'admin/settings/modules#description': - return t('Enables tracking of recent posts for users.'); } } Index: modules/upload/upload.meta =================================================================== RCS file: modules/upload/upload.meta diff -N modules/upload/upload.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/upload/upload.meta 30 Aug 2006 03:34:47 -0000 @@ -0,0 +1,3 @@ +name: Upload +description: Allows users to upload and attach files to content. + Index: modules/upload/upload.module =================================================================== RCS file: /cvs/drupal/drupal/modules/upload/upload.module,v retrieving revision 1.125 diff -u -F^f -r1.125 upload.module --- modules/upload/upload.module 29 Aug 2006 18:43:26 -0000 1.125 +++ modules/upload/upload.module 30 Aug 2006 03:34:48 -0000 @@ -24,8 +24,6 @@ function upload_help($section) { ', array('@admin-access' => url('admin/user/access'), '@admin-content-types' => url('admin/settings/types'), '@admin-upload' => url('admin/settings/upload'))); $output .= '

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

    '; return $output; - case 'admin/settings/modules#description': - return t('Allows users to upload and attach files to content.'); case 'admin/settings/upload': return t('

    Users with the upload files permission can upload attachments. Users with the view uploaded files permission can view uploaded attachments. You can choose which post types can take attachments on the content types settings page.

    ', array('@permissions' => url('admin/user/access'), '@types' => url('admin/settings/types'))); } Index: modules/user/user.meta =================================================================== RCS file: modules/user/user.meta diff -N modules/user/user.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/user/user.meta 30 Aug 2006 03:34:48 -0000 @@ -0,0 +1,3 @@ +name: User +description: Manages the user registration and login system. + Index: modules/user/user.module =================================================================== RCS file: /cvs/drupal/drupal/modules/user/user.module,v retrieving revision 1.664 diff -u -F^f -r1.664 user.module --- modules/user/user.module 29 Aug 2006 09:12:03 -0000 1.664 +++ modules/user/user.module 30 Aug 2006 03:34:50 -0000 @@ -2269,8 +2269,6 @@ function user_help($section) { ', array('@user' => url('user'), '@admin-user' => url('admin/user/user'), '@admin-themes' => url('admin/build/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://drupal.org/handbook/modules/user/')) .'

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

    Drupal allows users to register, login, log out, maintain user profiles, etc. Users of the site may not use their own names to post content until they have signed up for a user account.

    '); case 'admin/user/user/create': Index: modules/watchdog/watchdog.meta =================================================================== RCS file: modules/watchdog/watchdog.meta diff -N modules/watchdog/watchdog.meta --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/watchdog/watchdog.meta 30 Aug 2006 03:34:50 -0000 @@ -0,0 +1,3 @@ +name: Watchdog +description: Logs and records system events. + Index: modules/watchdog/watchdog.module =================================================================== RCS file: /cvs/drupal/drupal/modules/watchdog/watchdog.module,v retrieving revision 1.152 diff -u -F^f -r1.152 watchdog.module --- modules/watchdog/watchdog.module 29 Aug 2006 09:51:50 -0000 1.152 +++ modules/watchdog/watchdog.module 30 Aug 2006 03:34:50 -0000 @@ -28,8 +28,6 @@ function watchdog_help($section) { ', array('@admin-watchdog' => url('admin/logs/watchdog'), '@admin-watchdog-events' => url('admin/logs/watchdog/events'))); $output .= '

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

    '; return $output; - case 'admin/settings/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.

    '); }