You are here

function views_oai_pmh_plugin_row_etdms::options_form in Views OAI-PMH 7

Same name and namespace in other branches
  1. 6.2 plugins/views_oai_pmh_plugin_row_etdms.inc \views_oai_pmh_plugin_row_etdms::options_form()
  2. 6 plugins/views_oai_pmh_plugin_row_etdms.inc \views_oai_pmh_plugin_row_etdms::options_form()
  3. 7.2 plugins/views_oai_pmh_plugin_row_etdms.inc \views_oai_pmh_plugin_row_etdms::options_form()

Provide a form for setting options.

Overrides views_plugin_row::options_form

File

plugins/views_oai_pmh_plugin_row_etdms.inc, line 30

Class

views_oai_pmh_plugin_row_etdms

Code

function options_form(&$form, &$form_state) {
  parent::options_form($form, $form_state);

  // $labels = $this->display->handler->get_field_labels();
  $field_handlers = $this->display->handler
    ->get_handlers('field');
  foreach ($field_handlers as $id => $handler) {
    $ui_labels[$id] = $handler
      ->ui_name();
    if ($label = $handler
      ->label()) {
      $labels[$id] = $label;
    }
  }
  $etdms_elements = array(
    'none' => t('None'),
    'dc:title' => 'dc:title',
    'dc:creator' => 'dc:creator',
    'dc:subject' => 'dc:subject',
    'dc:description' => 'dc:description',
    'dc:publisher' => 'dc:publisher',
    'dc:contributor' => 'dc:contributor',
    'dc:date' => 'dc:date',
    'dc:type' => 'dc:type',
    'dc:format' => 'dc:format',
    'dc:identifier' => 'dc:identifier',
    'dc:source' => 'dc:source',
    'dc:language' => 'dc:language',
    'dc:relation' => 'dc:relation',
    'dc:coverage' => 'dc:coverage',
    'dc:rights' => 'dc:rights',
  );
  $form['oai_labels'] = array(
    '#type' => 'fieldset',
    '#title' => t('Drupal field to Dublin Core mapping'),
    '#theme' => 'oai_field_mapper_form',
  );
  foreach ($ui_labels as $id => $label) {
    $form['oai_labels'][$id] = array(
      '#type' => 'select',
      '#options' => $etdms_elements,
      '#default_value' => isset($labels[$id]) && in_array($labels[$id], $etdms_elements) ? $labels[$id] : 'none',
    );
    $form['oai_labels'][$id]['drupal_label'] = array(
      '#markup' => $ui_labels[$id],
    );
  }
}