You are here

function lightbox2_handler_field_lightbox2::options_form in Lightbox2 8

Same name in this branch
  1. 8 lightbox2_handler_field_lightbox2.inc \lightbox2_handler_field_lightbox2::options_form()
  2. 8 src/lightbox2_handler_field_lightbox2.php \Drupal\lightbox2\lightbox2_handler_field_lightbox2::options_form()
Same name and namespace in other branches
  1. 6 lightbox2_handler_field_lightbox2.inc \lightbox2_handler_field_lightbox2::options_form()
  2. 7.2 lightbox2_handler_field_lightbox2.inc \lightbox2_handler_field_lightbox2::options_form()
  3. 7 lightbox2_handler_field_lightbox2.inc \lightbox2_handler_field_lightbox2::options_form()

File

./lightbox2_handler_field_lightbox2.inc, line 28
Contain the integration with views A handler to provide a field that is completely custom by the administrator.

Class

lightbox2_handler_field_lightbox2
@file Contain the integration with views A handler to provide a field that is completely custom by the administrator.

Code

function options_form(&$form, &$form_state) {
  parent::options_form($form, $form_state);
  $fields = array(
    'trigger_field' => t('<None>'),
  );
  foreach ($this->view->display_handler
    ->get_handlers('field') as $field => $handler) {

    // We only use fields up to this one.  Obviously we can't use this handler
    // as the trigger handler.
    if ($field == $this->options['id']) {
      break;
    }
    $fields[$field] = $handler->definition['title'];
  }
  $form['trigger_field'] = array(
    '#type' => 'select',
    '#title' => t('Trigger field'),
    '#description' => t('Select the field that should be turned into the trigger for the lightbox.  Only fields that appear before this one in the field list may be used.'),
    '#options' => $fields,
    '#default_value' => $this->options['trigger_field'],
    '#weight' => -12,
  );
  $form['popup'] = array(
    '#type' => 'textarea',
    '#title' => t('Popup'),
    '#description' => t('Combine tokens from the "Replacement patterns" below and html to create what the lightbox popup will become.'),
    '#default_value' => $this->options['popup'],
    '#weight' => -11,
  );
  $form['caption'] = array(
    '#type' => 'textfield',
    '#title' => t('Caption'),
    '#description' => t('Combine tokens from the "Replacement patterns" below and html to create the caption shown under the lightbox. Leave empty for no caption.'),
    '#default_value' => $this->options['caption'],
    '#weight' => -10,
  );
  $form['rel_group'] = array(
    '#type' => 'checkbox',
    '#title' => t('Automatic generated Lightbox group'),
    '#description' => t('Enable Lightbox grouping using a generated group name for this view.'),
    '#default_value' => $this->options['rel_group'],
    '#weight' => -9,
  );
  $form['custom_group'] = array(
    '#type' => 'textfield',
    '#title' => t('Custom Lightbox group'),
    '#description' => t('Enable Lightbox grouping with a given string as group. Overrides the automatically generated group name above.'),
    '#default_value' => $this->options['custom_group'],
    '#weight' => -8,
  );
  $form['height'] = array(
    '#type' => 'textfield',
    '#title' => t('Height'),
    '#description' => t('Specify the height of the lightbox2 popup window.  Because the content is dynamic, we cannot detect this value automatically.'),
    '#default_value' => $this->options['height'],
    '#weight' => -7,
  );
  $form['width'] = array(
    '#type' => 'textfield',
    '#title' => t('Width'),
    '#description' => t('Specify the width of the lightbox2 popup window.  Because the content is dynamic, we cannot detect this value automatically.'),
    '#default_value' => $this->options['width'],
    '#weight' => -6,
  );

  // Remove the checkboxs and other irrelevant controls.
  unset($form['alter']['alter_text']);
  unset($form['alter']['make_link']);
  unset($form['alter']['text']);
  unset($form['alter']['path']);
  unset($form['alter']['alt']);
  unset($form['alter']['prefix']);
  unset($form['alter']['suffix']);
  unset($form['alter']['text']['#dependency']);
  unset($form['alter']['text']['#process']);
}