Skip to content

Commit 95b9117

Browse files
committed
glpi_plugin_genericobject_types
1 parent ad67ec4 commit 95b9117

File tree

1 file changed

+43
-41
lines changed

1 file changed

+43
-41
lines changed

inc/container.class.php

Lines changed: 43 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -151,51 +151,53 @@ public static function installBaseData(Migration $migration, $version)
151151

152152
// Get itemtypes from PluginGenericobject
153153
$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+
}
163164

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+
]);
173174

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+
}
188190
}
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+
);
189200
}
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-
);
199201
}
200202

201203
return true;

0 commit comments

Comments
 (0)