You are here

class RuleConditionSetUI in Conditional Rules 8

Same name and namespace in other branches
  1. 7 includes/rules_conditional.ui.inc \RuleConditionSetUI

UI for rule condition set.

This UI is adapted from RulesRuleUI by swapping conditions for actions.

Hierarchy

Expanded class hierarchy of RuleConditionSetUI

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

File

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

View source
class RuleConditionSetUI extends RulesConditionContainerUI {

  /** @var RulesActionContainer */
  protected $actions;

  /** @var RuleConditionSet */
  protected $set;
  public function __construct(FacesExtendable $object) {
    parent::__construct($object);
    $this->set = $object;

    /** @var RuleConditionSet $object  */
    $this->actions = $object
      ->actionContainer();
  }
  public function form(&$form, &$form_state, $options = array(), $iterator = NULL) {
    $form_state['rules_element'] = $this->set;
    $form += array(
      'actions' => array(
        '#weight' => -5,
        '#tree' => TRUE,
      ),
    );
    $this->actions
      ->form($form['actions'], $form_state);

    // Add condition result form.
    $iterator = new RecursiveIteratorIterator($this->set
      ->conditions(), RecursiveIteratorIterator::SELF_FIRST);
    parent::form($form, $form_state, $options, $iterator);
    $form['elements']['#caption'] = t('Result conditions');
    $form['negate']['#weight'] = 1;

    // Hide nested elements during creation.
    $form['elements']['#access'] = empty($options['init']);
    $form['actions']['elements']['#access'] = empty($options['init']);
    $form['help']['#markup'] = t('A rule condition set evaluates the actions first. Variables provided by the actions then can be used to evaluate the result conditions (as an "AND", i.e. evaluating to TRUE if conditions are empty).');
    $form['help']['#weight'] = -5;
    $form_state['redirect'] = RulesPluginUI::path($this->element
      ->root()->name);
    if (!empty($options['button'])) {
      $form['submit']['#value'] = t('Save changes');
    }
  }

  /**
   * Applies the values of the form to the rule configuration.
   */
  function form_extract_values($form, &$form_state) {

    // Extract action container values.
    if (isset($form['actions'])) {
      $this->actions
        ->extender('RulesActionContainerUI')
        ->form_extract_values($form['actions'], $form_state);
    }

    // Extract condition container values.
    parent::form_extract_values($form, $form_state);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
RuleConditionSetUI::$actions protected property @var RulesActionContainer
RuleConditionSetUI::$set protected property @var RuleConditionSet
RuleConditionSetUI::form public function
RuleConditionSetUI::form_extract_values function Applies the values of the form to the rule configuration.
RuleConditionSetUI::__construct public function