You are here

class RulesConditionalCaseUI in Conditional Rules 7

Same name and namespace in other branches
  1. 8 includes/rules_conditional.ui.inc \RulesConditionalCaseUI

UI for supporting option lists in the case value.

Hierarchy

Expanded class hierarchy of RulesConditionalCaseUI

1 string reference to 'RulesConditionalCaseUI'
rules_conditional_rules_plugin_info in ./rules_conditional.rules.inc
Implements hook_rules_plugin_info().

File

includes/rules_conditional.ui.inc, line 138
Plugin UI implementation.

View source
class RulesConditionalCaseUI extends RulesConditionalPluginUI {
  public function form(&$form, &$form_state, $options = array(), $iterator = NULL) {

    // TODO Remove when http://drupal.org/node/1676998 is fixed.
    $baseCount = count(explode('/', RulesPluginUI::$basePath));
    $op = arg($baseCount + 2);
    if ($op == 'add') {

      // Redirect to extended path.
      $pathAddPredicate = RulesPluginUI::path($this->element
        ->root()->name, 'add-case', $this->element
        ->parentElement(), $this->element
        ->plugin());
      drupal_goto($pathAddPredicate);
    }
    $options['init'] = FALSE;
    parent::form($form, $form_state, $options, $iterator);
  }
  protected function getParameterForm($name, $info, $settings, &$mode) {
    $form = parent::getParameterForm($name, $info, $settings, $mode);
    if ($name == 'value' && $mode == 'input') {
      $labels = $this
        ->getValueOptionLabels();
      if (isset($labels)) {
        $form['settings']['value']['#type'] = 'select';
        $form['settings']['value']['#options'] = $labels;
        $form['settings']['value']['#empty_value'] = '';
      }
    }
    return $form;
  }
  public function buildContent() {
    $content = parent::buildContent();

    // Use option label for text.
    if (isset($this->element->settings['value'])) {
      $value = $this->element->settings['value'];
      $labels = $this
        ->getValueOptionLabels();
      $content['label']['#markup'] = t('@plugin: @case', array(
        '@plugin' => $this->element
          ->label(),
        '@case' => isset($labels[$value]) ? $labels[$value] : $value,
      ));
      unset($content['description']['parameter']['value']);
    }
    return $content;
  }
  public function getValueOptionLabels() {
    $parent = $this->element
      ->parentElement();
    if (isset($parent->settings['data:select'])) {
      $dataSelector = $parent->settings['data:select'];
      if ($wrapper = $this->element
        ->applyDataSelector($dataSelector)) {
        $dataInfo = $wrapper
          ->info();
        if (!empty($dataInfo['options list'])) {
          return $wrapper
            ->optionsList('view');
        }
      }
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
RulesConditionalCaseUI::buildContent public function Implements RulesPluginUIInterface. Overrides RulesContainerPluginUI::buildContent
RulesConditionalCaseUI::form public function Generates a table for editing the contained elements. Overrides RulesContainerPluginUI::form
RulesConditionalCaseUI::getParameterForm protected function Actually generates the parameter form for the given data type. Overrides RulesPluginUI::getParameterForm
RulesConditionalCaseUI::getValueOptionLabels public function
RulesConditionalPluginUI::operations public function Implements RulesPluginUIInterface. Overrides RulesContainerPluginUI::operations 1
RulesContainerPluginUI::addOperations public function Gets the Add-* operations for the given element.
RulesContainerPluginUI::form_extract_values public function Applies the values of the form to the given rule configuration. Overrides RulesPluginUI::form_extract_values 3
RulesPluginUI::$basePath public static property The base path determines where a Rules overview UI lives.
RulesPluginUI::$element protected property
RulesPluginUI::defaultRedirect public static function Determines the default redirect target for an edited/deleted element.
RulesPluginUI::formDefaults public static function
RulesPluginUI::form_submit public function Implements RulesPluginUIInterface. Overrides RulesPluginUIInterface::form_submit
RulesPluginUI::form_validate public function Implements RulesPluginUIInterface. Overrides RulesPluginUIInterface::form_validate 2
RulesPluginUI::getDataTypeClass public function Returns the name of class for the given data type.
RulesPluginUI::getFormStateValues public static function Returns the state values for $form, possibly only a part of the whole form.
RulesPluginUI::getOptions public static function
RulesPluginUI::getTags public static function
RulesPluginUI::getVariableForm public function Returns the form for configuring the info of a single variable.
RulesPluginUI::help public function Implements RulesPluginUIInterface. Overrides RulesPluginUIInterface::help
RulesPluginUI::overviewTable public static function Deprecated by the controllers overviewTable() method.
RulesPluginUI::path public static function Generates an operation path.
RulesPluginUI::settingsForm public function Adds the configuration settings form (label, tags, description, ...). 1
RulesPluginUI::settingsFormExtractValues public function 1
RulesPluginUI::settingsFormPermissionMatrix protected function Provides a matrix permission for the component based in the existing roles.
RulesPluginUI::settingsFormSubmit public function
RulesPluginUI::settingsFormValidate public function
RulesPluginUI::__construct public function Provide $this->element to make the code more meaningful. 1