You are here

class RulesConditionalPredicateUI in Conditional Rules 7

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

UI for configuring the predicate in a conditional branch.

Hierarchy

Expanded class hierarchy of RulesConditionalPredicateUI

2 string references to 'RulesConditionalPredicateUI'
rules_conditional_rules_plugin_info in ./rules_conditional.rules.inc
Implements hook_rules_plugin_info().
rules_conditional_test_rules_plugin_info in tests/rules_conditional_test.module
Implements hook_rules_plugin_info().

File

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

View source
class RulesConditionalPredicateUI extends RulesContainerPluginUI {

  /**
   * @var RulesPlugin
   */
  protected $predicate;
  public function __construct(FacesExtendable $object) {
    parent::__construct($object);
    if (!$this->element instanceof RulesConditionalPredicateElement) {
      return;
    }
    $this->predicate = $this
      ->property('predicate');
  }

  /**
   * Delegates the form to the predicate.
   */
  public function form(&$form, &$form_state, $options = array(), $iterator = NULL) {
    $baseCount = count(explode('/', RulesPluginUI::$basePath));
    $op = arg($baseCount + 2);
    if ($op == 'add') {

      // Redirect to extended path.
      $pathAddPredicate = RulesPluginUI::path($this->element
        ->root()->name, 'add-predicate', $this->element
        ->parentElement(), $this->element
        ->plugin());
      drupal_goto($pathAddPredicate);
    }
    if (isset($this->predicate)) {

      // Build form for predicate.
      $form_state['rules_element'] = $this->predicate;
      $this->predicate
        ->form($form, $form_state, $options);
      $heading = '<h4 class="rules-form-heading">';
      $heading .= t('Condition');
      $heading .= '</h4>';
      $form['parameter']['#prefix'] = $heading;
    }
  }

  /**
   * Delegates the form validator to the predicate.
   */
  public function form_validate($form, &$form_state) {
    if (isset($this->predicate)) {

      // Validate form for predicate.
      $form_state['rules_element'] = $this->predicate;
      $this->predicate
        ->form_validate($form, $form_state);
    }
  }

  /**
   * Delegates the form submit handler to the predicate.
   */
  public function form_submit($form, &$form_state) {
    if (isset($this->predicate)) {

      // Handle form submission for predicate.
      $form_state['rules_element'] = $this->predicate;
      $this->predicate
        ->form_submit($form, $form_state);
    }
  }
  public function buildContent() {
    $content = NULL;
    if (isset($this->predicate)) {

      // Build default content.
      $content = parent::buildContent();

      // Build parameter description from predicate.
      $predicateContent = $this->predicate
        ->buildContent();
      if (isset($predicateContent['description']['parameter'])) {
        $content['description']['parameter'] = $predicateContent['description']['parameter'];
      }
    }
    return $content;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
RulesConditionalPredicateUI::$predicate protected property
RulesConditionalPredicateUI::buildContent public function Implements RulesPluginUIInterface. Overrides RulesContainerPluginUI::buildContent
RulesConditionalPredicateUI::form public function Delegates the form to the predicate. Overrides RulesContainerPluginUI::form 1
RulesConditionalPredicateUI::form_submit public function Delegates the form submit handler to the predicate. Overrides RulesPluginUI::form_submit
RulesConditionalPredicateUI::form_validate public function Delegates the form validator to the predicate. Overrides RulesPluginUI::form_validate
RulesConditionalPredicateUI::__construct public function Provide $this->element to make the code more meaningful. Overrides RulesPluginUI::__construct
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
RulesContainerPluginUI::operations public function Implements RulesPluginUIInterface. Overrides RulesPluginUI::operations 1
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::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::getParameterForm protected function Actually generates the parameter form for the given data type.
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