Chris@17
|
1 <?php
|
Chris@17
|
2
|
Chris@17
|
3 /**
|
Chris@17
|
4 * @file
|
Chris@17
|
5 * Install, update and uninstall functions for the media_library module.
|
Chris@17
|
6 */
|
Chris@17
|
7
|
Chris@18
|
8 use Drupal\image\Entity\ImageStyle;
|
Chris@18
|
9 use Drupal\media\Entity\MediaType;
|
Chris@17
|
10 use Drupal\views\Entity\View;
|
Chris@17
|
11
|
Chris@17
|
12 /**
|
Chris@17
|
13 * Implements hook_install().
|
Chris@17
|
14 */
|
Chris@17
|
15 function media_library_install() {
|
Chris@17
|
16 // Change the path to the original media view.
|
Chris@17
|
17 /** @var \Drupal\views\Entity\View $view */
|
Chris@17
|
18 if ($view = View::load('media')) {
|
Chris@17
|
19 $display = &$view->getDisplay('media_page_list');
|
Chris@17
|
20 if (!empty($display)) {
|
Chris@17
|
21 $display['display_options']['path'] = 'admin/content/media-table';
|
Chris@17
|
22 unset($display['display_options']['menu']);
|
Chris@17
|
23 $view->trustData()->save();
|
Chris@17
|
24 }
|
Chris@17
|
25 }
|
Chris@18
|
26 if (!\Drupal::isConfigSyncing()) {
|
Chris@18
|
27 foreach (MediaType::loadMultiple() as $type) {
|
Chris@18
|
28 _media_library_configure_form_display($type);
|
Chris@18
|
29 _media_library_configure_view_display($type);
|
Chris@18
|
30 }
|
Chris@18
|
31 }
|
Chris@17
|
32 }
|
Chris@17
|
33
|
Chris@17
|
34 /**
|
Chris@17
|
35 * Implements hook_uninstall().
|
Chris@17
|
36 */
|
Chris@17
|
37 function media_library_uninstall() {
|
Chris@17
|
38 // Restore the path to the original media view.
|
Chris@17
|
39 /** @var \Drupal\views\Entity\View $view */
|
Chris@17
|
40 if ($view = View::load('media')) {
|
Chris@17
|
41 $display = &$view->getDisplay('media_page_list');
|
Chris@17
|
42 if (!empty($display)) {
|
Chris@17
|
43 $display['display_options']['path'] = 'admin/content/media';
|
Chris@17
|
44 $display['display_options']['menu'] = [
|
Chris@17
|
45 'type' => 'tab',
|
Chris@17
|
46 'title' => 'Media',
|
Chris@17
|
47 'description' => '',
|
Chris@17
|
48 'expanded' => FALSE,
|
Chris@17
|
49 'parent' => '',
|
Chris@17
|
50 'weight' => 0,
|
Chris@17
|
51 'context' => '0',
|
Chris@17
|
52 'menu_name' => 'main',
|
Chris@17
|
53 ];
|
Chris@17
|
54 $view->trustData()->save();
|
Chris@17
|
55 }
|
Chris@17
|
56 }
|
Chris@17
|
57 }
|
Chris@18
|
58
|
Chris@18
|
59 /**
|
Chris@18
|
60 * Create the 'media_library' image style.
|
Chris@18
|
61 */
|
Chris@18
|
62 function media_library_update_8701() {
|
Chris@18
|
63 $image_style = ImageStyle::create([
|
Chris@18
|
64 'name' => 'media_library',
|
Chris@18
|
65 'label' => 'Media Library (220x220)',
|
Chris@18
|
66 ]);
|
Chris@18
|
67 // Add a scale effect.
|
Chris@18
|
68 $image_style->addImageEffect([
|
Chris@18
|
69 'id' => 'image_scale',
|
Chris@18
|
70 'weight' => 0,
|
Chris@18
|
71 'data' => [
|
Chris@18
|
72 'width' => 220,
|
Chris@18
|
73 'height' => 220,
|
Chris@18
|
74 'upscale' => FALSE,
|
Chris@18
|
75 ],
|
Chris@18
|
76 ]);
|
Chris@18
|
77 $image_style->save();
|
Chris@18
|
78 }
|
Chris@18
|
79
|
Chris@18
|
80 /**
|
Chris@18
|
81 * Updates the media library view widget display (contextual) filters.
|
Chris@18
|
82 */
|
Chris@18
|
83 function media_library_update_8702() {
|
Chris@18
|
84 $view = \Drupal::configFactory()->getEditable('views.view.media_library');
|
Chris@18
|
85 if ($view && $view->get('display.widget')) {
|
Chris@18
|
86 $view->set('display.widget.display_options.defaults.filters', FALSE);
|
Chris@18
|
87 $view->set('display.widget.display_options.defaults.filter_groups', FALSE);
|
Chris@18
|
88 $view->set('display.widget.display_options.defaults.arguments', FALSE);
|
Chris@18
|
89 $view->set('display.widget.display_options.filters', [
|
Chris@18
|
90 'status' => [
|
Chris@18
|
91 'id' => 'status',
|
Chris@18
|
92 'table' => 'media_field_data',
|
Chris@18
|
93 'field' => 'status',
|
Chris@18
|
94 'relationship' => 'none',
|
Chris@18
|
95 'group_type' => 'group',
|
Chris@18
|
96 'admin_label' => '',
|
Chris@18
|
97 'operator' => '=',
|
Chris@18
|
98 'value' => '1',
|
Chris@18
|
99 'group' => 1,
|
Chris@18
|
100 'exposed' => FALSE,
|
Chris@18
|
101 'expose' => [
|
Chris@18
|
102 'operator_id' => '',
|
Chris@18
|
103 'label' => '',
|
Chris@18
|
104 'description' => '',
|
Chris@18
|
105 'use_operator' => FALSE,
|
Chris@18
|
106 'operator' => '',
|
Chris@18
|
107 'identifier' => '',
|
Chris@18
|
108 'required' => FALSE,
|
Chris@18
|
109 'remember' => FALSE,
|
Chris@18
|
110 'multiple' => FALSE,
|
Chris@18
|
111 'remember_roles' => [
|
Chris@18
|
112 'authenticated' => 'authenticated',
|
Chris@18
|
113 ],
|
Chris@18
|
114 ],
|
Chris@18
|
115 'is_grouped' => FALSE,
|
Chris@18
|
116 'group_info' => [
|
Chris@18
|
117 'label' => '',
|
Chris@18
|
118 'description' => '',
|
Chris@18
|
119 'identifier' => '',
|
Chris@18
|
120 'optional' => TRUE,
|
Chris@18
|
121 'widget' => 'select',
|
Chris@18
|
122 'multiple' => FALSE,
|
Chris@18
|
123 'remember' => FALSE,
|
Chris@18
|
124 'default_group' => 'All',
|
Chris@18
|
125 'default_group_multiple' => [],
|
Chris@18
|
126 'group_items' => [],
|
Chris@18
|
127 ],
|
Chris@18
|
128 'entity_type' => 'media',
|
Chris@18
|
129 'entity_field' => 'status',
|
Chris@18
|
130 'plugin_id' => 'boolean',
|
Chris@18
|
131 ],
|
Chris@18
|
132 'name' => [
|
Chris@18
|
133 'id' => 'name',
|
Chris@18
|
134 'table' => 'media_field_data',
|
Chris@18
|
135 'field' => 'name',
|
Chris@18
|
136 'relationship' => 'none',
|
Chris@18
|
137 'group_type' => 'group',
|
Chris@18
|
138 'admin_label' => '',
|
Chris@18
|
139 'operator' => 'contains',
|
Chris@18
|
140 'value' => '',
|
Chris@18
|
141 'group' => 1,
|
Chris@18
|
142 'exposed' => TRUE,
|
Chris@18
|
143 'expose' => [
|
Chris@18
|
144 'operator_id' => 'name_op',
|
Chris@18
|
145 'label' => 'Name',
|
Chris@18
|
146 'description' => '',
|
Chris@18
|
147 'use_operator' => FALSE,
|
Chris@18
|
148 'operator' => 'name_op',
|
Chris@18
|
149 'identifier' => 'name',
|
Chris@18
|
150 'required' => FALSE,
|
Chris@18
|
151 'remember' => FALSE,
|
Chris@18
|
152 'multiple' => FALSE,
|
Chris@18
|
153 'remember_roles' => [
|
Chris@18
|
154 'authenticated' => 'authenticated',
|
Chris@18
|
155 'anonymous' => '0',
|
Chris@18
|
156 'administrator' => '0',
|
Chris@18
|
157 ],
|
Chris@18
|
158 ],
|
Chris@18
|
159 'is_grouped' => FALSE,
|
Chris@18
|
160 'group_info' => [
|
Chris@18
|
161 'label' => '',
|
Chris@18
|
162 'description' => '',
|
Chris@18
|
163 'identifier' => '',
|
Chris@18
|
164 'optional' => TRUE,
|
Chris@18
|
165 'widget' => 'select',
|
Chris@18
|
166 'multiple' => FALSE,
|
Chris@18
|
167 'remember' => FALSE,
|
Chris@18
|
168 'default_group' => 'All',
|
Chris@18
|
169 'default_group_multiple' => [],
|
Chris@18
|
170 'group_items' => [],
|
Chris@18
|
171 ],
|
Chris@18
|
172 'entity_type' => 'media',
|
Chris@18
|
173 'entity_field' => 'name',
|
Chris@18
|
174 'plugin_id' => 'string',
|
Chris@18
|
175 ],
|
Chris@18
|
176 ]);
|
Chris@18
|
177 $view->set('display.widget.display_options.filter_groups', [
|
Chris@18
|
178 'operator' => 'AND',
|
Chris@18
|
179 'groups' => [
|
Chris@18
|
180 1 => 'AND',
|
Chris@18
|
181 ],
|
Chris@18
|
182 ]);
|
Chris@18
|
183 $view->set('display.widget.display_options.arguments', [
|
Chris@18
|
184 'bundle' => [
|
Chris@18
|
185 'id' => 'bundle',
|
Chris@18
|
186 'table' => 'media_field_data',
|
Chris@18
|
187 'field' => 'bundle',
|
Chris@18
|
188 'relationship' => 'none',
|
Chris@18
|
189 'group_type' => 'group',
|
Chris@18
|
190 'admin_label' => '',
|
Chris@18
|
191 'default_action' => 'ignore',
|
Chris@18
|
192 'exception' => [
|
Chris@18
|
193 'value' => 'all',
|
Chris@18
|
194 'title_enable' => FALSE,
|
Chris@18
|
195 'title' => 'All',
|
Chris@18
|
196 ],
|
Chris@18
|
197 'title_enable' => FALSE,
|
Chris@18
|
198 'title' => '',
|
Chris@18
|
199 'default_argument_type' => 'fixed',
|
Chris@18
|
200 'default_argument_options' => [
|
Chris@18
|
201 'argument' => '',
|
Chris@18
|
202 ],
|
Chris@18
|
203 'default_argument_skip_url' => FALSE,
|
Chris@18
|
204 'summary_options' => [
|
Chris@18
|
205 'base_path' => '',
|
Chris@18
|
206 'count' => TRUE,
|
Chris@18
|
207 'items_per_page' => 25,
|
Chris@18
|
208 'override' => FALSE,
|
Chris@18
|
209 ],
|
Chris@18
|
210 'summary' => [
|
Chris@18
|
211 'sort_order' => 'asc',
|
Chris@18
|
212 'number_of_records' => 0,
|
Chris@18
|
213 'format' => 'default_summary',
|
Chris@18
|
214 ],
|
Chris@18
|
215 'specify_validation' => FALSE,
|
Chris@18
|
216 'validate' => [
|
Chris@18
|
217 'type' => 'none',
|
Chris@18
|
218 'fail' => 'not found',
|
Chris@18
|
219 ],
|
Chris@18
|
220 'validate_options' => [],
|
Chris@18
|
221 'glossary' => FALSE,
|
Chris@18
|
222 'limit' => 0,
|
Chris@18
|
223 'case' => 'none',
|
Chris@18
|
224 'path_case' => 'none',
|
Chris@18
|
225 'transform_dash' => FALSE,
|
Chris@18
|
226 'break_phrase' => FALSE,
|
Chris@18
|
227 'entity_type' => 'media',
|
Chris@18
|
228 'entity_field' => 'bundle',
|
Chris@18
|
229 'plugin_id' => 'string',
|
Chris@18
|
230 ],
|
Chris@18
|
231 ]);
|
Chris@18
|
232 $view->save();
|
Chris@18
|
233 }
|
Chris@18
|
234 }
|