Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / web / modules / contrib / entity_browser / src / Element / EntityBrowserElement.php
index 2b1c572f250aa518f96b5243b3c2347e6e8bfc22..4dccdc5d9a8099da9bcf3d630e22b033f453f0e6 100644 (file)
@@ -164,38 +164,48 @@ class EntityBrowserElement extends FormElement {
       ['cardinality' => ['cardinality' => $element['#cardinality']]]
     );
 
-    $display = $entity_browser->getDisplay();
-    $display->setUuid(sha1(implode('-', array_merge([$complete_form['#build_id']], $element['#parents']))));
-    $element['entity_browser'] = [
-      '#eb_parents' => array_merge($element['#parents'], ['entity_browser']),
-    ];
-    $element['entity_browser'] = $display->displayEntityBrowser(
-      $element['entity_browser'],
-      $form_state,
-      $complete_form,
-      [
-        'validators' => $validators,
-        'selected_entities' => $entity_browser_preselected_entities,
-        'widget_context' => $element['#widget_context'],
-      ]
-    );
+    // Display error message if the entity browser was not found.
+    if (!$entity_browser) {
+      $element['entity_browser'] = [
+        '#type' => 'markup',
+        '#markup' => is_string($element['#entity_browser']) ? t('Entity browser @browser not found.', ['@browser' => $element['#entity_browser']]) : t('Entity browser not found.'),
+      ];
+    }
+    // Display entity_browser
+    else {
+      $display = $entity_browser->getDisplay();
+      $display->setUuid(sha1(implode('-', array_merge([$complete_form['#build_id']], $element['#parents']))));
+      $element['entity_browser'] = [
+        '#eb_parents' => array_merge($element['#parents'], ['entity_browser']),
+      ];
+      $element['entity_browser'] = $display->displayEntityBrowser(
+        $element['entity_browser'],
+        $form_state,
+        $complete_form,
+        [
+          'validators' => $validators,
+          'selected_entities' => $entity_browser_preselected_entities,
+          'widget_context' => $element['#widget_context'],
+        ]
+      );
 
-    $hidden_id = Html::getUniqueId($element['#id'] . '-target');
-    $element['entity_ids'] = [
-      '#type' => 'hidden',
-      '#id' => $hidden_id,
-      // We need to repeat ID here as it is otherwise skipped when rendering.
-      '#attributes' => ['id' => $hidden_id, 'class' => ['eb-target']],
-      '#default_value' => $default_value,
-    ];
+      $hidden_id = Html::getUniqueId($element['#id'] . '-target');
+      $element['entity_ids'] = [
+        '#type' => 'hidden',
+        '#id' => $hidden_id,
+        // We need to repeat ID here as it is otherwise skipped when rendering.
+        '#attributes' => ['id' => $hidden_id, 'class' => ['eb-target']],
+        '#default_value' => $default_value,
+      ];
 
-    $element['#attached']['drupalSettings']['entity_browser'] = [
-      $entity_browser->getDisplay()->getUuid() => [
-        'cardinality' => $element['#cardinality'],
-        'selection_mode' => $element['#selection_mode'],
-        'selector' => '#' . $hidden_id,
-      ],
-    ];
+      $element['#attached']['drupalSettings']['entity_browser'] = [
+        $entity_browser->getDisplay()->getUuid() => [
+          'cardinality' => $element['#cardinality'],
+          'selection_mode' => $element['#selection_mode'],
+          'selector' => '#' . $hidden_id,
+        ],
+      ];
+    }
 
     return $element;
   }