You are here

function panels_views_plugin_row_fields::options_form in Panels 6.3

Same name and namespace in other branches
  1. 7.3 plugins/views/panels_views_plugin_row_fields.inc \panels_views_plugin_row_fields::options_form()

Provide a form for setting options.

File

plugins/views/panels_views_plugin_row_fields.inc, line 28
Contains the base row style plugin.

Class

panels_views_plugin_row_fields
The basic 'fields' row plugin

Code

function options_form(&$form, &$form_state) {
  parent::options_form($form, $form_state);
  ctools_include('plugins', 'panels');
  $layouts = panels_get_layouts();
  $options = array();
  foreach ($layouts as $name => $layout) {
    if (empty($layout['builder'])) {
      $options[$name] = $layout['title'];
    }
    if ($name == $this->options['layout']) {
      $current_layout = $layout;
    }
  }
  $form['layout'] = array(
    '#prefix' => '<div class="container-inline">',
    '#type' => 'select',
    '#options' => $options,
    '#title' => t('Panel layout'),
    '#default_value' => $this->options['layout'],
  );
  $form['change'] = array(
    '#type' => 'submit',
    '#value' => t('Change'),
    '#submit' => array(
      'panels_change_layout_button',
    ),
    '#suffix' => '</div>',
  );
  if (!empty($current_layout)) {
    $fields = $this->display->handler
      ->get_field_labels();
    $regions = panels_get_regions($current_layout, panels_new_display());
    foreach ($fields as $id => $title) {
      $form['regions'][$id] = array(
        '#type' => 'select',
        '#title' => $title,
        '#options' => $regions,
      );
      if (!empty($this->options['regions'][$id]) && !empty($regions[$this->options['regions'][$id]])) {
        $form['regions'][$id]['#default_value'] = $this->options['regions'][$id];
      }
    }
  }
}