Chris@17
|
1 <?php
|
Chris@17
|
2
|
Chris@17
|
3 /**
|
Chris@17
|
4 * @file
|
Chris@17
|
5 * Contains database additions to drupal-8.bare.standard.php.gz for testing the
|
Chris@17
|
6 * upgrade path of https://www.drupal.org/node/2455125.
|
Chris@17
|
7 */
|
Chris@17
|
8
|
Chris@17
|
9 use Drupal\Component\Uuid\Php;
|
Chris@17
|
10 use Drupal\Core\Database\Database;
|
Chris@17
|
11 use Drupal\Core\Serialization\Yaml;
|
Chris@17
|
12
|
Chris@17
|
13 $connection = Database::getConnection();
|
Chris@17
|
14
|
Chris@17
|
15 $view_file = __DIR__ . '/drupal-8.views-taxonomy-parent-2543726.yml';
|
Chris@17
|
16 $view_config = Yaml::decode(file_get_contents($view_file));
|
Chris@17
|
17
|
Chris@17
|
18 $connection->insert('config')
|
Chris@17
|
19 ->fields(['collection', 'name', 'data'])
|
Chris@17
|
20 ->values([
|
Chris@17
|
21 'collection' => '',
|
Chris@17
|
22 'name' => "views.view.test_taxonomy_parent",
|
Chris@17
|
23 'data' => serialize($view_config),
|
Chris@17
|
24 ])
|
Chris@17
|
25 ->execute();
|
Chris@17
|
26
|
Chris@17
|
27 $uuid = new Php();
|
Chris@17
|
28
|
Chris@17
|
29 // The root tid.
|
Chris@17
|
30 $tids = [0];
|
Chris@17
|
31
|
Chris@17
|
32 for ($i = 0; $i < 4; $i++) {
|
Chris@17
|
33 $name = $this->randomString();
|
Chris@17
|
34
|
Chris@17
|
35 $tid = $connection->insert('taxonomy_term_data')
|
Chris@17
|
36 ->fields(['vid', 'uuid', 'langcode'])
|
Chris@17
|
37 ->values(['vid' => 'tags', 'uuid' => $uuid->generate(), 'langcode' => 'en'])
|
Chris@17
|
38 ->execute();
|
Chris@17
|
39
|
Chris@17
|
40 $connection->insert('taxonomy_term_field_data')
|
Chris@17
|
41 ->fields(['tid', 'vid', 'langcode', 'name', 'weight', 'changed', 'default_langcode'])
|
Chris@17
|
42 ->values(['tid' => $tid, 'vid' => 'tags', 'langcode' => 'en', 'name' => $name, 'weight' => 0, 'changed' => REQUEST_TIME, 'default_langcode' => 1])
|
Chris@17
|
43 ->execute();
|
Chris@17
|
44
|
Chris@17
|
45 $tids[] = $tid;
|
Chris@17
|
46 }
|
Chris@17
|
47
|
Chris@17
|
48 $hierarchy = [
|
Chris@17
|
49 // Term with tid 1 has terms with tids 2 and 3 as parents.
|
Chris@17
|
50 1 => [2, 3],
|
Chris@17
|
51 2 => [3, 0],
|
Chris@17
|
52 3 => [0],
|
Chris@17
|
53 ];
|
Chris@17
|
54
|
Chris@17
|
55 $query = $connection->insert('taxonomy_term_hierarchy')->fields(['tid', 'parent']);
|
Chris@17
|
56
|
Chris@17
|
57 foreach ($hierarchy as $tid => $parents) {
|
Chris@17
|
58 foreach ($parents as $parent) {
|
Chris@17
|
59 $query->values(['tid' => $tids[$tid], 'parent' => $tids[$parent]]);
|
Chris@17
|
60 }
|
Chris@17
|
61 }
|
Chris@17
|
62
|
Chris@17
|
63 // Insert an extra record with no corresponding term.
|
Chris@17
|
64 // See https://www.drupal.org/project/drupal/issues/2997982
|
Chris@17
|
65 $query->values(['tid' => max($tids) + 1, 'parent' => 0]);
|
Chris@17
|
66
|
Chris@17
|
67 $query->execute();
|