Skip to content
Snippets Groups Projects

Issue #3492110: Fix WSOD with media_library_widget

1 file
+ 18
12
Compare changes
  • Side-by-side
  • Inline
@@ -60,22 +60,28 @@ function extra_field_description_field_widget_third_party_settings_form(WidgetIn
* Implements hook_field_widget_single_element_form_alter().
*/
function extra_field_description_field_widget_single_element_form_alter(array &$element, FormStateInterface $form_state, array $context) {
$third_party_settings = $context['widget']->getThirdPartySettings('extra_field_description', 'extra_description');
if (!empty($third_party_settings)) {
if (isset($element['value'])) {
if ($element['value']['#type'] == 'datetime' || $element['value']['#type'] == 'datelist') {
$element['#field_prefix'] = '<div class="extra-description" >' . $third_party_settings['extra_description']['over_description'] . '</div>';
$widget = $context['widget'] ?? NULL;
if ($widget instanceof WidgetInterface) {
$third_party_settings = $widget->getThirdPartySettings('extra_field_description', 'extra_description');
if (!empty($third_party_settings)) {
if (isset($element['value'])) {
if ($element['value']['#type'] == 'datetime' || $element['value']['#type'] == 'datelist') {
$element['#field_prefix'] = '<div class="extra-description" >' . $third_party_settings['extra_description']['over_description'] . '</div>';
}
else {
$element['value']['#field_prefix'] = '<div class="extra-description" >' . $third_party_settings['extra_description']['over_description'] . '</div>';
}
}
elseif (isset($element['target_id'])) {
$element['target_id']['#field_prefix'] = '<div class="extra-description" >' . $third_party_settings['extra_description']['over_description'] . '</div>';
}
elseif ('media_library_widget' === $widget->getPluginId()) {
$element['#field_prefix']['extra_description']['#markup'] = '<div class="extra-description" >' . $third_party_settings['extra_description']['over_description'] . '</div>';
}
else {
$element['value']['#field_prefix'] = '<div class="extra-description" >' . $third_party_settings['extra_description']['over_description'] . '</div>';
$element['#field_prefix'] = '<div class="extra-description" >' . $third_party_settings['extra_description']['over_description'] . '</div>';
}
}
elseif (isset($element['target_id'])) {
$element['target_id']['#field_prefix'] = '<div class="extra-description" >' . $third_party_settings['extra_description']['over_description'] . '</div>';
}
else {
$element['#field_prefix'] = '<div class="extra-description" >' . $third_party_settings['extra_description']['over_description'] . '</div>';
}
}
}
Loading