public static function WebformExcludedBase::processWebformExcluded in Webform 6.x
Same name and namespace in other branches
- 8.5 src/Element/WebformExcludedBase.php \Drupal\webform\Element\WebformExcludedBase::processWebformExcluded()
Processes a webform elements webform element.
File
- src/
Element/ WebformExcludedBase.php, line 37
Class
- WebformExcludedBase
- Provides a base webform element for webform excluded elements and columns.
Namespace
Drupal\webform\ElementCode
public static function processWebformExcluded(&$element, FormStateInterface $form_state, &$complete_form) {
$options = static::getWebformExcludedOptions($element);
$default_value = array_diff(array_keys($options), array_keys($element['#default_value'] ?: []));
$element['#tree'] = TRUE;
// Add validate callback.
$element += [
'#element_validate' => [],
];
array_unshift($element['#element_validate'], [
get_called_class(),
'validateWebformExcluded',
]);
$element['tableselect'] = [
'#type' => 'tableselect',
'#header' => static::getWebformExcludedHeader(),
'#options' => $options,
'#js_select' => TRUE,
'#empty' => t('No elements are available.'),
'#default_value' => array_combine($default_value, $default_value),
];
TableSelect::setProcessTableSelectCallback($element['tableselect']);
if (isset($element['#parents'])) {
$element['tableselect']['#parents'] = array_merge($element['#parents'], [
'tableselect',
]);
}
// Build tableselect element with selected properties.
$properties = [
'#title',
'#title_display',
'#description',
'#description_display',
'#ajax',
'#states',
];
$element['tableselect'] += array_intersect_key($element, array_combine($properties, $properties));
return $element;
}