function RulesDataUI::renderOptionsLabel
Renders the value with a label if an options list is available.
Used for data UI classes implementing the RulesDataDirectInputFormInterface.
In case an options list is available, the usual render() method won't be invoked, instead the selected entry is rendered via this method.
@todo for Drupal 8: Refactor to avoid implementations have to care about option lists when generating the form, but not when rendering values.
File
-
ui/
ui.data.inc, line 153
Class
- RulesDataUI
- Default UI related class for data types.
Code
public static function renderOptionsLabel($value, $name, $info, RulesPlugin $element) {
if (!empty($info['options list'])) {
$element->call('loadBasicInclude');
$options = entity_property_options_flatten(call_user_func($info['options list'], $element, $name));
if (!is_array($value) && isset($options[$value])) {
$value = $options[$value];
}
elseif (is_array($value)) {
foreach ($value as $key => $single_value) {
if (isset($options[$single_value])) {
$value[$key] = $options[$single_value];
}
}
$value = implode(', ', $value);
}
return array(
'content' => array(
'#markup' => check_plain($value),
),
'#attributes' => array(
'class' => array(
'rules-parameter-options-entry',
),
),
);
}
}