You are here

function _countries_import_bulk_import_source_form in Countries 8

1 call to _countries_import_bulk_import_source_form()
countries_import_bulk_import_form in modules/countries_import/countries_import.admin.inc

File

modules/countries_import/countries_import.admin.inc, line 18

Code

function _countries_import_bulk_import_source_form($form, &$form_state) {
  $languages = language_list('enabled');
  $list = array();
  foreach ($languages[1] as $language) {
    $list[$language->language] = t($language->name);
  }
  if (count($list) > 1 || 1) {
    $form['langcode'] = array(
      '#type' => 'select',
      '#title' => t('Language'),
      '#options' => $list,
      '#default_value' => key($list),
    );
  }
  else {
    $form['langcode'] = array(
      '#type' => 'value',
      '#value' => key($list),
    );
  }
  $plugins = array();
  foreach (countries_import_plugins() as $class => $plugin) {
    if (!class_exists($class)) {
      continue;
    }
    $plugins[$class] = $plugin['title'];
  }
  $form['source'] = array(
    '#type' => 'select',
    '#title' => t('Data source'),
    '#options' => $plugins,
    '#required' => TRUE,
    '#ajax' => array(
      'event' => 'change',
      'callback' => 'countries_import_bulk_import_form_ajax_callback',
      'wrapper' => 'countries-import-bulk-import-settings',
    ),
  );
  $form['plugin'] = array(
    '#tree' => TRUE,
    '#type' => 'container',
    '#prefix' => '<div id="countries-import-bulk-import-settings">',
    '#suffix' => '</div>',
  );
  if (!empty($form_state['values']['source'])) {
    $core_properties = countries_core_properties();
    $manger = new $form_state['values']['source']();
    $plugin_info = countries_import_plugins($form_state['values']['source']);
    $form['plugin']['info'] = array(
      '#type' => 'item',
      '#title' => $plugin_info['title'],
      '#markup' => $plugin_info['description'],
    );
    $form['plugin']['settings'] = $manger
      ->importSettingsForm(array(
      'languages' => $list,
    ), $form_state);
    $form['plugin']['properties'] = array(
      '#type' => 'checkboxes',
      '#title' => t('Properties to update'),
      '#default_value' => $manger
        ->suggestedImportProperties(),
      '#options' => array(),
    );
    $property_info = array();
    foreach ($manger
      ->propertiesProvided() as $property => $description) {
      if (isset($core_properties[$property])) {
        $form['plugin']['properties']['#options'][$property] = $core_properties[$property];
        $property_info[] = t('<strong>%label: </strong> %description', array(
          '%label' => $core_properties[$property],
          '%description' => $description,
        ));
      }
    }
    $form['plugin']['properties']['#description'] = t('<em>!source</em> defines it properties as: !list', array(
      '!list' => theme('item_list', array(
        'items' => $property_info,
      )),
      '!source' => $plugin_info['title'],
    ));
  }
  $form['skip_disabled'] = array(
    '#type' => 'checkbox',
    '#title' => t('Ignore disabled countries'),
    '#default_value' => TRUE,
    '#description' => t('This excludes any disabled countries from the second step'),
  );
  $form['actions']['#type'] = 'actions';
  $form['actions']['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Next >'),
  );
  return $form;
}