Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 4 |
CRAP | |
0.00% |
0 / 19 |
ItemStorage | |
0.00% |
0 / 1 |
|
0.00% |
0 / 4 |
30 | |
0.00% |
0 / 19 |
getItemCount | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 5 |
|||
loadAll | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
loadByFeed | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 4 |
|||
executeFeedItemQuery | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 7 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\aggregator\ItemStorage. | |
*/ | |
namespace Drupal\aggregator; | |
use Drupal\Core\Entity\Query\QueryInterface; | |
use Drupal\Core\Entity\Sql\SqlContentEntityStorage; | |
/** | |
* Controller class for aggregators items. | |
* | |
* This extends the Drupal\Core\Entity\Sql\SqlContentEntityStorage class, adding | |
* required special handling for feed item entities. | |
*/ | |
class ItemStorage extends SqlContentEntityStorage implements ItemStorageInterface { | |
/** | |
* {@inheritdoc} | |
*/ | |
public function getItemCount(FeedInterface $feed) { | |
$query = \Drupal::entityQuery('aggregator_item') | |
->condition('fid', $feed->id()) | |
->count(); | |
return $query->execute(); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function loadAll($limit = NULL) { | |
$query = \Drupal::entityQuery('aggregator_item'); | |
return $this->executeFeedItemQuery($query, $limit); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function loadByFeed($fid, $limit = NULL) { | |
$query = \Drupal::entityQuery('aggregator_item') | |
->condition('fid', $fid); | |
return $this->executeFeedItemQuery($query, $limit); | |
} | |
/** | |
* Helper method to execute an item query. | |
* | |
* @param \Drupal\Core\Entity\Query\QueryInterface $query | |
* The query to execute. | |
* @param int $limit | |
* (optional) The number of items to return. | |
* | |
* @return \Drupal\aggregator\ItemInterface[] | |
* An array of the feed items. | |
*/ | |
protected function executeFeedItemQuery(QueryInterface $query, $limit) { | |
$query->sort('timestamp', 'DESC') | |
->sort('iid', 'DESC'); | |
if (!empty($limit)) { | |
$query->pager($limit); | |
} | |
return $this->loadMultiple($query->execute()); | |
} | |
} |