You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
2.0 KiB
PHP
49 lines
2.0 KiB
PHP
<?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 = array();
|
|
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 = array();
|
|
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']));
|
|
}
|
|
}
|
|
} |