class RulesConditionalCaseUI in Conditional Rules 8
Same name and namespace in other branches
- 7 includes/rules_conditional.ui.inc \RulesConditionalCaseUI
UI for supporting option lists in the case value.
Hierarchy
- class \RulesConditionalPluginUI extends \RulesContainerPluginUI
- class \RulesConditionalCaseUI
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
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
RulesConditionalCaseUI:: |
public | function | ||
RulesConditionalCaseUI:: |
public | function | ||
RulesConditionalCaseUI:: |
protected | function | ||
RulesConditionalCaseUI:: |
public | function | ||
RulesConditionalPluginUI:: |
public | function | 1 |