From c7d74b3c70f5747d81aa588200465903ee550b34 Mon Sep 17 00:00:00 2001 From: Alex Pott <alex.a.pott@googlemail.com> Date: Tue, 30 Apr 2013 22:35:37 +0100 Subject: [PATCH] Issue #1938822 by sandhya.m, EllaTheHarpy: Convert update_status() to a new-style Controller. --- .../update/Controller/UpdateController.php | 65 +++++++++++++++++++ core/modules/update/update.module | 4 +- core/modules/update/update.report.inc | 16 ----- core/modules/update/update.routing.yml | 7 ++ 4 files changed, 73 insertions(+), 19 deletions(-) create mode 100644 core/modules/update/lib/Drupal/update/Controller/UpdateController.php diff --git a/core/modules/update/lib/Drupal/update/Controller/UpdateController.php b/core/modules/update/lib/Drupal/update/Controller/UpdateController.php new file mode 100644 index 000000000000..d46af8aa8724 --- /dev/null +++ b/core/modules/update/lib/Drupal/update/Controller/UpdateController.php @@ -0,0 +1,65 @@ +<?php + +/** + * @file + * Contains \Drupal\update\Controller\UpdateController + */ + +namespace Drupal\update\Controller; + +use Drupal\Core\ControllerInterface; +use Drupal\Core\Extension\ModuleHandlerInterface; +use Symfony\Component\DependencyInjection\ContainerInterface; + +/** + * Controller routines for update routes. + */ +class UpdateController implements ControllerInterface { + + /** + * Module handler service. + * + * @var \Drupal\Core\Extension\ModuleHandlerInterface + */ + protected $moduleHandler; + + /** + * Constructs update status data. + * + * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler + * Module Handler Service. + */ + public function __construct(ModuleHandlerInterface $module_handler) { + $this->moduleHandler = $module_handler; + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container) { + return new static( + $container->get('module_handler') + ); + } + + /** + * Returns a page about the update status of projects. + * + * @return array + * A build array with the update status of projects. + */ + public function updateStatus() { + $build = array( + '#theme' => 'update_report' + ); + if ($available = update_get_available(TRUE)) { + $this->moduleHandler->loadInclude('update', 'compare.inc'); + $build['#data'] = update_calculate_project_data($available); + } + else { + $build['#data'] = _update_no_data(); + } + return $build; + } + +} diff --git a/core/modules/update/update.module b/core/modules/update/update.module index 7dee311259fa..59b35753db28 100644 --- a/core/modules/update/update.module +++ b/core/modules/update/update.module @@ -158,10 +158,8 @@ function update_menu() { $items['admin/reports/updates'] = array( 'title' => 'Available updates', 'description' => 'Get a status report about available updates for your installed modules and themes.', - 'page callback' => 'update_status', - 'access arguments' => array('administer site configuration'), + 'route_name' => 'update_status', 'weight' => -50, - 'file' => 'update.report.inc', ); $items['admin/reports/updates/list'] = array( 'title' => 'List', diff --git a/core/modules/update/update.report.inc b/core/modules/update/update.report.inc index 607b523137cb..35677d889244 100644 --- a/core/modules/update/update.report.inc +++ b/core/modules/update/update.report.inc @@ -5,22 +5,6 @@ * Code required only when rendering the available updates report. */ -/** - * Page callback: Generates a page about the update status of projects. - * - * @see update_menu() - */ -function update_status() { - if ($available = update_get_available(TRUE)) { - module_load_include('inc', 'update', 'update.compare'); - $data = update_calculate_project_data($available); - return theme('update_report', array('data' => $data)); - } - else { - return theme('update_report', array('data' => _update_no_data())); - } -} - /** * Returns HTML for the project status report. * diff --git a/core/modules/update/update.routing.yml b/core/modules/update/update.routing.yml index f201302d814c..16ac4b4d805e 100644 --- a/core/modules/update/update.routing.yml +++ b/core/modules/update/update.routing.yml @@ -4,3 +4,10 @@ update_settings: _form: '\Drupal\update\UpdateSettingsForm' requirements: _permission: 'administer site configuration' + +update_status: + pattern: '/admin/reports/updates' + defaults: + _content: '\Drupal\update\Controller\UpdateController::updateStatus' + requirements: + _permission: 'administer site configuration' -- GitLab