annotate core/modules/system/src/Controller/AdminController.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 4c8ae668cc8c
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\system\Controller;
Chris@0 4
Chris@0 5 use Drupal\Core\Controller\ControllerBase;
Chris@0 6
Chris@0 7 /**
Chris@0 8 * Controller for admin section.
Chris@0 9 */
Chris@0 10 class AdminController extends ControllerBase {
Chris@0 11
Chris@0 12 /**
Chris@0 13 * Prints a listing of admin tasks, organized by module.
Chris@0 14 *
Chris@0 15 * @return array
Chris@0 16 * A render array containing the listing.
Chris@0 17 */
Chris@0 18 public function index() {
Chris@0 19 $module_info = system_get_info('module');
Chris@0 20 foreach ($module_info as $module => $info) {
Chris@0 21 $module_info[$module] = new \stdClass();
Chris@0 22 $module_info[$module]->info = $info;
Chris@0 23 }
Chris@0 24
Chris@0 25 uasort($module_info, 'system_sort_modules_by_info_name');
Chris@0 26 $menu_items = [];
Chris@0 27
Chris@0 28 foreach ($module_info as $module => $info) {
Chris@0 29 // Only display a section if there are any available tasks.
Chris@0 30 if ($admin_tasks = system_get_module_admin_tasks($module, $info->info)) {
Chris@0 31 // Sort links by title.
Chris@0 32 uasort($admin_tasks, ['\Drupal\Component\Utility\SortArray', 'sortByTitleElement']);
Chris@0 33 // Move 'Configure permissions' links to the bottom of each section.
Chris@0 34 $permission_key = "user.admin_permissions.$module";
Chris@0 35 if (isset($admin_tasks[$permission_key])) {
Chris@0 36 $permission_task = $admin_tasks[$permission_key];
Chris@0 37 unset($admin_tasks[$permission_key]);
Chris@0 38 $admin_tasks[$permission_key] = $permission_task;
Chris@0 39 }
Chris@0 40
Chris@0 41 $menu_items[$info->info['name']] = [$info->info['description'], $admin_tasks];
Chris@0 42 }
Chris@0 43 }
Chris@0 44
Chris@0 45 $output = [
Chris@0 46 '#theme' => 'system_admin_index',
Chris@0 47 '#menu_items' => $menu_items,
Chris@0 48 ];
Chris@0 49
Chris@0 50 return $output;
Chris@0 51 }
Chris@0 52
Chris@0 53 }