function Block::mapConfigToHandler
Converts form input values to filter handler values.
2 calls to Block::mapConfigToHandler()
- Block::blockForm in modules/
ctools_views/ src/ Plugin/ Display/ Block.php - Adds the configuration form elements specific to this views block plugin.
- Block::preBlockBuild in modules/
ctools_views/ src/ Plugin/ Display/ Block.php - Allows to change the display settings right before executing the block.
File
-
modules/
ctools_views/ src/ Plugin/ Display/ Block.php, line 831
Class
- Block
- Provides a Block display plugin.
Namespace
Drupal\ctools_views\Plugin\DisplayCode
protected function mapConfigToHandler(HandlerBase $handler, $input_value) {
// Convert to the form expected by $handler methods.
if ($handler->isAGroup()) {
$identifier = $handler->options['group_info']['identifier'];
$is_multiple = $handler->multipleExposedInput();
$value_key = $is_multiple ? 'default_group_multiple' : 'default_group';
$v = $input_value['group_info'][$value_key] ?? NULL;
$value = [
$identifier => $v,
];
$handler->group_info = $value[$identifier];
$handler->options['group_info'][$value_key] = $handler->group_info;
}
else {
$identifier = $handler->options['expose']['identifier'];
$use_operator = !empty($handler->options['expose']['use_operator']);
// The value passed to the handler may need defaults that are not
// passed with the input values, so we have to attempt to merge the
// expected values on the plugin before overwriting them.
if (isset($input_value['value']) && is_array($input_value['value']) && is_array($handler->options['value'])) {
$value = [
$identifier => $input_value['value'] + $handler->options['value'],
];
}
elseif (isset($input_value['value']) && is_string($input_value['value']) && is_array($handler->options['value'])) {
$value = [
$identifier => [
'value' => $input_value['value'],
] + $handler->options['value'],
];
}
else {
$value = [
$identifier => $input_value['value'] ?? NULL,
];
}
if ($use_operator) {
$operator_id = $handler->options['expose']['operator_id'];
$value[$operator_id] = $input_value['operator'];
}
$handler->value = $value[$identifier];
$handler->options['value'] = $handler->value;
if ($use_operator) {
$handler->operator = $value[$operator_id];
$handler->options['operator'] = $handler->operator;
}
}
}