You are here

function views_rules_plugin_display_rules::build_variable_form in Views Rules 7

Builds the form element for a single variable.

2 calls to views_rules_plugin_display_rules::build_variable_form()
views_rules_plugin_display_rules::get_parameter_form in views/views_rules_plugin_display_rules.inc
Builds the form element for a single parameter.
views_rules_plugin_display_rules::get_variable_form in views/views_rules_plugin_display_rules.inc
Builds the form element for a single variable.

File

views/views_rules_plugin_display_rules.inc, line 245
Configures views for use within Rules.

Class

views_rules_plugin_display_rules
Rules display plugin.

Code

function build_variable_form($name, $label, $info, $options = array()) {
  $options += array(
    'optional' => FALSE,
    'type_options' => NULL,
    'rendered' => FALSE,
  );
  $info += array(
    'type' => NULL,
    'label' => $label,
    'name' => $name,
    'enabled' => 1,
    'rendered' => 0,
  );
  $form = array(
    '#type' => 'fieldset',
    '#title' => check_plain($label),
    '#tree' => TRUE,
  );
  if (!$options['optional']) {
    $form['enabled'] = array(
      '#type' => 'value',
      '#value' => 1,
    );
  }
  else {
    $enabled_css_id = drupal_html_id('views-rules-variable-enabled');
    $form['enabled'] = array(
      '#type' => 'checkbox',
      '#title' => t('Enabled'),
      '#default_value' => $info['enabled'],
      '#description' => t('Uncheck this box to make this variable unavailable for use in Rules.'),
      '#attributes' => array(
        'id' => $enabled_css_id,
      ),
    );
  }
  $states = !isset($enabled_css_id) ? NULL : array(
    'visible' => array(
      '#' . $enabled_css_id => array(
        'checked' => TRUE,
      ),
    ),
  );
  if ($options['rendered']) {
    $form['rendered'] = array(
      '#type' => 'checkbox',
      '#title' => t('Use rendered result'),
      '#default_value' => $info['rendered'],
      '#description' => t('Check to use rendered value (e.g. rewritten) instead of the raw value. Note that a rendered field may contain markup but is not affected by the field\'s "Style settings".'),
      '#states' => $states,
    );
  }
  $form['_pre_wrap'] = array(
    '#markup' => '<div class="clearfix">',
  );
  $form['type'] = array(
    '#type' => 'select',
    '#title' => t('Data type'),
    '#options' => is_array($options['type_options']) ? $options['type_options'] : views_rules_data_type_options(),
    '#empty_value' => '',
    '#default_value' => $info['type'],
    '#required' => empty($options['optional']),
    '#prefix' => '<div class="views-left-30">',
    '#suffix' => '</div>',
    '#states' => $states,
  );
  $form['label'] = array(
    '#type' => 'textfield',
    '#title' => t('Label'),
    '#default_value' => $info['label'],
    '#size' => 25,
    '#required' => empty($options['optional']),
    '#prefix' => '<div class="views-left-30">',
    '#suffix' => '</div>',
    '#states' => $states,
  );
  $form['name'] = array(
    '#type' => 'textfield',
    '#title' => t('Name'),
    '#default_value' => $info['name'],
    '#size' => 25,
    '#required' => empty($options['optional']),
    '#prefix' => '<div class="views-left-30">',
    '#suffix' => '</div>',
    '#states' => $states,
  );
  $form['_post_wrap'] = array(
    '#markup' => '</div>',
  );
  return $form;
}