//fix install bug when no internet connection

This commit is contained in:
vAugagneur
2013-03-26 10:46:44 +01:00
parent 65ef8c7053
commit 016cdc1685
2 changed files with 13 additions and 6 deletions
+9 -4
View File
@@ -684,7 +684,7 @@ class LanguageCore extends ObjectModel
return Tools::generateHtaccess(); return Tools::generateHtaccess();
} }
public static function checkAndAddLanguage($iso_code, $lang_pack = false, $only_add = false) public static function checkAndAddLanguage($iso_code, $lang_pack = false, $only_add = false, $params_lang = null)
{ {
if (Language::getIdByIso($iso_code)) if (Language::getIdByIso($iso_code))
return true; return true;
@@ -703,6 +703,11 @@ class LanguageCore extends ObjectModel
&& isset($lang_pack->iso_code)) && isset($lang_pack->iso_code))
$lang->name = $lang_pack->name; $lang->name = $lang_pack->name;
} }
elseif ($params_lang !== null && is_array($params_lang))
{
foreach ($params_lang as $key => $value)
$lang->$key = $value;
}
else else
return false; return false;
@@ -770,7 +775,7 @@ class LanguageCore extends ObjectModel
return self::$countActiveLanguages; return self::$countActiveLanguages;
} }
public static function downloadAndInstallLanguagePack($iso, $version = null) public static function downloadAndInstallLanguagePack($iso, $version = null, $params = null)
{ {
require_once(_PS_TOOL_DIR_.'tar/Archive_Tar.php'); require_once(_PS_TOOL_DIR_.'tar/Archive_Tar.php');
@@ -779,7 +784,7 @@ class LanguageCore extends ObjectModel
if ($version == null) if ($version == null)
$version = _PS_VERSION_; $version = _PS_VERSION_;
$lang_pack = false;
$lang_pack_ok = false; $lang_pack_ok = false;
$errors = array(); $errors = array();
$file = _PS_TRANSLATIONS_DIR_.$iso.'.gzip'; $file = _PS_TRANSLATIONS_DIR_.$iso.'.gzip';
@@ -801,7 +806,7 @@ class LanguageCore extends ObjectModel
AdminTranslationsController::checkAndAddMailsFiles($iso, $files_list); AdminTranslationsController::checkAndAddMailsFiles($iso, $files_list);
AdminTranslationsController::addNewTabs($iso, $files_list); AdminTranslationsController::addNewTabs($iso, $files_list);
} }
if (!Language::checkAndAddLanguage((string)$iso, $lang_pack)) if (!Language::checkAndAddLanguage((string)$iso, $lang_pack, false, $params))
$errors[] = Tools::displayError('An error occurred while creating the language: ').(string)$iso; $errors[] = Tools::displayError('An error occurred while creating the language: ').(string)$iso;
@unlink($file); @unlink($file);
} }
+4 -2
View File
@@ -306,11 +306,13 @@ class InstallModelInstall extends InstallAbstractModel
if (!$xml = @simplexml_load_file(_PS_INSTALL_LANGS_PATH_.$iso.'/language.xml')) if (!$xml = @simplexml_load_file(_PS_INSTALL_LANGS_PATH_.$iso.'/language.xml'))
throw new PrestashopInstallerException($this->language->l('File "language.xml" not valid for language iso "%s"', $iso)); throw new PrestashopInstallerException($this->language->l('File "language.xml" not valid for language iso "%s"', $iso));
$params_lang = array('name' => (string)$xml->name, 'iso_code' => (string)$xml->language_code);
if (InstallSession::getInstance()->safe_mode) if (InstallSession::getInstance()->safe_mode)
Language::checkAndAddLanguage($iso, false, true); Language::checkAndAddLanguage($iso, false, true, $params_lang);
else else
Language::downloadAndInstallLanguagePack($iso, _PS_INSTALL_VERSION_); Language::downloadAndInstallLanguagePack($iso, _PS_INSTALL_VERSION_, $params_lang);
if (!$id_lang = Language::getIdByIso($iso)) if (!$id_lang = Language::getIdByIso($iso))
throw new PrestashopInstallerException($this->language->l('Cannot install language "%s"', ($xml->name) ? $xml->name : $iso)); throw new PrestashopInstallerException($this->language->l('Cannot install language "%s"', ($xml->name) ? $xml->name : $iso));