Loads and optionally filters feed items.
$type: The type of filter for the items. Possible values are:
$data: Feed or category data used for filtering. The type and value of $data depends on $type:
The $data parameter is not used when $type is 'sum'.
An array of the feed items.
function aggregator_load_feed_items($type, $data = NULL, $limit = 20) {
$items = array();
switch ($type) {
case 'sum':
$query = db_select('aggregator_item', 'i');
$query
->join('aggregator_feed', 'f', 'i.fid = f.fid');
$query
->fields('i', array(
'iid',
));
break;
case 'source':
$query = db_select('aggregator_item', 'i');
$query
->fields('i', array(
'iid',
))
->condition('i.fid', $data
->id());
break;
case 'category':
$query = db_select('aggregator_category_item', 'c');
$query
->leftJoin('aggregator_item', 'i', 'c.iid = i.iid');
$query
->leftJoin('aggregator_feed', 'f', 'i.fid = f.fid');
$query
->fields('i', array(
'iid',
))
->condition('cid', $data->cid);
break;
}
$result = $query
->extend('Drupal\\Core\\Database\\Query\\PagerSelectExtender')
->limit($limit)
->orderBy('i.timestamp', 'DESC')
->orderBy('i.iid', 'DESC')
->execute();
$items = entity_load_multiple('aggregator_item', $result
->fetchCol());
return $items;
}