diff --git a/core/modules/tracker/lib/Drupal/tracker/Controller/TrackerController.php b/core/modules/tracker/lib/Drupal/tracker/Controller/TrackerController.php index 8ea86de..0a6887b 100644 --- a/core/modules/tracker/lib/Drupal/tracker/Controller/TrackerController.php +++ b/core/modules/tracker/lib/Drupal/tracker/Controller/TrackerController.php @@ -15,16 +15,40 @@ class TrackerController implements ControllerInterface { /** - * Injects TrackManager Service. + * The database connection object. + * + * @var \Drupal\Core\Database\Connection */ - public static function create(ContainerInterface $container) { - return new static(); - } + protected $database; + + /** + * The entity manager. + * + * @var \Drupal\Core\Entity\EntityManager + */ + protected $entityManager; /** * Constructs a TrackerController object. + * + * @param \Drupal\Core\Database\Connection; $database + * The database object. + * @param \Drupal\Core\Entity\EntityManager $entity_manager + * The entity manager. */ - public function __construct() { + public function __construct(Connection $database, EntityManager $entity_manager) { + $this->database = $database; + $this->entityManager = $entity_manager; + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container) { + return new static( + $container->get('database'), + $container->get('plugin.manager.entity') + ); } /** @@ -39,9 +63,9 @@ public function __construct() { */ public function trackerPage($account = NULL, $set_title = FALSE) { if ($account) { - $query = db_select('tracker_user', 't') - ->extend('Drupal\Core\Database\Query\PagerSelectExtender'); - $query->condition('t.uid', $account->uid); + $query = $this->database->select('tracker_node', 't') + ->extend('Drupal\Core\Database\Query\PagerSelectExtender') + ->condition('t.uid', $account->uid); if ($set_title) { // When viewed from user/%user/track, display the name of the user @@ -51,7 +75,7 @@ public function trackerPage($account = NULL, $set_title = FALSE) { } } else { - $query = db_select('tracker_node', 't', array('target' => 'slave')) + $query = $this->database->select('tracker_node', 't', array('target' => 'slave')) ->extend('Drupal\Core\Database\Query\PagerSelectExtender'); } @@ -70,9 +94,17 @@ public function trackerPage($account = NULL, $set_title = FALSE) { $rows = array(); if (!empty($tracker_data)) { $nids = array_keys($tracker_data); - $nodes = entity_load_multiple('node', $nids); + $nodes = $this->entityManager + ->getStorageController('node') + ->load($nids); // Now, get the data and put into the placeholder array. - $result = db_query('SELECT n.nid, l.comment_count FROM {node} n INNER JOIN {node_comment_statistics} l ON n.nid = l.nid INNER JOIN {users} u ON n.uid = u.uid WHERE n.nid IN (:nids)', array(':nids' => $nids), array('target' => 'slave'))->fetchAllKeyed(); + $result = $this->database->select('node', 'n', array('target' => 'slave')) + ->addField('n', 'nid') + ->addField('l', 'comment_count') + ->join('node_comment_statistics', 'l', 'n.nid = l.nid') + ->join('users', 'u', 'n.uid = u.uid') + ->condition('n.nid', $nids, 'IN') + ->fetchAllKeyed(); foreach ($result as $nid => $comment_count) { $nodes[$nid]->last_activity = $tracker_data[$nid]->changed; $nodes[$nid]->comment_count = $comment_count; @@ -155,6 +187,5 @@ public function trackerPage($account = NULL, $set_title = FALSE) { return $page; } - } ?>