diff --git a/core/modules/help/help.admin.inc b/core/modules/help/help.admin.inc index a3bea9e..a549263 100644 --- a/core/modules/help/help.admin.inc +++ b/core/modules/help/help.admin.inc @@ -6,18 +6,6 @@ */ /** - * Page callback: Prints a page listing a glossary of Drupal terminology. - * - * @see help_menu() - */ -function help_main() { - // Add CSS. - drupal_add_css(drupal_get_path('module', 'help') . '/help.css'); - $output = '

' . t('Help topics') . '

' . t('Help is available on the following items:') . '

' . help_links_as_list(); - return $output; -} - -/** * Page callback: Prints a page listing general help for a module. * * @param $name @@ -52,38 +40,3 @@ function help_page($name) { } return $output; } - -/** - * Provides a formatted list of available help topics. - * - * @return - * A string containing the formatted list. - */ -function help_links_as_list() { - $empty_arg = drupal_help_arg(); - $module_info = system_rebuild_module_data(); - - $modules = array(); - foreach (module_implements('help') as $module) { - if (module_invoke($module, 'help', "admin/help#$module", $empty_arg)) { - $modules[$module] = $module_info[$module]->info['name']; - } - } - asort($modules); - - // Output pretty four-column list. - $count = count($modules); - $break = ceil($count / 4); - $output = '
'; - - return $output; -} diff --git a/core/modules/help/help.module b/core/modules/help/help.module index aac8636..be57134 100644 --- a/core/modules/help/help.module +++ b/core/modules/help/help.module @@ -12,10 +12,8 @@ function help_menu() { $items['admin/help'] = array( 'title' => 'Help', 'description' => 'Reference for usage, configuration, and modules.', - 'page callback' => 'help_main', - 'access arguments' => array('access administration pages'), + 'route_name' => 'help_main', 'weight' => 9, - 'file' => 'help.admin.inc', ); $modules = module_implements('help'); diff --git a/core/modules/help/help.routing.yml b/core/modules/help/help.routing.yml new file mode 100644 index 0000000..d4682ee --- /dev/null +++ b/core/modules/help/help.routing.yml @@ -0,0 +1,6 @@ +help_main: + pattern: 'admin/help' + defaults: + _content: '\Drupal\help\Controller\HelpController::helpMain' + requirements: + _permission: 'access administration pages' diff --git a/core/modules/help/lib/Drupal/help/Controller/HelpController.php b/core/modules/help/lib/Drupal/help/Controller/HelpController.php new file mode 100644 index 0000000..118f1bc --- /dev/null +++ b/core/modules/help/lib/Drupal/help/Controller/HelpController.php @@ -0,0 +1,90 @@ +moduleHandler = $module_handler; + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container) { + return new static($container->get('module_handler')); + } + + /** + * Prints a page listing a glossary of Drupal terminology. + * + * @return string + * An HTML string representing the contents of help page. + */ + public function helpMain() { + // Add CSS. + drupal_add_css(drupal_get_path('module', 'help') . '/help.css'); + $output = '

' . t('Help topics') . '

' . t('Help is available on the following items:') . '

' . $this->helpLinksAsList(); + return $output; + } + + /** + * Provides a formatted list of available help topics. + * + * @return string + * A string containing the formatted list. + */ + protected function helpLinksAsList() { + $empty_arg = drupal_help_arg(); + $module_info = system_rebuild_module_data(); + + $modules = array(); + foreach ($this->moduleHandler->getImplementations('help') as $module) { + if ($this->moduleHandler->invoke($module, 'help', array("admin/help#$module", $empty_arg))) { + $modules[$module] = $module_info[$module]->info['name']; + } + } + asort($modules); + + // Output pretty four-column list. + $count = count($modules); + $break = ceil($count / 4); + $output = '
'; + + return $output; + } + +}