I think there is something wrong with the clean of language cache file, because the function only delete the default language cache files and not all languages files when a user click on repair.
In order to correct this I think you should modify the following file : \include\SugarObjects\LanguageManager.php
Go to function clearLanguageCache() and modify it as follow (if you suppress code between BOF SYNOLIA / EOF SYNOLIA you get the original code) :
HTHPHP Code:/**
* clear out the language cache.
* @param string module_dir the module_dir to clear, if not specified then clear
* clear vardef cache for all modules.
* @param string lang the name of the object we are clearing this is for sugar_cache
*/
function clearLanguageCache($module_dir = '', $lang = ''){
//BOF SYNOLIA
/* Previous code clean only default language
//EOF SYNOLIA
if(empty($lang))
$lang = $GLOBALS['sugar_config']['default_language'];
//BOF SYNOLIA
*/
//EOF SYNOLIA
//BOF SYNOLIA
// If no lang is provided then clean up all languages instead of only the default language
global $sugar_config;
if(empty($lang)) {
foreach($sugar_config['languages'] as $lang=>$value){
//if we have a module name specified then just remove that vardef file
//otherwise go through each module and remove the vardefs.php
if(!empty($module_dir)){
LanguageManager::_clearCache($module_dir, $lang);
}else{
global $beanList;
foreach($beanList as $module_dir => $object_name){
LanguageManager::_clearCache($module_dir, $lang);
}
}
}
} else {
//EOF SYNOLIA
//if we have a module name specified then just remove that vardef file
//otherwise go through each module and remove the vardefs.php
if(!empty($module_dir)){
LanguageManager::_clearCache($module_dir, $lang);
}else{
global $beanList;
foreach($beanList as $module_dir => $object_name){
LanguageManager::_clearCache($module_dir, $lang);
}
}
//BOF SYNOLIA
}
//EOF SYNOLIA
}
![]()


LinkBack URL
About LinkBacks




Reply With Quote

Bookmarks