During our PrestaShop 1.5 testing, we came upon the following error when attempting to install PrestaShop 1.5:
Configure shop information
In this file, install/error_log, we found the following error:
[14-May-2012 13:54:30] PHP Warning: simplexml_load_string() [<a href='function.simplexml-load-string'>function.simplexml-load-string</a>]: Entity: line 1: parser error : Space required after the Public Identifier in /home/userna5/prestashop.inmotiontesting.com/classes/LocalizationPack.php on line 41
Therefore, we reviewed this file – classes/LocalizationPack.php – and saw the problem was with the $file
variable being passed here:
public function loadLocalisationPack($file, $selection, $install_mode = false) { if (!$xml = simplexml_load_string($file)) return false;
During our troubleshooting we emailed ourselves the $file
variable (using the php mail function) and found out the problem was in this file – install/models/install.php – at line 401:
$localization_file_content = @Tools::file_get_contents('https://api.prestashop.com/download/localization/'.$version.'/'.$data['shop_country'].'.xml');
What was happening is that $localization_file_content
was set to https://api.prestashop.com/download/localization/15/us.xml
, however that file did not exist. At the time of this writing, that URL was resulting in a 404 error. To resolve this issue, we added the following line in install/models/install.php
:
$localization_file_content = @Tools::file_get_contents('https://api.prestashop.com/download/localization/'.$version.'/'.$data['shop_country'].'.xml');
unset($localization_file_content)
;
The unset function deleted the variable, and therefore ran the following code, which creates the contents based upon files already stored within PrestaShop 1.5 (instead of trying to download them from api.prestashop.com – which is resulting in a 404 error)
if (!$localization_file_content) { $localization_file = _PS_ROOT_DIR_.'/localization/default.xml'; if (file_exists(_PS_ROOT_DIR_.'/localization/'.$data['shop_country'].'.xml')) $localization_file = _PS_ROOT_DIR_.'/localization/'.$data['shop_country'].'.xml'; $localization_file_content = file_get_contents($localization_file); }