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();
|
$files_by_directiories = $this->getFileToParseByTypeTranslation();
|
||||||
|
|
||||||
foreach ($files_by_directiories['php'] as $dir => $files)
|
foreach ($files_by_directiories['php'] as $dir => $files)
|
||||||
foreach ($files as $file)
|
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))
|
// 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);
|
$subject_mail = $this->getSubjectMail($dir, $file, $subject_mail);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Get path of directory for find a good path of translation file
|
// 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']))
|
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)
|
protected function getSubjectMail($dir, $file, $subject_mail)
|
||||||
{
|
{
|
||||||
$content = file_get_contents($dir.'/'.$file);
|
// If is file and is not in ignore_folder
|
||||||
$content = str_replace("\n", ' ', $content);
|
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.
|
// 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))
|
if (preg_match_all('/Mail::Send([^;]*);/si', $content, $tab)) {
|
||||||
for ($i = 0; isset($tab[1][$i]); $i++)
|
for ($i = 0; isset($tab[1][$i]); $i++)
|
||||||
{
|
|
||||||
$tab2 = explode(',', $tab[1][$i]);
|
|
||||||
if (is_array($tab2) && isset($tab2[1]))
|
|
||||||
{
|
{
|
||||||
$template = trim(str_replace('\'', '', $tab2[1]));
|
$tab2 = explode(',', $tab[1][$i]);
|
||||||
foreach ($tab2 as $tab3)
|
if (is_array($tab2) && isset($tab2[1]))
|
||||||
if (preg_match('/Mail::l\(\''._PS_TRANS_PATTERN_.'\'\)/Us', $tab3.')', $matches))
|
{
|
||||||
{
|
$template = trim(str_replace('\'', '', $tab2[1]));
|
||||||
if (!isset($subject_mail[$template]))
|
foreach ($tab2 as $tab3)
|
||||||
$subject_mail[$template] = array();
|
if (preg_match('/Mail::l\(\''._PS_TRANS_PATTERN_.'\'\)/Us', $tab3.')', $matches))
|
||||||
if (!in_array($matches[1], $subject_mail[$template]))
|
{
|
||||||
$subject_mail[$template][] = $matches[1];
|
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))
|
// Of if is colder, we scan colder for check if find in folder and subfolder
|
||||||
$subject_mail = $this->getSubjectMail($dir, $file, $subject_mail);
|
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;
|
return $subject_mail;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user