You are here

function views_plugin_style_kml::options_form in KML 7

Same name and namespace in other branches
  1. 6.2 views/views_plugin_style_kml.inc \views_plugin_style_kml::options_form()

Provide a form for setting options.

_state

Parameters

array $form:

Overrides views_plugin_style::options_form

File

views/views_plugin_style_kml.inc, line 70
Extending the view_plugin_style class to provide a kml view style.

Class

views_plugin_style_kml
@file Extending the view_plugin_style class to provide a kml view style.

Code

function options_form(&$form, &$form_state) {
  parent::options_form($form, $form_state);
  $options = parent::option_definition();
  $handlers = $this->display->handler
    ->get_handlers('field');
  if (empty($handlers)) {
    $form['error_markup'] = array(
      '#value' => t('You need at least one field before you can
        configure your field settings'),
      '#prefix' => '<div class="error form-item description">',
      '#suffix' => '</div>',
    );
  }
  else {
    foreach ($handlers as $field => $handler) {
      if ($label = $handler
        ->label()) {
        $field_names[$field] = $label;
      }
      else {
        $field_names[$field] = $handler
          ->ui_name();
      }
    }
    $field_options = array(
      'name' => t('Name'),
      'description' => t('Description'),
      'longitude' => t('Longitude'),
      'latitude' => t('Latitude'),
    );
    $form['filename'] = array(
      '#type' => 'textfield',
      '#title' => t('Filename'),
      '#default_value' => $this->options['filename'],
      '#description' => t('The filename that will be suggested to the browser
        for downloading purposes. Leave empty to use the view title. ".kml"
        will be automatically appended.'),
    );
    $form['fields'] = array(
      '#type' => 'fieldset',
      '#title' => 'Field usage',
      '#description' => t('Select the fields that contain the latitude,
        longitude and title of each point.
        Remaining fields will be available in the
        "content" region of the point.'),
      '#weight' => -10,
    );
    foreach ($field_options as $k => $v) {
      $form['fields'][$k] = array(
        '#type' => 'select',
        '#title' => $v,
        '#options' => $field_names,
        '#default_value' => $this->options['fields'][$k],
        '#required' => $k == 'class' ? FALSE : TRUE,
      );
    }
  }
}