[-] BO : #PI-57 : Fix bug when we import pack of language in emails files

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@14307 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
lLefevre
2012-03-27 15:52:09 +00:00
parent 3634a470dd
commit 6b0fd26ea8
@@ -285,8 +285,12 @@ class AdminTranslationsControllerCore extends AdminController
public function checkAndAddMailsFiles($iso_code, $files_list)
{
// 1 - Scan mails files
$mails = scandir(_PS_MAIL_DIR_.'en/');
$mails_new_lang = array();
// Get all email files
foreach ($files_list as $file)
{
if (preg_match('#^mails\/([a-z0-9]+)\/#Ui', $file['filename'], $matches))
@@ -295,11 +299,57 @@ class AdminTranslationsControllerCore extends AdminController
$mails_new_lang[] = substr($file['filename'], -(strlen($file['filename']) - $slash_pos - 1));
}
}
// Get the difference
$arr_mails_needed = array_diff($mails, $mails_new_lang);
// Add mails files
foreach ($arr_mails_needed as $mail_to_add)
{
if ($mail_to_add !== '.' && $mail_to_add !== '..' && $mail_to_add !== '.svn')
@copy(_PS_MAIL_DIR_.'en/'.$mail_to_add, _PS_MAIL_DIR_.$iso_code.'/'.$mail_to_add);
// 2 - Scan modules files
$modules = scandir(_PS_MODULE_DIR_);
$module_mail_en = array();
$module_mail_iso_code = array();
foreach ($modules as $module)
{
if (!in_array($module, array('.', '..', '.svn', '.htaccess')) && file_exists(_PS_MODULE_DIR_.$module.'/mails/en/'))
{
$arr_files = scandir(_PS_MODULE_DIR_.$module.'/mails/en/');
foreach ($arr_files as $file)
{
if (!in_array($file, array('.', '..', '.svn', '.htaccess')))
{
if (file_exists(_PS_MODULE_DIR_.$module.'/mails/en/'.$file))
$module_mail_en[] = _PS_MODULE_DIR_.$module.'/mails/ISO_CODE/'.$file;
if (file_exists(_PS_MODULE_DIR_.$module.'/mails/'.$iso_code.'/'.$file))
$module_mail_iso_code[] = _PS_MODULE_DIR_.$module.'/mails/ISO_CODE/'.$file;
}
}
}
}
// Get the difference in this modules
$arr_modules_mails_needed = array_diff($module_mail_en, $module_mail_iso_code);
// Add mails files for this modules
foreach ($arr_modules_mails_needed as $file)
{
$file_en = str_replace('ISO_CODE', 'en', $file);
$file_iso_code = str_replace('ISO_CODE', $iso_code, $file);
$dir_iso_code = substr($file_iso_code, 0, -(strlen($file_iso_code) - strrpos($file_iso_code, '/') - 1));
if (!file_exists($dir_iso_code))
mkdir($dir_iso_code);
if (file_exists($file_en))
copy($file_en, $file_iso_code);
}
}
public function submitImportLang()