diff --git c/core/modules/aggregator/aggregator.routing.yml w/core/modules/aggregator/aggregator.routing.yml index 51607d1..1e314c2 100644 --- c/core/modules/aggregator/aggregator.routing.yml +++ w/core/modules/aggregator/aggregator.routing.yml @@ -1,12 +1,12 @@ aggregator_admin_overview: - pattern: 'admin/config/services/aggregator' + pattern: '/admin/config/services/aggregator' defaults: _content: '\Drupal\aggregator\Controller\AggregatorController::adminOverview' requirements: _permission: 'administer news feeds' aggregator_admin_settings: - pattern: 'admin/config/services/aggregator/settings' + pattern: '/admin/config/services/aggregator/settings' defaults: _form: '\Drupal\aggregator\Form\SettingsForm' requirements: @@ -34,14 +34,14 @@ aggregator_feed_add: _permission: 'administer news feeds' aggregator_feed_configure: - pattern: 'aggregator/sources/{aggregator_feed}/configure' + pattern: '/aggregator/sources/{aggregator_feed}/configure' defaults: _entity_form: 'aggregator_feed.default' requirements: _permission: 'administer news feeds' aggregator_feed_edit: - pattern: 'admin/config/services/aggregator/edit/feed/{aggregator_feed}' + pattern: '/admin/config/services/aggregator/edit/feed/{aggregator_feed}' defaults: _entity_form: 'aggregator_feed.default' requirements: @@ -62,7 +62,7 @@ aggregator_opml_add: _permission: 'administer news feeds' aggregator_feed_view: - pattern: 'aggregator/sources/{aggregator_feed}' + pattern: '/aggregator/sources/{aggregator_feed}' defaults: _content: '\Drupal\aggregator\Controller\AggregatorController::viewFeed' requirements: @@ -97,28 +97,28 @@ aggregator_category_view: _permission: 'access news feeds' aggregator_category_edit: - pattern: 'aggregator/categories/{cid}/configure' + pattern: '/aggregator/categories/{cid}/configure' defaults: _form: '\Drupal\aggregator\Form\CategoryAdminForm' requirements: _permission: 'administer news feeds' aggregator_category_admin_edit: - pattern: 'admin/config/services/aggregator/edit/category/{cid}' + pattern: '/admin/config/services/aggregator/edit/category/{cid}' defaults: _form: '\Drupal\aggregator\Form\CategoryAdminForm' requirements: _permission: 'administer news feeds' aggregator_category_delete: - pattern: 'admin/config/services/aggregator/delete/category/{cid}' + pattern: '/admin/config/services/aggregator/delete/category/{cid}' defaults: _form: '\Drupal\aggregator\Form\CategoryDeleteForm' requirements: _permission: 'administer news feeds' aggregator_category_add: - pattern: 'admin/config/services/aggregator/add/category' + pattern: '/admin/config/services/aggregator/add/category' defaults: _form: '\Drupal\aggregator\Form\CategoryAdminForm' requirements: diff --git c/core/modules/aggregator/lib/Drupal/aggregator/Controller/AggregatorController.php w/core/modules/aggregator/lib/Drupal/aggregator/Controller/AggregatorController.php index 0415f83..960f21a 100644 --- c/core/modules/aggregator/lib/Drupal/aggregator/Controller/AggregatorController.php +++ w/core/modules/aggregator/lib/Drupal/aggregator/Controller/AggregatorController.php @@ -7,38 +7,20 @@ namespace Drupal\aggregator\Controller; +use Drupal\Core\Controller\ControllerBase; +use Drupal\Core\DependencyInjection\ContainerInjectionInterface; use Drupal\aggregator\CategoryStorageControllerInterface; use Drupal\aggregator\FeedInterface; use Drupal\aggregator\ItemInterface; -use Drupal\Core\Config\ConfigFactory; use Drupal\Core\Database\Connection; -use Drupal\Core\DependencyInjection\ContainerInjectionInterface; -use Drupal\Core\Entity\EntityManager; -use Drupal\Core\Routing\PathBasedGeneratorInterface; -use Drupal\Core\Routing\UrlGeneratorInterface; use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; /** * Returns responses for aggregator module routes. */ -class AggregatorController implements ContainerInjectionInterface { - - /** - * Stores the Entity manager. - * - * @var \Drupal\Core\Entity\EntityManager - */ - protected $entityManager; - - /** - * The configuration factory. - * - * @var \Drupal\Core\Config\ConfigFactory - */ - protected $configFactory; +class AggregatorController extends ControllerBase implements ContainerInjectionInterface { /** * The database connection. @@ -48,45 +30,22 @@ class AggregatorController implements ContainerInjectionInterface { protected $database; /** - * The url generator. - * - * @var \Drupal\Core\Routing\UrlGeneratorInterface - */ - protected $urlGenerator; - - /** - * The aggregator item storage controller. - * - * @var \Drupal\aggregator\ItemStorageControllerInterface - */ - protected $aggregatorItemStorage; - - /** * The category storage controller. * * @var \Drupal\aggregator\CategoryStorageControllerInterface */ protected $categoryStorage; + /** * Constructs a \Drupal\aggregator\Controller\AggregatorController object. * - * @param \Drupal\Core\Entity\EntityManager $entity_manager - * The Entity manager. - * @param \Drupal\Core\Config\ConfigFactory $config_factory - * The config factory. * @param \Drupal\Core\Database\Connection $database * The database connection. - * @param \Drupal\Core\Config\ConfigFactory $config_factory - * The config factory. - * @param \Drupal\Core\Routing\PathBasedGeneratorInterface $url_generator - * The url generator. + * @param \Drupal\aggregator\CategoryStorageControllerInterface $category_storage + * The category storage service. */ - public function __construct(EntityManager $entity_manager, Connection $database, ConfigFactory $config_factory, PathBasedGeneratorInterface $url_generator, CategoryStorageControllerInterface $category_storage) { - $this->entityManager = $entity_manager; + public function __construct(Connection $database, CategoryStorageControllerInterface $category_storage) { $this->database = $database; - $this->configFactory = $config_factory; - $this->urlGenerator = $url_generator; - $this->aggregatorItemStorage = $entity_manager->getStorageController('aggregator_item'); $this->categoryStorage = $category_storage; } @@ -95,10 +54,7 @@ public function __construct(EntityManager $entity_manager, Connection $database, */ public static function create(ContainerInterface $container) { return new static( - $container->get('entity.manager'), $container->get('database'), - $container->get('config.factory'), - $container->get('url_generator'), $container->get('aggregator.category.storage') ); } @@ -110,13 +66,13 @@ public static function create(ContainerInterface $container) { * A form array as expected by drupal_render(). */ public function feedAdd() { - $feed = $this->entityManager + $feed = $this->entityManager() ->getStorageController('aggregator_feed') ->create(array( 'refresh' => 3600, 'block' => 5, )); - return $this->entityManager->getForm($feed); + return $this->entityManager()->getForm($feed); } /** @@ -125,15 +81,15 @@ public function feedAdd() { * @param \Drupal\aggregator\FeedInterface $aggregator_feed * The feed for which to display all items. * - * @return string + * @return array * The rendered list of items for the feed. */ public function viewFeed(FeedInterface $aggregator_feed) { drupal_set_title($aggregator_feed->label()); - $feed_source = $this->entityManager->getRenderController('aggregator_feed') + $feed_source = $this->entityManager()->getRenderController('aggregator_feed') ->view($aggregator_feed, 'default'); // Load aggregator feed item for the particular feed id. - $items = $this->aggregatorItemStorage->loadByFeed($aggregator_feed->id()); + $items = $this->entityManager()->getStorageController('aggregator_item')->loadByFeed($aggregator_feed->id()); // Print the feed items. return $this->buildPageList($items, $feed_source); } @@ -150,7 +106,7 @@ public function viewFeed(FeedInterface $aggregator_feed) { public function viewCategory($cid) { $category = $this->categoryStorage->load($cid); drupal_set_title($category->title); - $items = $this->aggregatorItemStorage->loadByCategory($cid); + $items = $this->entityManager()->getStorageController('aggregator_item')->loadByCategory($cid); return $this->buildPageList($items); } @@ -174,7 +130,7 @@ protected function buildPageList(array $items, $feed_source = '') { ); $build['feed_source'] = is_array($feed_source) ? $feed_source : array('#markup' => $feed_source); if ($items) { - $build['items'] = $this->entityManager->getRenderController('aggregator_item') + $build['items'] = $this->entityManager()->getRenderController('aggregator_item') ->viewMultiple($items, 'default'); $build['pager'] = array('#theme' => 'pager'); } @@ -207,7 +163,7 @@ public function feedRefresh(FeedInterface $aggregator_feed, Request $request) { // @todo after https://drupal.org/node/1972246 find a new place for it. aggregator_refresh($aggregator_feed); - return new RedirectResponse($this->urlGenerator->generateFromPath('admin/config/services/aggregator', array('absolute' => TRUE))); + return $this->redirect($this->urlGenerator()->generateFromPath('admin/config/services/aggregator', array('absolute' => TRUE))); } /** @@ -258,7 +214,7 @@ public function adminOverview() { '#theme' => 'table', '#header' => $header, '#rows' => $rows, - '#empty' => t('No feeds available. Add feed.', array('@link' => $this->urlGenerator->generateFromPath('admin/config/services/aggregator/add/feed'))), + '#empty' => t('No feeds available. Add feed.', array('@link' => $this->urlGenerator()->generateFromPath('admin/config/services/aggregator/add/feed'))), ); $result = $this->database->query('SELECT c.cid, c.title, COUNT(ci.iid) as items FROM {aggregator_category} c LEFT JOIN {aggregator_category_item} ci ON c.cid = ci.cid GROUP BY c.cid, c.title ORDER BY title'); @@ -291,7 +247,7 @@ public function adminOverview() { '#theme' => 'table', '#header' => $header, '#rows' => $rows, - '#empty' => t('No categories available. Add category.', array('@link' => $this->urlGenerator->generateFromPath('admin/config/services/aggregator/add/category'))), + '#empty' => t('No categories available. Add category.', array('@link' => $this->urlGenerator()->generateFromPath('admin/config/services/aggregator/add/category'))), ); return $build; @@ -311,16 +267,16 @@ public function categories() { '#attributes' => array('class' => array('aggregator-wrapper')), '#sorted' => TRUE, ); - $aggregator_summary_items = $this->configFactory->get('aggregator.settings')->get('source.list_max'); + $aggregator_summary_items = $this->config('aggregator.settings')->get('source.list_max'); foreach ($result as $category) { $summary_items = array(); if ($aggregator_summary_items) { - $items = $this->aggregatorItemStorage->loadByCategory($category->cid); + $items = $this->entityManager()->getStorageController('aggregator_item')->loadByCategory($category->cid); if ($items) { - $summary_items = $this->entityManager->getRenderController('aggregator_item')->viewMultiple($items, 'summary'); + $summary_items = $this->entityManager()->getRenderController('aggregator_item')->viewMultiple($items, 'summary'); } } - $category->url = $this->urlGenerator->generateFromPath('aggregator/categories/' . $category->cid); + $category->url = $this->urlGenerator()->generateFromPath('aggregator/categories/' . $category->cid); $build[$category->cid] = array( '#theme' => 'aggregator_summary_items', '#summary_items' => $summary_items, @@ -337,9 +293,9 @@ public function categories() { * The rendered list of items for the feed. */ public function pageLast() { - drupal_add_feed('aggregator/rss', $this->configFactory->get('system.site')->get('name') . ' ' . t('aggregator')); + drupal_add_feed('aggregator/rss', $this->config('system.site')->get('name') . ' ' . t('aggregator')); - $items = $this->aggregatorItemStorage->loadAll(); + $items = $this->entityManager()->getStorageController('aggregator_item')->loadAll(); return $this->buildPageList($items); } @@ -351,7 +307,7 @@ public function pageLast() { */ public function sources() { - $feeds = $this->entityManager->getStorageController('aggregator_feed')->loadMultiple(); + $feeds = $this->entityManager()->getStorageController('aggregator_feed')->loadMultiple(); $build = array( '#type' => 'container', @@ -362,18 +318,17 @@ public function sources() { foreach ($feeds as $feed) { // Most recent items: $summary_items = array(); - $aggregator_summary_items = $this->configFactory - ->get('aggregator.settings') + $aggregator_summary_items = $this->config('aggregator.settings') ->get('source.list_max'); if ($aggregator_summary_items) { - $items = $this->aggregatorItemStorage->loadByFeed($feed->id()); + $items = $this->entityManager()->getStorageController('aggregator_item')->loadByFeed($feed->id()); if ($items) { - $summary_items = $this->entityManager + $summary_items = $this->entityManager() ->getRenderController('aggregator_item') ->viewMultiple($items, 'summary'); } } - $feed->url = $this->urlGenerator->generateFromRoute('aggregator_feed_view', array('aggregator_feed' => $feed->id())); + $feed->url = $this->urlGenerator()->generateFromRoute('aggregator_feed_view', array('aggregator_feed' => $feed->id())); $build[$feed->id()] = array( '#theme' => 'aggregator_summary_items', '#summary_items' => $summary_items,