Example #1
0
/**
 * Patch for bug57431
 * Compares current moduleList to base moduleList to detect if some modules have been renamed
 * Run changeModuleModStrings to create new labels based on customizations.
 */
function updateRenamedModulesLabels()
{
    require_once 'modules/Studio/wizards/RenameModules.php';
    require_once 'include/utils.php';
    $klass = new RenameModules();
    $languages = get_languages();
    foreach ($languages as $langKey => $langName) {
        //get list strings for this language
        $strings = return_app_list_strings_language($langKey);
        //get base list strings for this language
        if (file_exists("include/language/{$langKey}.lang.php")) {
            include "include/language/{$langKey}.lang.php";
            //Keep only renamed modules
            $renamedModules = array_diff($strings['moduleList'], $app_list_strings['moduleList']);
            foreach ($renamedModules as $moduleId => $moduleName) {
                if (isset($app_list_strings['moduleListSingular'][$moduleId])) {
                    $klass->selectedLanguage = $langKey;
                    $replacementLabels = array('singular' => $strings['moduleListSingular'][$moduleId], 'plural' => $strings['moduleList'][$moduleId], 'prev_singular' => $app_list_strings['moduleListSingular'][$moduleId], 'prev_plural' => $app_list_strings['moduleList'][$moduleId], 'key_plural' => $moduleId, 'key_singular' => $klass->getModuleSingularKey($moduleId));
                    $klass->changeModuleModStrings($moduleId, $replacementLabels);
                }
            }
        }
    }
}