You are here

function feed_import_import_feed_form_submit in Feed Import 7.2

Same name and namespace in other branches
  1. 7.3 feed_import.module \feed_import_import_feed_form_submit()
  2. 7 feed_import.module \feed_import_import_feed_form_submit()

Feed import form submit

File

./feed_import.module, line 777
User interface, cron functions for feed_import module

Code

function feed_import_import_feed_form_submit($form, &$form_state) {

  // Get all names and machine names.
  $feeds = FeedImport::loadFeeds();
  $names = array(
    'name' => array(),
    'machine_name' => array(),
  );
  if (!empty($feeds)) {
    foreach ($feeds as $feed) {
      $names['machine_name'][$feed['machine_name']] = TRUE;
      $names['name'][$feed['name']] = TRUE;
      $feed = NULL;
    }
  }

  // Silence unserialize warning.
  $feeds = @unserialize(base64_decode(trim($form_state['values']['code'])));

  // There is only one feed.
  if (isset($feeds['xpath']['#root'])) {
    $feeds['enabled'] = 0;

    // Mark feed name as imported if name already exists.
    if (isset($names['name'][$feeds['name']])) {
      $feeds['name'] .= ' (' . t('imported') . ')';
    }

    // Machine names must be unique.
    $index = '';
    while (isset($names['machine_name'][$feeds['machine_name'] . $index])) {
      $index = (int) $index + 1;
    }
    $feeds['machine_name'] .= $index;
    FeedImport::saveFeed($feeds);
    drupal_set_message(t('Feed @name was imported and disabled.', array(
      '@name' => $feeds['name'],
    )));
  }
  else {
    $imported = array();
    foreach ($feeds as &$feed) {
      $feed['enabled'] = 0;

      // Mark feed name as imported if name already exists.
      if (isset($names['name'][$feed['name']])) {
        $feed['name'] .= ' (' . t('imported') . ')';
      }

      // Machine name must be unique.
      $index = '';
      while (isset($names['machine_name'][$feed['machine_name'] . $index])) {
        $index = (int) $index + 1;
      }
      $feed['machine_name'] .= $index;

      // Add to all amchine names.
      $names['machine_name'][$feed['machine_name']] = TRUE;
      FeedImport::saveFeed($feed);
      $imported[] = $feed['name'];
      $feed = NULL;
    }
    $imported = implode(', ', $imported);
    drupal_set_message(t('Feeds @names were imported and disabled.', array(
      '@names' => $imported,
    )));
  }
  drupal_goto(FEED_IMPORT_PATH);
}