You are here

function feed_import_edit_feed_form_submit in Feed Import 7

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

Edit feed form submit

File

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

Code

function feed_import_edit_feed_form_submit($form, &$form_state) {
  $values =& $form_state['values'];
  $feed = FeedImport::loadFeeds(FALSE, $values['id']);
  $entity = FeedImport::getEntityInfo($values['entity']);
  $items = array();
  for ($i = 0; $i <= $form_state['#current_item']; $i++) {
    if (isset($form_state['complete form']['xpath']['items']['container_' . $i]['#title'])) {
      $field = $form_state['complete form']['xpath']['items']['container_' . $i]['#title'];
    }
    else {
      continue;
    }
    if ($field && array_key_exists($field, $entity['columns'])) {
      $items[$field] = array(
        '#field' => $field,
        '#column' => $entity['columns'][$field],
        '#xpath' => explode(PHP_EOL, $values['xpath_' . $i]),
        '#default_value' => $values['default_' . $i],
        '#default_action' => $values['default_action_' . $i],
        '#filter' => isset($feed['xpath']['#items'][$field]['#filter']) ? $feed['xpath']['#items'][$field]['#filter'] : array(),
        '#pre_filter' => isset($feed['xpath']['#items'][$field]['#pre_filter']) ? $feed['xpath']['#items'][$field]['#pre_filter'] : array(),
      );
    }
  }
  $feed = array(
    'id' => (int) $values['id'],
    'name' => $values['name'],
    'url' => $values['url'],
    'time' => (int) $values['time'],
    'enabled' => (int) $values['enabled'],
    'entity_info' => array(
      '#entity' => $values['entity'],
      '#table_pk' => $entity['column'],
    ),
    'xpath' => array(
      '#root' => $values['root'],
      '#uniq' => $values['uniq'],
      '#process_function' => $values['process_function'],
      '#items' => $items,
    ),
  );

  // Save feed
  FeedImport::saveFeed($feed, TRUE);
  drupal_set_message(t('Feed @name saved!', array(
    '@name' => $feed['name'],
  )));
}