[-] BO : Translations errors : now the modules files are search recursively

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@15066 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
lLefevre
2012-05-04 09:05:24 +00:00
parent c6be7c30d9
commit 8fcbb6d4fb

View File

@@ -670,7 +670,7 @@ class AdminTranslationsControllerCore extends AdminController
if (!in_array($module_key, $array_check_duplicate))
{
$array_check_duplicate[] = $module_key;
if (key_exists($module_key, $GLOBALS[$name_var]))
if (array_key_exists($module_key, $GLOBALS[$name_var]))
$this->modules_translations[$theme_name][$module_name][$template_name][$key] = html_entity_decode($GLOBALS[$name_var][$module_key], ENT_COMPAT, 'UTF-8');
else
{
@@ -813,6 +813,8 @@ class AdminTranslationsControllerCore extends AdminController
// Parsing modules file
if ($type_file == 'php')
$regex = '/->l\(\''._PS_TRANS_PATTERN_.'\'(, ?\'(.+)\')?(, ?(.+))?\)/U';
else if ($type_file == 'displayError')
$regex = '/Tools::displayError\(\''._PS_TRANS_PATTERN_.'\'(, (true|false))?\)/U';
else
$regex = '/\{l s=\''._PS_TRANS_PATTERN_.'\'( sprintf=.*)?( mod=\'.+\')?( js=1)?\}/U';
break;
@@ -827,6 +829,7 @@ class AdminTranslationsControllerCore extends AdminController
}
preg_match_all($regex, $content, $matches);
return $matches[1];
}
@@ -1613,7 +1616,7 @@ class AdminTranslationsControllerCore extends AdminController
{
foreach ($modules as $module)
if (is_dir(_PS_MODULE_DIR_.$module) && !in_array($module, $this->ignore_folder))
$file_by_directory[_PS_MODULE_DIR_.$module.'/'] = scandir(_PS_MODULE_DIR_.$module.'/');
$file_by_directory['php'] = array_merge($file_by_directory['php'], $this->listFiles(_PS_MODULE_DIR_.$module.'/', array(), 'php'));
}
foreach ($file_by_directory['php'] as $dir => $files)
@@ -1631,7 +1634,7 @@ class AdminTranslationsControllerCore extends AdminController
foreach ($matches as $key)
{
if (key_exists(md5($key), $GLOBALS[$name_var]))
if (array_key_exists(md5($key), $GLOBALS[$name_var]))
$string_to_translate[$key] = html_entity_decode($GLOBALS[$name_var][md5($key)], ENT_COMPAT, 'UTF-8');
else
$string_to_translate[$key] = '';
@@ -1830,7 +1833,7 @@ class AdminTranslationsControllerCore extends AdminController
{
$str_return = '';
$group_name = 'mail';
if (key_exists('group_name', $mails))
if (array_key_exists('group_name', $mails))
$group_name = $mails['group_name'];
$str_return .= '
@@ -1845,9 +1848,9 @@ class AdminTranslationsControllerCore extends AdminController
{
foreach ($mails['files'] as $mail_name => $mail_files)
{
if (key_exists('html', $mail_files) || key_exists('txt', $mail_files))
if (array_key_exists('html', $mail_files) || array_key_exists('txt', $mail_files))
{
if (key_exists($mail_name, $all_subject_mail))
if (array_key_exists($mail_name, $all_subject_mail))
{
$subject_mail = $all_subject_mail[$mail_name];
$value_subject_mail = isset($mails['subject'][$subject_mail]) ? $mails['subject'][$subject_mail] : '';
@@ -1867,14 +1870,14 @@ class AdminTranslationsControllerCore extends AdminController
<b>'.sprintf($this->l('No Subject was found for %s, or subject is generated in database.'), '<em>'.$mail_name.'</em>').'</b>
</div>';
}
if (key_exists('html', $mail_files))
if (array_key_exists('html', $mail_files))
{
$base_uri = str_replace(_PS_ROOT_DIR_, __PS_BASE_URI__, $mails['directory']);
$base_uri = str_replace('//', '/', $base_uri);
$url_mail = $base_uri.$mail_name.'.html';
$str_return .= $this->displayMailBlockHtml($mail_files['html'], $obj_lang->iso_code, $url_mail, $mail_name, $group_name, $name_for_module);
}
if (key_exists('txt', $mail_files))
if (array_key_exists('txt', $mail_files))
$str_return .= $this->displayMailBlockTxt($mail_files['txt'], $obj_lang->iso_code, $mail_name, $group_name, $name_for_module);
}
}
@@ -2278,7 +2281,7 @@ class AdminTranslationsControllerCore extends AdminController
$matches = $this->userParseFile($content, $this->type_selected, $file_type);
foreach ($matches as $key)
if (stripslashes(key_exists($tab.md5(addslashes($key)), $lang_array)))
if (stripslashes(array_key_exists($tab.md5(addslashes($key)), $lang_array)))
{
$tabs_array[$tab][$key] = html_entity_decode($lang_array[$tab.md5(addslashes($key))], ENT_COMPAT, 'UTF-8');
$count++;
@@ -2392,9 +2395,8 @@ class AdminTranslationsControllerCore extends AdminController
/**
* recursively list files in directory $dir
*/
public function listFiles($dir, $list = array())
public function listFiles($dir, $list = array(), $file_ext = 'tpl')
{
$fileext = 'tpl';
$dir = rtrim($dir, '/').DIRECTORY_SEPARATOR;
$to_parse = scandir($dir);
@@ -2403,10 +2405,10 @@ class AdminTranslationsControllerCore extends AdminController
{
if (!in_array($file, $this->ignore_folder))
{
if (preg_match('#'.preg_quote($fileext, '#').'$#i', $file))
if (preg_match('#'.preg_quote($file_ext, '#').'$#i', $file))
$list[$dir][] = $file;
else if (is_dir($dir.$file))
$list = $this->listFiles($dir.$file, $list);
$list = $this->listFiles($dir.$file, $list, $file_ext);
}
}
return $list;