You are here

class views_oai_pmh_plugin_row_dc in Views OAI-PMH 7.2

Same name and namespace in other branches
  1. 6.2 plugins/views_oai_pmh_plugin_row_dc.inc \views_oai_pmh_plugin_row_dc
  2. 6 plugins/views_oai_pmh_plugin_row_dc.inc \views_oai_pmh_plugin_row_dc
  3. 7 plugins/views_oai_pmh_plugin_row_dc.inc \views_oai_pmh_plugin_row_dc

Hierarchy

Expanded class hierarchy of views_oai_pmh_plugin_row_dc

File

plugins/views_oai_pmh_plugin_row_dc.inc, line 2

View source
class views_oai_pmh_plugin_row_dc extends views_plugin_row {
  function render($row) {
    return theme($this
      ->theme_functions(), array(
      'view' => $this->view,
      'options' => $this->options,
      'row' => $row,
    ));
  }
  function validate() {
    $errors = parent::validate();
    $dc_errors = array();
    $link = $this->display->handler
      ->option_link('Row options', 'row_options');
    $field_handlers = $this->display->handler
      ->get_handlers('field');
    foreach ($field_handlers as $id => $field) {
      $ui_label = $field
        ->ui_name();
      $label = $field
        ->label();
      if (empty($label) || substr($label, 0, 3) != 'dc:') {
        $dc_errors[] = t('The field "@title" does not have a Dublin Core label associated with it. Go to the !link page to fix it.', array(
          '@title' => $ui_label,
          '!link' => $link,
        ));
      }
    }
    return array_merge($errors, $dc_errors);
  }
  function options_form(&$form, &$form_state) {
    parent::options_form($form, $form_state);
    $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;
      }
    }
    $dc_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' => $dc_elements,
        '#default_value' => isset($labels[$id]) && in_array($labels[$id], $dc_elements) ? $labels[$id] : 'none',
      );
      $form['oai_labels'][$id]['drupal_label'] = array(
        '#markup' => $ui_labels[$id],
      );
    }
  }
  function options_submit(&$form, &$form_state) {

    // It is very important to call the parent function here:
    parent::options_submit($form, $form_state);
    $section = $form_state['section'];
    switch ($section) {
      case 'row_options':
        $field_handlers = $this->display->handler
          ->get_handlers('field');
        $dc_labels = $form_state['values'][$section]['oai_labels'];
        foreach ($field_handlers as $id => $field) {
          $options = $field->options;
          if ($dc_labels[$id] != 'none') {
            $options['custom_label'] = TRUE;
            $options['label'] = $dc_labels[$id];
            $options['hide_empty'] = 1;
          }
          else {
            unset($options['custom_label']);
            $options['label'] = '';
          }
          $form_state['view']
            ->set_item($form_state['display_id'], 'field', $id, $options);
        }
        break;
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
views_oai_pmh_plugin_row_dc::options_form function Provide a form for setting options. Overrides views_plugin_row::options_form
views_oai_pmh_plugin_row_dc::options_submit function Perform any necessary changes to the form values prior to storage. There is no need for this function to actually store the data. Overrides views_plugin_row::options_submit
views_oai_pmh_plugin_row_dc::render function Render a row object. This usually passes through to a theme template of some form, but not always. Overrides views_plugin_row::render
views_oai_pmh_plugin_row_dc::validate function Validate that the plugin is correct and can be saved. Overrides views_plugin::validate
views_object::$definition public property Handler's definition.
views_object::$options public property Except for displays, options for the object will be held here. 1
views_object::altered_option_definition function Collect this handler's option definition and alter them, ready for use.
views_object::construct public function Views handlers use a special construct function. 4
views_object::destroy public function Destructor. 2
views_object::export_option public function 1
views_object::export_options public function
views_object::export_option_always public function Always exports the option, regardless of the default value.
views_object::options Deprecated public function Set default options on this object. 1
views_object::set_default_options public function Set default options.
views_object::set_definition public function Let the handler know what its full definition is.
views_object::unpack_options public function Unpack options over our existing defaults, drilling down into arrays so that defaults don't get totally blown away.
views_object::unpack_translatable public function Unpack a single option definition.
views_object::unpack_translatables public function Unpacks each handler to store translatable texts.
views_object::_set_option_defaults public function
views_plugin::$display public property The current used views display.
views_plugin::$plugin_name public property The plugin name of this plugin, for example table or full.
views_plugin::$plugin_type public property The plugin type of this plugin, for example style or query.
views_plugin::$view public property The top object of a view. Overrides views_object::$view 1
views_plugin::additional_theme_functions public function Provide a list of additional theme functions for the theme info page.
views_plugin::plugin_title public function Return the human readable name of the display.
views_plugin::summary_title public function Returns the summary of the settings in the display. 8
views_plugin::theme_functions public function Provide a full list of possible theme templates used by this style.
views_plugin_row::init public function 2
views_plugin_row::options_validate public function Validate the options form. Overrides views_plugin::options_validate
views_plugin_row::option_definition public function Information about options for all kinds of purposes will be held here. Overrides views_object::option_definition 9
views_plugin_row::pre_render public function Allow the style to do stuff before each row is rendered. 5
views_plugin_row::query public function Add anything to the query that we might need to. Overrides views_plugin::query
views_plugin_row::uses_fields public function