Version 1
[yaffs-website] / web / modules / contrib / entity_browser / entity_browser.install
diff --git a/web/modules/contrib/entity_browser/entity_browser.install b/web/modules/contrib/entity_browser/entity_browser.install
new file mode 100644 (file)
index 0000000..dce49e2
--- /dev/null
@@ -0,0 +1,61 @@
+<?php
+
+/**
+ * @file
+ * Update hooks for the Entity browser module.
+ */
+
+/**
+ * Updates submit text for existing Entity browsers.
+ */
+function entity_browser_update_8001() {
+  /** @var \Drupal\Core\Config\ConfigFactoryInterface $config_factory */
+  $config_factory = \Drupal::service('config.factory');
+
+  foreach ($config_factory->listAll('entity_browser.browser') as $name) {
+    $entity_browser = $config_factory->getEditable($name);
+    if ($text = $entity_browser->get('submit_text')) {
+      $entity_browser->clear('submit_text');
+      foreach ($entity_browser->get('widgets') as $widget_uuid => $widget) {
+        $entity_browser->set("widgets.$widget_uuid.settings.submit_text", $text);
+        $entity_browser->save();
+      }
+    }
+  }
+}
+
+/**
+ * Migrates duplicated Views entity_browser_select fields.
+ */
+function entity_browser_update_8002() {
+  // Map entity data tables to base tables.
+  $table_map = [];
+  foreach (\Drupal::entityTypeManager()->getDefinitions() as $entity_type_name => $entity_type) {
+    $base_table = $entity_type->getBaseTable();
+    $data_table = $entity_type->getDataTable();
+    if ($base_table && $data_table) {
+      $table_map[$data_table] = $base_table;
+    }
+  }
+
+  $config_factory = \Drupal::configFactory();
+  foreach ($config_factory->listAll('views.view.') as $view_config_name) {
+    $save = FALSE;
+    $view = $config_factory->getEditable($view_config_name);
+    $displays = $view->get('display');
+    foreach ($displays as $display_name => &$display) {
+      if ($display['display_options'] && isset($display['display_options']['fields'])) {
+        foreach ($display['display_options']['fields'] as $field_name => &$field) {
+          if ($field['plugin_id'] === 'entity_browser_select' && isset($table_map[$field['table']])) {
+            $field['table'] = $table_map[$field['table']];
+            $save = TRUE;
+          }
+        }
+      }
+    }
+    if ($save) {
+      $view->set('display', $displays);
+      $view->save(TRUE);
+    }
+  }
+}