From cb231efced389180bb4787bfc73e0502161449a9 Mon Sep 17 00:00:00 2001 From: rMalie Date: Fri, 3 Feb 2012 13:31:51 +0000 Subject: [PATCH] // Fix translations in AdminControllers from modules #PSFV-397 --- classes/Module.php | 9 ++++++++- classes/controller/AdminController.php | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/classes/Module.php b/classes/Module.php index cf4f129f0..1fa968993 100644 --- a/classes/Module.php +++ b/classes/Module.php @@ -763,7 +763,13 @@ abstract class ModuleCore $realpathModuleDir = realpath(_PS_MODULE_DIR_); if (substr(realpath($filePath), 0, strlen($realpathModuleDir)) == $realpathModuleDir) { - self::$classInModule[$currentClass] = substr(dirname($filePath), strlen($realpathModuleDir) + 1); + // For controllers in module/controllers path + if (basename(dirname(dirname($filePath))) == 'controllers') + self::$classInModule[$currentClass] = basename(dirname(dirname(dirname($filePath)))); + // For old AdminTab controllers + else + self::$classInModule[$currentClass] = substr(dirname($filePath), strlen($realpathModuleDir) + 1); + $file = _PS_MODULE_DIR_.self::$classInModule[$currentClass].'/'.Context::getContext()->language->iso_code.'.php'; if (Tools::file_exists_cache($file) && include_once($file)) $_MODULES = !empty($_MODULES) ? array_merge($_MODULES, $_MODULE) : $_MODULE; @@ -771,6 +777,7 @@ abstract class ModuleCore else self::$classInModule[$currentClass] = false; } + // return name of the module, or false return self::$classInModule[$currentClass]; } diff --git a/classes/controller/AdminController.php b/classes/controller/AdminController.php index 21fd7e0f6..6f48d2cd3 100644 --- a/classes/controller/AdminController.php +++ b/classes/controller/AdminController.php @@ -1634,14 +1634,14 @@ class AdminControllerCore extends Controller include_once(_PS_TRANSLATIONS_DIR_.$iso.'/admin.php'); } - if (isset(self::$tab_module_list[$class])) + if (isset(self::$tab_module_list[strtolower($class)])) { $class_name_controller = $class.'controller'; // if the class is extended by a module, use modules/[module_name]/xx.php lang file if (class_exists($class_name_controller) && Module::getModuleNameFromClass($class_name_controller)) { $string = str_replace('\'', '\\\'', $string); - return Module::findTranslation(Module::$classInModule[$class_name_controller], $string, $class_name_controller); + return Module::findTranslation(Module::$classInModule[$class_name_controller], $string, $class); } } $key = md5(str_replace('\'', '\\\'', $string));