function claro_preprocess_details in Drupal 10
Same name and namespace in other branches
- 8 core/themes/claro/claro.theme \claro_preprocess_details()
- 9 core/themes/claro/claro.theme \claro_preprocess_details()
Implements hook_preprocess_HOOK() for details.
@todo Revisit when https://www.drupal.org/node/3056089 is in.
File
- core/
themes/ claro/ claro.theme, line 355 - Functions to support theming in the Claro theme.
Code
function claro_preprocess_details(&$variables) {
$element = $variables['element'];
if (!empty($element['#accordion_item'])) {
// Details should appear as an accordion item.
$variables['accordion_item'] = TRUE;
}
if (!empty($element['#accordion'])) {
// Details should appear as a standalone accordion.
$variables['accordion'] = TRUE;
}
if (!empty($element['#theme']) && $element['#theme'] === 'file_widget_multiple') {
// Mark the details required if needed. If the file widget allows uploading
// multiple files, the required state is checked by checking the state of
// the first child.
$variables['required'] = $element[0]['#required'] ?? !empty($element['#required']);
// If the error is the same as the one in the multiple field widget element,
// we have to avoid displaying it twice. Seven and Stark have this issue
// as well.
// @todo revisit when https://www.drupal.org/node/3084906 is fixed.
if (isset($element['#errors']) && isset($variables['errors']) && $element['#errors'] === $variables['errors']) {
unset($variables['errors']);
}
}
$variables['disabled'] = !empty($element['#disabled']);
}