[*] BO : add method for import translations tabs
git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@15832 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
@@ -473,7 +473,8 @@ class AdminTranslationsControllerCore extends AdminController
|
|||||||
|
|
||||||
// Move the old file theme in the new folder
|
// Move the old file theme in the new folder
|
||||||
foreach ($themes_selected as $theme_name)
|
foreach ($themes_selected as $theme_name)
|
||||||
copy($theme_file_old, str_replace($name_default_theme, $theme_name, $theme_file_old));
|
if (file_exists($theme_file_old))
|
||||||
|
copy($theme_file_old, str_replace($name_default_theme, $theme_name, $theme_file_old));
|
||||||
|
|
||||||
if ($deleted_old_theme)
|
if ($deleted_old_theme)
|
||||||
@unlink($theme_file_old);
|
@unlink($theme_file_old);
|
||||||
@@ -481,6 +482,41 @@ class AdminTranslationsControllerCore extends AdminController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add new translations tabs by code ISO
|
||||||
|
*
|
||||||
|
* @param array $iso_code
|
||||||
|
* @param array $files
|
||||||
|
*/
|
||||||
|
public function addNewTabs($iso_code, $files)
|
||||||
|
{
|
||||||
|
foreach ($files as $file)
|
||||||
|
{
|
||||||
|
// Check if file is a file theme
|
||||||
|
if (preg_match('#^translations\/'.$iso_code.'\/tabs.php#Ui', $file['filename'], $matches) && Validate::isLanguageIsoCode($iso_code))
|
||||||
|
{
|
||||||
|
// Include array width new translations tabs
|
||||||
|
$tabs = include _PS_ROOT_DIR_.DIRECTORY_SEPARATOR.$file['filename'];
|
||||||
|
|
||||||
|
foreach ($tabs as $class_name => $translations)
|
||||||
|
{
|
||||||
|
// Get instance of this tab by class name
|
||||||
|
$tab = Tab::getInstanceFromClassName($class_name);
|
||||||
|
|
||||||
|
//Check if class name exists
|
||||||
|
if (isset($tab->class_name) && !empty($tab->class_name))
|
||||||
|
{
|
||||||
|
$id_lang = Language::getIdByIso($iso_code);
|
||||||
|
$tab->name[(int)$id_lang] = pSQL($translations);
|
||||||
|
|
||||||
|
// Update this tab
|
||||||
|
$tab->update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function submitImportLang()
|
public function submitImportLang()
|
||||||
{
|
{
|
||||||
if (!isset($_FILES['file']['tmp_name']) || !$_FILES['file']['tmp_name'])
|
if (!isset($_FILES['file']['tmp_name']) || !$_FILES['file']['tmp_name'])
|
||||||
@@ -488,13 +524,14 @@ class AdminTranslationsControllerCore extends AdminController
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
$gz = new Archive_Tar($_FILES['file']['tmp_name'], true);
|
$gz = new Archive_Tar($_FILES['file']['tmp_name'], true);
|
||||||
$iso_code = str_replace('.gzip', '', $_FILES['file']['name']);
|
$iso_code = str_replace(array('.tar.gz', '.gzip'), '', $_FILES['file']['name']);
|
||||||
$themes_selected = Tools::getValue('theme', array(self::DEFAULT_THEME_NAME));
|
$themes_selected = Tools::getValue('theme', array(self::DEFAULT_THEME_NAME));
|
||||||
$files_list = $gz->listContent();
|
$files_list = $gz->listContent();
|
||||||
if ($gz->extract(_PS_TRANSLATIONS_DIR_.'../', false))
|
if ($gz->extract(_PS_TRANSLATIONS_DIR_.'../', false))
|
||||||
{
|
{
|
||||||
$this->checkAndAddMailsFiles($iso_code, $files_list);
|
$this->checkAndAddMailsFiles($iso_code, $files_list);
|
||||||
$this->checkAndAddThemesFiles($files_list, $themes_selected);
|
$this->checkAndAddThemesFiles($files_list, $themes_selected);
|
||||||
|
$this->addNewTabs($iso_code, $files_list);
|
||||||
if (Validate::isLanguageFileName($_FILES['file']['name']))
|
if (Validate::isLanguageFileName($_FILES['file']['name']))
|
||||||
{
|
{
|
||||||
if (!Language::checkAndAddLanguage($iso_code))
|
if (!Language::checkAndAddLanguage($iso_code))
|
||||||
|
|||||||
Reference in New Issue
Block a user