Files
ws_customhtml/upgrade/upgrade-1.20.0.php
T
isabelle 7cafc376b7 feat(main): Made group and blocks translatable.
Still need to do slide and FAQ entities
2026-09-09 11:56:18 +02:00

89 lines
2.4 KiB
PHP

<?php
if (!defined('_PS_VERSION_')) {
exit;
}
function upgrade_module_1_20_0($module)
{
if (!createGroupLangTable()) {
return false;
}
if (!migrateGroupTitlesToLangTable()) {
return false;
}
return dropGroupTitleColumn();
}
function createGroupLangTable(): bool
{
return Db::getInstance()->execute(
'CREATE TABLE IF NOT EXISTS `' . _DB_PREFIX_ . 'ws_customhtml_group_lang` (
`id_ws_customhtml_group` INT(11) NOT NULL,
`id_lang` INT(11) NOT NULL,
`title` VARCHAR(256) NOT NULL DEFAULT \'\',
PRIMARY KEY (`id_ws_customhtml_group`, `id_lang`)
);'
);
}
function migrateGroupTitlesToLangTable(): bool
{
$groupColumns = Db::getInstance()->executeS(
'SHOW COLUMNS FROM `' . _DB_PREFIX_ . 'ws_customhtml_group` LIKE \'title\''
);
if (empty($groupColumns)) {
// Already migrated in a previous run of this upgrade.
return true;
}
$groups = Db::getInstance()->executeS(
'SELECT `id_ws_customhtml_group`, `title` FROM `' . _DB_PREFIX_ . 'ws_customhtml_group`'
);
$languages = Language::getLanguages(false);
foreach ($groups as $group) {
foreach ($languages as $language) {
$existing = Db::getInstance()->executeS(
'SELECT 1 FROM `' . _DB_PREFIX_ . 'ws_customhtml_group_lang`
WHERE `id_ws_customhtml_group` = ' . (int) $group['id_ws_customhtml_group'] . '
AND `id_lang` = ' . (int) $language['id_lang']
);
if (!empty($existing)) {
continue;
}
$result = Db::getInstance()->insert('ws_customhtml_group_lang', [
'id_ws_customhtml_group' => (int) $group['id_ws_customhtml_group'],
'id_lang' => (int) $language['id_lang'],
'title' => pSQL($group['title']),
]);
if (!$result) {
return false;
}
}
}
return true;
}
function dropGroupTitleColumn(): bool
{
$groupColumns = Db::getInstance()->executeS(
'SHOW COLUMNS FROM `' . _DB_PREFIX_ . 'ws_customhtml_group` LIKE \'title\''
);
if (empty($groupColumns)) {
return true;
}
return Db::getInstance()->execute(
'ALTER TABLE `' . _DB_PREFIX_ . 'ws_customhtml_group` DROP COLUMN `title`'
);
}