You are here

function feed_import_class_settings_form in Feed Import 7.3

Class options edit form.

1 string reference to 'feed_import_class_settings_form'
feed_import_menu in ./feed_import.module
Implements hook_menu().

File

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

Code

function feed_import_class_settings_form($form, &$form_state, $feed, $setting, $title = FALSE) {

  // Get all settings.
  if (!($settings = feed_import_get_class_settings($setting))) {
    drupal_goto(FEED_IMPORT_PATH);
  }

  // Set title if any.
  if ($title) {
    $title .= ' - @name';
    drupal_set_title(t($title, array(
      '@name' => $feed->name,
    )), PASS_THROUGH);
  }

  // Get setting name.
  if (isset($form_state['values']['name'])) {
    $default = $form_state['values']['options'];
    $sn = $form_state['values']['name'];
    unset($form_state['values']['options'], $form_state['input']['options']);
  }
  else {
    if (!isset($feed->settings[$setting]['name'])) {
      $default = array();

      // Use a default setting.
      $first = reset($settings);
      $sn = key($settings);
      $feed->settings[$setting] = array(
        'name' => $sn,
        'class' => $first['class'],
        'options' => array(),
      );
    }
    else {
      $sn = $feed->settings[$setting]['name'];
      $default = $feed->settings[$setting]['options'];
    }
  }

  // Get setting.
  $set =& $settings[$sn];

  // Get setting options.
  $options = array();
  foreach ($settings as $key => &$r) {
    if (empty($r['hidden'])) {
      $options[$key] = $r['name'];
    }
  }
  $form['machine_name'] = array(
    '#type' => 'value',
    '#value' => $feed->machine_name,
  );
  $form['setting'] = array(
    '#type' => 'value',
    '#value' => $setting,
  );
  $form['class'] = array(
    '#type' => 'value',
    '#value' => $set['class'],
  );
  $form['#id'] = 'feed_import_class_settings';
  $form['name'] = array(
    '#type' => 'select',
    '#title' => t('Select option'),
    '#options' => $options,
    '#default_value' => $sn,
    '#description' => isset($set['description']) ? $set['description'] : '',
    '#ajax' => array(
      'event' => 'change',
      'callback' => '_feed_import_ajax_whole_form',
      'wrapper' => 'feed_import_class_settings',
      'method' => 'replace',
    ),
  );
  $form['options'] = array(
    '#type' => 'fieldset',
    '#title' => t('Settings'),
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
    '#tree' => TRUE,
  );

  // Get form fields.
  $fields = _feed_import_get_class_options_form($set, $settings, $default);

  // Add settings into fieldset.
  $form['options'] += $fields;

  // Add submit button.
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save'),
  );
  return $form;
}