Merge pull request #611 from 202-ecommerce/fix_translation
[-] BO : Fix while of translation, to find in folder if translation exists
This commit is contained in:
@@ -2353,9 +2353,12 @@ class AdminTranslationsControllerCore extends AdminController
|
||||
$files_by_directiories = $this->getFileToParseByTypeTranslation();
|
||||
|
||||
foreach ($files_by_directiories['php'] as $dir => $files)
|
||||
foreach ($files as $file)
|
||||
if (Tools::file_exists_cache($dir.$file) && is_file($dir.$file) && !in_array($file, self::$ignore_folder) && preg_match('/\.php$/', $file))
|
||||
foreach ($files as $file) {
|
||||
// If file exist and is not in ignore_folder, in the next step we check if a folder or mail
|
||||
if (Tools::file_exists_cache($dir.$file) && !in_array($file, self::$ignore_folder) ) {
|
||||
$subject_mail = $this->getSubjectMail($dir, $file, $subject_mail);
|
||||
}
|
||||
}
|
||||
|
||||
// Get path of directory for find a good path of translation file
|
||||
if ($this->theme_selected && @filemtime($this->translations_informations[$this->type_selected]['override']['dir']))
|
||||
@@ -2410,30 +2413,40 @@ class AdminTranslationsControllerCore extends AdminController
|
||||
*/
|
||||
protected function getSubjectMail($dir, $file, $subject_mail)
|
||||
{
|
||||
$content = file_get_contents($dir.'/'.$file);
|
||||
$content = str_replace("\n", ' ', $content);
|
||||
// If is file and is not in ignore_folder
|
||||
if (is_file($dir.'/'.$file) && !in_array($file, self::$ignore_folder) && preg_match('/\.php$/', $file))
|
||||
{
|
||||
$content = file_get_contents($dir.'/'.$file);
|
||||
$content = str_replace("\n", ' ', $content);
|
||||
|
||||
// Subject must match with a template, therefor we first grep the Mail::Send() function then the Mail::l() inside.
|
||||
if (preg_match_all('/Mail::Send([^;]*);/si', $content, $tab))
|
||||
for ($i = 0; isset($tab[1][$i]); $i++)
|
||||
{
|
||||
$tab2 = explode(',', $tab[1][$i]);
|
||||
if (is_array($tab2) && isset($tab2[1]))
|
||||
// Subject must match with a template, therefor we first grep the Mail::Send() function then the Mail::l() inside.
|
||||
if (preg_match_all('/Mail::Send([^;]*);/si', $content, $tab)) {
|
||||
for ($i = 0; isset($tab[1][$i]); $i++)
|
||||
{
|
||||
$template = trim(str_replace('\'', '', $tab2[1]));
|
||||
foreach ($tab2 as $tab3)
|
||||
if (preg_match('/Mail::l\(\''._PS_TRANS_PATTERN_.'\'\)/Us', $tab3.')', $matches))
|
||||
{
|
||||
if (!isset($subject_mail[$template]))
|
||||
$subject_mail[$template] = array();
|
||||
if (!in_array($matches[1], $subject_mail[$template]))
|
||||
$subject_mail[$template][] = $matches[1];
|
||||
}
|
||||
$tab2 = explode(',', $tab[1][$i]);
|
||||
if (is_array($tab2) && isset($tab2[1]))
|
||||
{
|
||||
$template = trim(str_replace('\'', '', $tab2[1]));
|
||||
foreach ($tab2 as $tab3)
|
||||
if (preg_match('/Mail::l\(\''._PS_TRANS_PATTERN_.'\'\)/Us', $tab3.')', $matches))
|
||||
{
|
||||
if (!isset($subject_mail[$template]))
|
||||
$subject_mail[$template] = array();
|
||||
if (!in_array($matches[1], $subject_mail[$template]))
|
||||
$subject_mail[$template][] = $matches[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!in_array($file, self::$ignore_folder) && is_dir($dir.'/'.$file))
|
||||
$subject_mail = $this->getSubjectMail($dir, $file, $subject_mail);
|
||||
}
|
||||
// Of if is colder, we scan colder for check if find in folder and subfolder
|
||||
else if (!in_array($file, self::$ignore_folder) && is_dir($dir.'/'.$file))
|
||||
{
|
||||
foreach( scandir($dir.'/'.$file ) as $temp )
|
||||
{
|
||||
$subject_mail = $this->getSubjectMail($dir.'/'.$file, $temp, $subject_mail);
|
||||
}
|
||||
}
|
||||
|
||||
return $subject_mail;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user