function _instagram_feeds_get_images_to_delete in Instagram Feeds 7
Helper function to get all images nids that must be deleted.
Return images nids that must be deleted when instagram feeds cron will be run.
Parameters
string $expiration_time: unix time. Number of seconds (1 month by default)
array $feeds_nids: an array of feeds_nids for wich needs to remove old images.
Return value
array() an array of term tids.
1 call to _instagram_feeds_get_images_to_delete()
- instagram_feeds_get_tasks in ./
instagram_feeds.module - Creates tasks for instagram_feeds_cron() and for batch operations.
File
- ./
instagram_feeds.module, line 1319
Code
function _instagram_feeds_get_images_to_delete($expiration_time = 2592000, $feeds_nids = array()) {
$result = array();
$limit_imgs_per_feed = variable_get('instagram_feeds_limit_imgs_per_feed', 0);
if (!is_array($feeds_nids)) {
$feeds_nids = array(
$feeds_nids,
);
}
if ($expiration_time) {
$result = db_select('node', 'n')
->fields('n', array(
'nid',
))
->condition('n.type', INSTAGRAM_FEEDS_IMAGE_NODE_TYPE)
->condition('created', time() - $expiration_time, '<=')
->range(0, 500)
->execute()
->fetchCol();
}
if ($limit_imgs_per_feed && count($feeds_nids)) {
$source = feeds_source(INSTAGRAM_FEEDS_FEED_ID);
$config = $source->importer
->getConfig();
if (isset($config['fetcher']['config']['number_of_images']) && $config['fetcher']['config']['number_of_images']) {
$select_limit = (int) $config['fetcher']['config']['number_of_images'] * 2;
}
else {
$select_limit = 50;
}
foreach ($feeds_nids as $feed_nid) {
$query = db_select('feeds_item', 'fi');
$query
->innerJoin('node', 'n', 'fi.entity_id = n.nid AND fi.entity_type = :type', array(
':type' => 'node',
));
$query
->innerJoin('field_data_field_instf_created', 'd', 'fi.entity_id = d.entity_id AND d.entity_type = :type AND d.bundle = :bundle', array(
':type' => 'node',
':bundle' => INSTAGRAM_FEEDS_IMAGE_NODE_TYPE,
));
$query
->addField('n', 'nid', 'nid');
$query
->condition('n.sticky', NODE_NOT_STICKY);
$query
->condition('fi.feed_nid', $feed_nid);
$query
->orderBy('d.field_instf_created_value', 'DESC');
$query
->range($limit_imgs_per_feed, $select_limit);
$result = array_merge($result, $query
->execute()
->fetchCol());
}
}
return array_unique($result);
}