You are here

function feed_import_static_fields_form_submit in Feed Import 7.3

Static fields form submit

File

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

Code

function feed_import_static_fields_form_submit($form, &$form_state) {
  $v =& $form_state['values'];
  if (!($feed = feedImport::loadFeed($v['machine_name']))) {
    return;
  }
  switch ($form_state['triggering_element']['#name']) {
    case 'add':
      $field = $v['field_add_method'] ? $v['entity_field'] : $v['manual_field'];
      $field = trim($field);
      $column = NULL;
      if (strpos($field, ':') !== FALSE) {
        list($field, $column) = array_map('trim', explode(':', $field, 2));
      }
      if (!$field) {
        return;
      }
      if ($column) {
        $feed->settings['static_fields'][$field][$column] = '';
      }
      else {
        $feed->settings['static_fields'][$field] = '';
      }
      break;
    case 'save':
      $fields = array();
      foreach ($v['fields'] as $f => &$val) {
        $val = isset($form_state['input']["field|{$f}"]) ? $form_state['input']["field|{$f}"] : NULL;
        if (strpos($f, ':') === FALSE) {
          $fields[$f] = $val;
        }
        else {
          $f = explode(':', $f, 2);
          $fields[$f[0]][$f[1]] = $val;
        }
      }
      $feed->settings['static_fields'] = $fields;
      break;
    case 'remove':
      if (!($fields = array_filter($v['fields']))) {
        return;
      }
      $s =& $feed->settings['static_fields'];
      foreach ($fields as $f) {
        if (strpos($f, ':') === FALSE) {
          unset($s[$f]);
        }
        else {
          $f = explode(':', $f, 2);
          unset($s[$f[0]][$f[1]]);
        }
      }
      break;
    default:
      return;
  }

  // Save static fields in feed.
  if (FeedImport::saveFeed($feed)) {
    drupal_set_message(t('Feed saved'));
  }
  drupal_goto(FEED_IMPORT_PATH . '/edit/' . $feed->machine_name . '/fields/static');
}