Index: modules/aggregator/aggregator.info =================================================================== RCS file: /cvs/drupal/drupal/modules/aggregator/aggregator.info,v retrieving revision 1.12 diff -u -p -r1.12 aggregator.info --- modules/aggregator/aggregator.info 8 Jun 2009 09:23:50 -0000 1.12 +++ modules/aggregator/aggregator.info 15 Nov 2009 18:14:12 -0000 @@ -12,3 +12,4 @@ files[] = aggregator.parser.inc files[] = aggregator.processor.inc files[] = aggregator.install files[] = aggregator.test +configure = admin/config/services/aggregator/settings Index: modules/block/block.info =================================================================== RCS file: /cvs/drupal/drupal/modules/block/block.info,v retrieving revision 1.14 diff -u -p -r1.14 block.info --- modules/block/block.info 28 Aug 2009 19:44:05 -0000 1.14 +++ modules/block/block.info 15 Nov 2009 18:14:12 -0000 @@ -1,5 +1,4 @@ ; $Id: block.info,v 1.14 2009/08/28 19:44:05 webchick Exp $ - name = Block description = Controls the visual building blocks a page is constructed with. Blocks are boxes of content rendered into an area, or region, of a web page. package = Core @@ -9,3 +8,4 @@ files[] = block.module files[] = block.admin.inc files[] = block.install files[] = block.test +configure = admin/structure/block Index: modules/book/book.info =================================================================== RCS file: /cvs/drupal/drupal/modules/book/book.info,v retrieving revision 1.12 diff -u -p -r1.12 book.info --- modules/book/book.info 8 Jun 2009 09:23:51 -0000 1.12 +++ modules/book/book.info 15 Nov 2009 18:14:12 -0000 @@ -1,5 +1,4 @@ ; $Id: book.info,v 1.12 2009/06/08 09:23:51 dries Exp $ - name = Book description = Allows users to create and organize related content in an outline. package = Core @@ -10,3 +9,4 @@ files[] = book.admin.inc files[] = book.pages.inc files[] = book.install files[] = book.test +configure = admin/content/book/settings Index: modules/comment/comment.info =================================================================== RCS file: /cvs/drupal/drupal/modules/comment/comment.info,v retrieving revision 1.11 diff -u -p -r1.11 comment.info --- modules/comment/comment.info 19 Aug 2009 20:19:36 -0000 1.11 +++ modules/comment/comment.info 15 Nov 2009 18:14:12 -0000 @@ -1,5 +1,4 @@ ; $Id: comment.info,v 1.11 2009/08/19 20:19:36 dries Exp $ - name = Comment description = Allows users to comment on and discuss published content. package = Core @@ -11,3 +10,4 @@ files[] = comment.pages.inc files[] = comment.install files[] = comment.test files[] = comment.tokens.inc +configure = admin/content/comment Index: modules/contact/contact.info =================================================================== RCS file: /cvs/drupal/drupal/modules/contact/contact.info,v retrieving revision 1.9 diff -u -p -r1.9 contact.info --- modules/contact/contact.info 8 Jun 2009 09:23:51 -0000 1.9 +++ modules/contact/contact.info 15 Nov 2009 18:14:12 -0000 @@ -9,3 +9,4 @@ files[] = contact.admin.inc files[] = contact.pages.inc files[] = contact.install files[] = contact.test +configure = admin/structure/contact Index: modules/dashboard/dashboard.info =================================================================== RCS file: /cvs/drupal/drupal/modules/dashboard/dashboard.info,v retrieving revision 1.1 diff -u -p -r1.1 dashboard.info --- modules/dashboard/dashboard.info 13 Oct 2009 13:54:54 -0000 1.1 +++ modules/dashboard/dashboard.info 15 Nov 2009 18:14:12 -0000 @@ -6,3 +6,4 @@ package = Core version = VERSION files[] = dashboard.module dependencies[] = block +configure = admin/dashboard/customize Index: modules/filter/filter.info =================================================================== RCS file: /cvs/drupal/drupal/modules/filter/filter.info,v retrieving revision 1.12 diff -u -p -r1.12 filter.info --- modules/filter/filter.info 8 Jun 2009 09:23:52 -0000 1.12 +++ modules/filter/filter.info 15 Nov 2009 18:14:12 -0000 @@ -1,4 +1,4 @@ -;h $Id: filter.info,v 1.12 2009/06/08 09:23:52 dries Exp $ +; $Id: filter.info,v 1.12 2009/06/08 09:23:52 dries Exp $ name = Filter description = Filters content in preparation for display. package = Core @@ -10,3 +10,4 @@ files[] = filter.pages.inc files[] = filter.install files[] = filter.test required = TRUE +configure = admin/config/content/formats Index: modules/forum/forum.info =================================================================== RCS file: /cvs/drupal/drupal/modules/forum/forum.info,v retrieving revision 1.12 diff -u -p -r1.12 forum.info --- modules/forum/forum.info 8 Jun 2009 09:23:52 -0000 1.12 +++ modules/forum/forum.info 15 Nov 2009 18:14:12 -0000 @@ -11,3 +11,4 @@ files[] = forum.admin.inc files[] = forum.pages.inc files[] = forum.install files[] = forum.test +configure = admin/structure/forum Index: modules/image/image.info =================================================================== RCS file: /cvs/drupal/drupal/modules/image/image.info,v retrieving revision 1.4 diff -u -p -r1.4 image.info --- modules/image/image.info 13 Nov 2009 03:30:37 -0000 1.4 +++ modules/image/image.info 15 Nov 2009 18:14:12 -0000 @@ -11,3 +11,4 @@ files[] = image.effects.inc files[] = image.field.inc files[] = image.install files[] = image.test +configure = admin/config/media/image-styles Index: modules/locale/locale.info =================================================================== RCS file: /cvs/drupal/drupal/modules/locale/locale.info,v retrieving revision 1.12 diff -u -p -r1.12 locale.info --- modules/locale/locale.info 16 Oct 2009 02:04:42 -0000 1.12 +++ modules/locale/locale.info 15 Nov 2009 18:14:12 -0000 @@ -8,3 +8,4 @@ files[] = locale.module files[] = locale.install files[] = locale.field.inc files[] = locale.test +configure = admin/config/regional/language Index: modules/menu/menu.info =================================================================== RCS file: /cvs/drupal/drupal/modules/menu/menu.info,v retrieving revision 1.9 diff -u -p -r1.9 menu.info --- modules/menu/menu.info 8 Jun 2009 09:23:52 -0000 1.9 +++ modules/menu/menu.info 15 Nov 2009 18:14:12 -0000 @@ -8,3 +8,4 @@ files[] = menu.module files[] = menu.admin.inc files[] = menu.install files[] = menu.test +configure = admin/structure/menu Index: modules/node/node.info =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.info,v retrieving revision 1.12 diff -u -p -r1.12 node.info --- modules/node/node.info 19 Aug 2009 20:19:36 -0000 1.12 +++ modules/node/node.info 15 Nov 2009 18:14:12 -0000 @@ -12,3 +12,4 @@ files[] = node.install files[] = node.test files[] = node.tokens.inc required = TRUE +configure = admin/structure/types Index: modules/path/path.info =================================================================== RCS file: /cvs/drupal/drupal/modules/path/path.info,v retrieving revision 1.8 diff -u -p -r1.8 path.info --- modules/path/path.info 8 Jun 2009 09:23:53 -0000 1.8 +++ modules/path/path.info 15 Nov 2009 18:14:12 -0000 @@ -7,3 +7,4 @@ core = 7.x files[] = path.module files[] = path.admin.inc files[] = path.test +configure = admin/config/search/path Index: modules/profile/profile.info =================================================================== RCS file: /cvs/drupal/drupal/modules/profile/profile.info,v retrieving revision 1.9 diff -u -p -r1.9 profile.info --- modules/profile/profile.info 8 Jun 2009 09:23:53 -0000 1.9 +++ modules/profile/profile.info 15 Nov 2009 18:14:12 -0000 @@ -9,3 +9,4 @@ files[] = profile.admin.inc files[] = profile.pages.inc files[] = profile.install files[] = profile.test +configure = admin/config/people/profile Index: modules/search/search.info =================================================================== RCS file: /cvs/drupal/drupal/modules/search/search.info,v retrieving revision 1.10 diff -u -p -r1.10 search.info --- modules/search/search.info 29 Aug 2009 10:46:41 -0000 1.10 +++ modules/search/search.info 15 Nov 2009 18:14:12 -0000 @@ -10,3 +10,4 @@ files[] = search.pages.inc files[] = search.install files[] = search.test files[] = search.extender.inc +configure = admin/config/search/settings Index: modules/shortcut/shortcut.info =================================================================== RCS file: /cvs/drupal/drupal/modules/shortcut/shortcut.info,v retrieving revision 1.1 diff -u -p -r1.1 shortcut.info --- modules/shortcut/shortcut.info 17 Oct 2009 00:51:52 -0000 1.1 +++ modules/shortcut/shortcut.info 15 Nov 2009 18:14:12 -0000 @@ -7,3 +7,4 @@ core = 7.x files[] = shortcut.module files[] = shortcut.admin.inc files[] = shortcut.install +configure = admin/config/system/shortcut Index: modules/simpletest/simpletest.info =================================================================== RCS file: /cvs/drupal/drupal/modules/simpletest/simpletest.info,v retrieving revision 1.14 diff -u -p -r1.14 simpletest.info --- modules/simpletest/simpletest.info 7 Nov 2009 14:10:33 -0000 1.14 +++ modules/simpletest/simpletest.info 15 Nov 2009 18:14:12 -0000 @@ -9,6 +9,7 @@ files[] = simpletest.pages.inc files[] = simpletest.install files[] = simpletest.test files[] = drupal_web_test_case.php +configure = admin/config/development/testing/settings ; Tests in tests directory. files[] = tests/actions.test Index: modules/statistics/statistics.info =================================================================== RCS file: /cvs/drupal/drupal/modules/statistics/statistics.info,v retrieving revision 1.10 diff -u -p -r1.10 statistics.info --- modules/statistics/statistics.info 19 Aug 2009 20:19:36 -0000 1.10 +++ modules/statistics/statistics.info 15 Nov 2009 18:14:12 -0000 @@ -10,3 +10,4 @@ files[] = statistics.pages.inc files[] = statistics.install files[] = statistics.test files[] = statistics.tokens.inc +configure = admin/config/system/statistics Index: modules/system/system.admin.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/system/system.admin.inc,v retrieving revision 1.221 diff -u -p -r1.221 system.admin.inc --- modules/system/system.admin.inc 11 Nov 2009 17:14:59 -0000 1.221 +++ modules/system/system.admin.inc 15 Nov 2009 18:20:46 -0000 @@ -720,10 +720,37 @@ function system_modules($form, $form_sta // Generate link for module's help page, if there is one. if ($help_arg && $module->status && in_array($filename, module_implements('help'))) { if (module_invoke($filename, 'help', "admin/help#$filename", $help_arg)) { - // Module has a help page. - $extra['help'] = theme('more_help_link', array('url' => url("admin/help/$filename"))); + $extra['links']['help'] = array( + '#type' => 'link', + '#title' => t('Help'), + '#href' => "admin/help/$filename", + '#options' => array('attributes' => array('class' => array('module-link', 'module-link-help'), 'title' => t('Help'))), + ); } } + // Generate link for module's permission, if the user has access to it. + if ($module->status && user_access('administer permissions') && in_array($filename, module_implements('permission'))) { + $extra['links']['permissions'] = array( + '#type' => 'link', + '#title' => t('Permissions'), + '#href' => 'admin/config/people/permissions', + '#options' => array('fragment' => 'module-' . $filename, 'attributes' => array('class' => array('module-link', 'module-link-permissions'), 'title' => t('Configure permissions'))), + ); + } + // Generate link for module's configuration page, if the module provides + // one. + if ($module->status && isset($module->info['configure'])) { + $configure_link = menu_get_item($module->info['configure']); + if ($configure_link['access']) { + $extra['links']['configure'] = array( + '#type' => 'link', + '#title' => t('Configure'), + '#href' => $configure_link['href'], + '#options' => array('attributes' => array('class' => array('module-link', 'module-link-configure'), 'title' => $configure_link['description'])), + ); + } + } + // Mark dependents disabled so the user cannot remove required modules. $dependents = array(); // If this module is required by other modules, list those, and then make it @@ -754,6 +781,7 @@ function system_modules($form, $form_sta t('Name'), t('Version'), t('Description'), + array('data' => t('Operations'), 'colspan' => 3), ), ); } @@ -784,7 +812,7 @@ function _system_modules_build_row($info 'required_by' => array(), 'disabled' => FALSE, 'enabled' => FALSE, - 'help' => '', + 'links' => array(), ); $form = array( '#tree' => TRUE, @@ -843,12 +871,11 @@ function _system_modules_build_row($info $form['description']['#markup'] .= theme('system_modules_incompatible', array('message' => $status_long)); } - // Show a "more help" link for modules that have them. - if ($extra['help']) { - $form['help'] = array( - '#markup' => $extra['help'], - ); + // Build operation links. + foreach (array('help', 'permissions', 'configure') as $key) { + $form['links'][$key] = (isset($extra['links'][$key]) ? $extra['links'][$key] : array()); } + return $form; } @@ -2307,14 +2334,8 @@ function theme_system_modules_fieldset($ } $row[] = $label . '>' . drupal_render($module['name']) . ''; $row[] = drupal_render($module['version']); - $description = ''; - // If we have help, it becomes the first part - // of the description - with CSS, it is float: right'd. - if (isset($module['help'])) { - $description = '
' . drupal_render($module['help']) . '
'; - } // Add the description, along with any modules it requires. - $description .= drupal_render($module['description']); + $description = drupal_render($module['description']); if ($module['#requires']) { $description .= '
' . t('Requires: !module-list', array('!module-list' => implode(', ', $module['#requires']))) . '
'; } @@ -2322,6 +2343,10 @@ function theme_system_modules_fieldset($ $description .= '
' . t('Required by: !module-list', array('!module-list' => implode(', ', $module['#required_by']))) . '
'; } $row[] = array('data' => $description, 'class' => array('description')); + // Display links (such as help or permissions) in their own columns. + foreach (array('help', 'permissions', 'configure') as $key) { + $row[] = array('data' => drupal_render($module['links'][$key]), 'class' => array($key)); + } $rows[] = $row; } Index: modules/system/system.css =================================================================== RCS file: /cvs/drupal/drupal/modules/system/system.css,v retrieving revision 1.64 diff -u -p -r1.64 system.css --- modules/system/system.css 8 Nov 2009 11:46:22 -0000 1.64 +++ modules/system/system.css 15 Nov 2009 18:22:16 -0000 @@ -159,10 +159,22 @@ tr.merge-up, tr.merge-up td, tr.merge-up .more-help-link { text-align: right; /* LTR */ } -.more-help-link a { +.more-help-link a, a.module-link { padding: 1px 0 1px 20px; /* LTR */ +} +a.module-link { + display: block; + white-space: nowrap; +} +.more-help-link a, a.module-link-help { background: url(../../misc/help.png) 0 50% no-repeat; /* LTR */ } +a.module-link-permissions { + background: url(../../misc/permissions.png) 0 50% no-repeat; /* LTR */ +} +a.module-link-configure { + background: url(../../misc/configure.png) 0 50% no-repeat; /* LTR */ +} .more-link { text-align: right; /* LTR */ } Index: modules/system/system.info =================================================================== RCS file: /cvs/drupal/drupal/modules/system/system.info,v retrieving revision 1.18 diff -u -p -r1.18 system.info --- modules/system/system.info 15 Oct 2009 21:19:31 -0000 1.18 +++ modules/system/system.info 15 Nov 2009 18:14:12 -0000 @@ -16,3 +16,4 @@ files[] = system.tokens.inc files[] = system.updater.inc files[] = mail.sending.inc required = TRUE +configure = admin/config/system Index: modules/taxonomy/taxonomy.info =================================================================== RCS file: /cvs/drupal/drupal/modules/taxonomy/taxonomy.info,v retrieving revision 1.10 diff -u -p -r1.10 taxonomy.info --- modules/taxonomy/taxonomy.info 19 Aug 2009 20:19:37 -0000 1.10 +++ modules/taxonomy/taxonomy.info 15 Nov 2009 18:14:12 -0000 @@ -10,3 +10,4 @@ files[] = taxonomy.pages.inc files[] = taxonomy.install files[] = taxonomy.test files[] = taxonomy.tokens.inc +configure = admin/structure/taxonomy Index: modules/trigger/trigger.info =================================================================== RCS file: /cvs/drupal/drupal/modules/trigger/trigger.info,v retrieving revision 1.6 diff -u -p -r1.6 trigger.info --- modules/trigger/trigger.info 8 Jun 2009 09:23:54 -0000 1.6 +++ modules/trigger/trigger.info 15 Nov 2009 18:14:12 -0000 @@ -8,3 +8,4 @@ files[] = trigger.module files[] = trigger.admin.inc files[] = trigger.install files[] = trigger.test +configure = admin/structure/trigger Index: modules/update/update.info =================================================================== RCS file: /cvs/drupal/drupal/modules/update/update.info,v retrieving revision 1.8 diff -u -p -r1.8 update.info --- modules/update/update.info 16 Oct 2009 21:02:23 -0000 1.8 +++ modules/update/update.info 15 Nov 2009 18:14:12 -0000 @@ -13,3 +13,4 @@ files[] = update.manager.inc files[] = update.report.inc files[] = update.settings.inc files[] = update.test +configure = admin/reports/updates/settings Index: modules/upload/upload.info =================================================================== RCS file: /cvs/drupal/drupal/modules/upload/upload.info,v retrieving revision 1.10 diff -u -p -r1.10 upload.info --- modules/upload/upload.info 19 Aug 2009 20:19:37 -0000 1.10 +++ modules/upload/upload.info 15 Nov 2009 18:14:13 -0000 @@ -9,3 +9,4 @@ files[] = upload.admin.inc files[] = upload.install files[] = upload.test files[] = upload.tokens.inc +configure = admin/config/media/uploads Index: modules/user/user.info =================================================================== RCS file: /cvs/drupal/drupal/modules/user/user.info,v retrieving revision 1.12 diff -u -p -r1.12 user.info --- modules/user/user.info 19 Aug 2009 20:19:37 -0000 1.12 +++ modules/user/user.info 15 Nov 2009 18:14:13 -0000 @@ -11,3 +11,4 @@ files[] = user.install files[] = user.test files[] = user.tokens.inc required = TRUE +configure = admin/config/people