This repository has been archived by the owner on Sep 30, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtide_site.install
63 lines (57 loc) · 2.11 KB
/
tide_site.install
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
/**
* @file
* Install file for tide_site.
*/
use Drupal\Component\Utility\NestedArray;
/**
* Implements hook_install().
*/
function tide_site_install() {
// Retroactively create fields on existing entities.
$info = \Drupal::service('entity_type.bundle.info')->getAllBundleInfo();
foreach ($info as $type => $bundles) {
foreach (array_keys($bundles) as $bundle) {
tide_site_entity_bundle_create($type, $bundle);
}
}
}
/**
* New field taxonomy image logo.
*/
function tide_site_update_10001() {
\Drupal::moduleHandler()->loadInclude('tide_core', 'inc', 'includes/helpers');
$config_location = [\Drupal::service('extension.list.module')->getPath('tide_site') . '/config/install'];
$configs = [
'field.storage.taxonomy_term.field_additional_comment' => 'field_storage_config',
'field.field.taxonomy_term.sites.field_additional_comment' => 'field_config',
];
// Check if field already exported to config/sync.
foreach ($configs as $config => $type) {
$config_read = _tide_read_config($config, $config_location, TRUE);
$storage = \Drupal::entityTypeManager()->getStorage($type);
$config_entity = $storage->createFromStorageRecord($config_read);
$config_entity->save();
}
$form_configs = [
'core.entity_form_display.taxonomy_term.sites.default',
'core.entity_view_display.taxonomy_term.sites.default',
];
foreach ($form_configs as $form_config) {
$rewrite = _tide_read_config($form_config, $config_location, FALSE);
$display_config_entity = \Drupal::configFactory()->getEditable($form_config);
$original_config = $display_config_entity->getRawData();
$rewritten_config = NestedArray::mergeDeep($original_config, $rewrite);
if ($rewritten_config['dependencies']) {
$dependencies = $rewritten_config['dependencies'];
foreach ($dependencies as $type => $items) {
$uniqueItems = array_unique($items);
sort($uniqueItems);
$dependencies[$type] = $uniqueItems;
}
$rewritten_config['dependencies'] = $dependencies;
}
$display_config_entity->setData($rewritten_config);
$display_config_entity->save();
}
}