Add migration for service message languages

master^2
Mike Koch 6 years ago
parent 748ae25fc2
commit e3d4fc89dc
No known key found for this signature in database
GPG Key ID: 9BA5D7F8391455ED

@ -231,5 +231,8 @@ function getAllMigrations() {
173 => new UpdateMigration('3.3.1', '3.3.0', 173),
// 2018.1.0
174 => new UpdateMigration('2018.1.0', '3.3.1', 174),
// 2018.1.1
175 => new \vv201811\MigrateServiceMessageLanguages(175),
176 => new UpdateMigration('2018.1.1', '2018.1.0', 176),
);
}

@ -0,0 +1,49 @@
<?php
namespace vv201811;
class MigrateServiceMessageLanguages extends \AbstractUpdatableMigration {
function innerUp($hesk_settings) {
// Get all service messages with non-null language (only HESK will populate this; MFH won't)
$rs = hesk_dbQuery("SELECT `id`, `language` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "service_messages`
WHERE `language` IS NOT NULL");
$languageMap = [];
while ($row = hesk_dbFetchAssoc($rs)) {
// Get the MFH language
if (count($languageMap) === 0) {
// Initialize the map for the first run
foreach($hesk_settings['languages'] as $name => $info) {
$languageMap[$name] = $info['folder'];
}
}
$mfh_language = $languageMap[$row['language']];
hesk_dbQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "service_messages`
SET `mfh_language` = '" . hesk_dbEscape($mfh_language) . "' WHERE `id` = " . intval($row['id']));
}
}
function innerDown($hesk_settings) {
// Get all service messages with non-null language (only HESK will populate this; MFH won't)
$rs = hesk_dbQuery("SELECT `id`, `mfh_language` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "service_messages`");
$language_map = [];
while ($row = hesk_dbFetchAssoc($rs)) {
// Get the language
if (count($language_map) === 0) {
// Initialize the map for the first run
foreach($hesk_settings['languages'] as $name => $info) {
$language_map[$info['folder']] = $name;
}
}
$language = $row['mfh_language'] === 'ALL' ? 'NULL' : "'" . hesk_dbEscape($language_map[$row['mfh_language']]) . "'";
hesk_dbQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "service_messages`
SET `language` = {$language} WHERE `id` = " . intval($row['id']));
}
}
}
Loading…
Cancel
Save