@@ -151,51 +151,53 @@ public static function installBaseData(Migration $migration, $version)
151
151
152
152
// Get itemtypes from PluginGenericobject
153
153
$ migration_genericobject_itemtype = [];
154
- $ result = $ DB ->request (['FROM ' => 'glpi_plugin_genericobject_types ' ]);
155
- foreach ($ result as $ type ) {
156
- $ migration_genericobject_itemtype [$ type ['itemtype ' ]] = [
157
- 'genericobject_itemtype ' => $ type ['itemtype ' ],
158
- 'itemtype ' => 'Glpi \\\\CustomAsset \\\\' . $ type ['name ' ] . "Asset " ,
159
- 'genericobject_name ' => $ type ['name ' ],
160
- 'name ' => $ type ['name ' ] . 'Asset ' ,
161
- ];
162
- }
154
+ if ($ DB ->tableExists ('glpi_plugin_genericobject_types ' )) {
155
+ $ result = $ DB ->request (['FROM ' => 'glpi_plugin_genericobject_types ' ]);
156
+ foreach ($ result as $ type ) {
157
+ $ migration_genericobject_itemtype [$ type ['itemtype ' ]] = [
158
+ 'genericobject_itemtype ' => $ type ['itemtype ' ],
159
+ 'itemtype ' => 'Glpi \\\\CustomAsset \\\\' . $ type ['name ' ] . "Asset " ,
160
+ 'genericobject_name ' => $ type ['name ' ],
161
+ 'name ' => $ type ['name ' ] . 'Asset ' ,
162
+ ];
163
+ }
163
164
164
- // Get containers with PluginGenericobject itemtype
165
- $ result = $ DB ->request ([
166
- 'FROM ' => $ table ,
167
- 'WHERE ' => [
168
- new Glpi \DBAL \QueryExpression (
169
- $ table . ".itemtypes LIKE '%PluginGenericobject%' " ,
170
- ),
171
- ],
172
- ]);
165
+ // Get containers with PluginGenericobject itemtype
166
+ $ result = $ DB ->request ([
167
+ 'FROM ' => $ table ,
168
+ 'WHERE ' => [
169
+ new Glpi \DBAL \QueryExpression (
170
+ $ table . ".itemtypes LIKE '%PluginGenericobject%' " ,
171
+ ),
172
+ ],
173
+ ]);
173
174
174
- $ container_class = new self ();
175
- foreach ($ result as $ container ) {
176
- self ::generateTemplate ($ container );
177
- foreach (json_decode ($ container ['itemtypes ' ]) as $ itemtype ) {
178
- $ classname = self ::getClassname ($ itemtype , $ container ["name " ]);
179
- $ old_table = $ classname ::getTable ();
180
- // Rename genericobject container table
181
- if (
182
- $ DB ->tableExists ($ old_table ) &&
183
- isset ($ migration_genericobject_itemtype [$ itemtype ]) &&
184
- strpos ($ old_table , 'glpi_plugin_fields_plugingenericobject ' . $ migration_genericobject_itemtype [$ itemtype ]['genericobject_name ' ]) !== false
185
- ) {
186
- $ new_table = str_replace ('plugingenericobject ' . $ migration_genericobject_itemtype [$ itemtype ]['genericobject_name ' ], 'glpicustomasset ' . strtolower ($ migration_genericobject_itemtype [$ itemtype ]['name ' ]), $ old_table );
187
- $ migration ->renameTable ($ old_table , $ new_table );
175
+ $ container_class = new self ();
176
+ foreach ($ result as $ container ) {
177
+ self ::generateTemplate ($ container );
178
+ foreach (json_decode ($ container ['itemtypes ' ]) as $ itemtype ) {
179
+ $ classname = self ::getClassname ($ itemtype , $ container ["name " ]);
180
+ $ old_table = $ classname ::getTable ();
181
+ // Rename genericobject container table
182
+ if (
183
+ $ DB ->tableExists ($ old_table ) &&
184
+ isset ($ migration_genericobject_itemtype [$ itemtype ]) &&
185
+ strpos ($ old_table , 'glpi_plugin_fields_plugingenericobject ' . $ migration_genericobject_itemtype [$ itemtype ]['genericobject_name ' ]) !== false
186
+ ) {
187
+ $ new_table = str_replace ('plugingenericobject ' . $ migration_genericobject_itemtype [$ itemtype ]['genericobject_name ' ], 'glpicustomasset ' . strtolower ($ migration_genericobject_itemtype [$ itemtype ]['name ' ]), $ old_table );
188
+ $ migration ->renameTable ($ old_table , $ new_table );
189
+ }
188
190
}
191
+ // Update old genericobject itemtypes in container
192
+ $ map = array_column ($ migration_genericobject_itemtype , 'itemtype ' , 'genericobject_itemtype ' );
193
+ $ itemtypes = strtr ($ container ['itemtypes ' ], $ map );
194
+ $ container_class ->update (
195
+ [
196
+ 'id ' => $ container ['id ' ],
197
+ 'itemtypes ' => $ itemtypes ,
198
+ ],
199
+ );
189
200
}
190
- // Update old genericobject itemtypes in container
191
- $ map = array_column ($ migration_genericobject_itemtype , 'itemtype ' , 'genericobject_itemtype ' );
192
- $ itemtypes = strtr ($ container ['itemtypes ' ], $ map );
193
- $ container_class ->update (
194
- [
195
- 'id ' => $ container ['id ' ],
196
- 'itemtypes ' => $ itemtypes ,
197
- ],
198
- );
199
201
}
200
202
201
203
return true ;
0 commit comments