public function Checkbox::statesHandler in Conditional Fields 4.x
Same name and namespace in other branches
- 8 src/Plugin/conditional_fields/handler/Checkbox.php \Drupal\conditional_fields\Plugin\conditional_fields\handler\Checkbox::statesHandler()
@todo Different handlers for boolean and list fields.
Overrides ConditionalFieldsHandlersPluginInterface::statesHandler
File
- src/
Plugin/ conditional_fields/ handler/ Checkbox.php, line 22
Class
- Checkbox
- Provides states handler for single on/off checkbox.
Namespace
Drupal\conditional_fields\Plugin\conditional_fields\handlerCode
public function statesHandler($field, $field_info, $options) {
$state = [];
$checked = FALSE;
switch ($options['values_set']) {
case ConditionalFieldsInterface::CONDITIONAL_FIELDS_DEPENDENCY_VALUES_WIDGET:
$widget_value = $this
->getWidgetValue($options['value_form']);
$checked = $field['#return_value'] == $widget_value;
break;
case ConditionalFieldsInterface::CONDITIONAL_FIELDS_DEPENDENCY_VALUES_REGEX:
$checked = preg_match('/' . $options['value']['RegExp'] . '/', $field['#on_value']) ? TRUE : FALSE;
break;
case ConditionalFieldsInterface::CONDITIONAL_FIELDS_DEPENDENCY_VALUES_AND:
// ANDing values of a single checkbox doesn't make sense:
// just use the first value.
$checked = $options['values'][0] == $field['#on_value'] ? TRUE : FALSE;
break;
case ConditionalFieldsInterface::CONDITIONAL_FIELDS_DEPENDENCY_VALUES_XOR:
case ConditionalFieldsInterface::CONDITIONAL_FIELDS_DEPENDENCY_VALUES_OR:
case ConditionalFieldsInterface::CONDITIONAL_FIELDS_DEPENDENCY_VALUES_NOT:
$checked = in_array($field['#on_value'], $options['values']) ? TRUE : FALSE;
break;
}
$state[$options['state']][$options['selector']] = [
'checked' => $checked,
];
return $state;
}