You are here

function drush_feeds_list_feeds in Feeds 7.2

Lists all feeds.

Parameters

string $importer_id: (optional) The importer id.

File

./feeds.drush.inc, line 219
Drush commands for Feeds module.

Code

function drush_feeds_list_feeds($importer_id = NULL) {
  if (!($limit = drush_get_option('limit'))) {
    $limit = DRUSH_FEEDS_DEFAULT_LIMIT;
  }
  $header = array(
    'importer_id' => dt('Importer ID'),
    'feed_nid' => dt('Feed NID'),
    'feed_title' => dt('Feed title'),
    'imported' => dt('Last imported'),
    'source' => dt('Feed source'),
    'process_in_background' => dt('Process in background'),
  );
  $rows = array();
  $nids = array();
  foreach (_drush_feeds_get_all($importer_id, $limit) as $feed) {
    $feed_config = feeds_source($feed->id, $feed->feed_nid)->importer
      ->getConfig();
    $rows[] = array(
      'importer_id' => $feed->id,
      'feed_nid' => $feed->feed_nid,
      'feed_title' => '',
      'imported' => $feed->imported ? date('Y-m-d H:i:s', $feed->imported) : dt('Never'),
      'source' => is_scalar($feed->source) ? $feed->source : gettype($feed->source),
      'process_in_background' => !empty($feed_config['process_in_background']) ? dt('Yes') : dt('No'),
    );

    // Collect node ID's to find titles for.
    if ($feed->feed_nid) {
      $nids[] = $feed->feed_nid;
    }
  }

  // Find titles for feed nodes.
  if (count($nids)) {
    $nodes = db_select('node')
      ->fields('node', array(
      'nid',
      'title',
    ))
      ->condition('nid', $nids)
      ->execute()
      ->fetchAllKeyed();
    foreach ($rows as &$row) {
      $nid = $row['feed_nid'];
      if ($nid && isset($nodes[$nid])) {
        $row['feed_title'] = $nodes[$nid];
      }
    }
  }

  // Check if there were any results.
  if (count($rows) == 0) {
    if (empty($importer_id)) {
      drush_print(dt('There are no feed sources.'));
    }
    else {
      drush_print(dt("No feed sources exists for importer '@importer_id'.", array(
        '@importer_id' => $importer_id,
      )));
    }
    return FALSE;
  }

  // Create table.
  $table = array_merge(array(
    $header,
  ), $rows);
  drush_print_table($table, TRUE);
}