protected static function CshsElement::formatOptions in Client-side Hierarchical Select 8
Same name and namespace in other branches
- 8.2 src/Element/CshsElement.php \Drupal\cshs\Element\CshsElement::formatOptions()
See also
1 call to CshsElement::formatOptions()
- CshsElement::preRender in src/
Element/ CshsElement.php
File
- src/
Element/ CshsElement.php, line 141
Class
- CshsElement
- Defines the CSHS element.
Namespace
Drupal\cshs\ElementCode
protected static function formatOptions(array $element) : array {
$options = [];
if (!empty($element['#options'])) {
$parent = isset($element['#parent']) ? (string) $element['#parent'] : NULL;
$is_value_valid = \array_key_exists('#value', $element);
$is_value_array = $is_value_valid && \is_array($element['#value']);
foreach ($element['#options'] as $value => $data) {
$value = (string) $value;
if ($is_value_valid) {
$selected = $is_value_array ? \in_array($value, $element['#value']) : $value === (string) $element['#value'];
}
else {
$selected = FALSE;
}
// The default `All` option coming from Views has `$data` as a string.
if (\is_string($data)) {
$data = [
'name' => $data,
'parent_tid' => 0,
];
}
$options[] = [
'value' => $value,
'label' => $data['name'],
'parent' => (string) $data['parent_tid'] === $parent ? 0 : $data['parent_tid'],
'selected' => $selected,
];
}
}
return $options;
}