public static function WebformCompositeBase::valueCallback in Webform 6.x
Same name and namespace in other branches
- 8.5 src/Element/WebformCompositeBase.php \Drupal\webform\Element\WebformCompositeBase::valueCallback()
Determines how user input is mapped to an element's #value property.
Parameters
array $element: An associative array containing the properties of the element.
mixed $input: The incoming input to populate the form element. If this is FALSE, the element's default value should be returned.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Return value
mixed The value to assign to the element.
Overrides FormElement::valueCallback
File
- src/
Element/ WebformCompositeBase.php, line 42
Class
- WebformCompositeBase
- Provides an base composite webform element.
Namespace
Drupal\webform\ElementCode
public static function valueCallback(&$element, $input, FormStateInterface $form_state) {
/** @var \Drupal\webform\Plugin\WebformElementManagerInterface $element_manager */
$element_manager = \Drupal::service('plugin.manager.webform.element');
$composite_elements = static::getCompositeElements($element);
$composite_elements = WebformElementHelper::getFlattened($composite_elements);
// Get default value for inputs.
$default_value = [];
foreach ($composite_elements as $composite_key => $composite_element) {
$element_plugin = $element_manager
->getElementInstance($composite_element);
if ($element_plugin
->isInput($composite_element)) {
$default_value[$composite_key] = '';
}
}
if ($input === FALSE) {
if (empty($element['#default_value']) || !is_array($element['#default_value'])) {
$element['#default_value'] = [];
}
return $element['#default_value'] + $default_value;
}
return is_array($input) ? $input + $default_value : $default_value;
}