Podczas wykonywania akualizacji sklepu opartego o PrestaShop 1.6.0.9 do najnowszej (na tę chwilę) wersji czyli do PrestaShop 1.6.1.24 zamiast strony głównej pojawia się biała strona.
Po włączeniu błędów w pliku:
config/defines.inc.php
Widzimy błąd:
Fatal error: Uncaught --> Smarty: Missing template name <-- thrown in /var/www/tools/smarty/sysplugins/smarty_internal_template.php on line 678
Co ciekawe – podstrony sklepu działają. Sklep wyświetla strony produków, kategorie, stronę kontaktową itp. Błąd występuje jedynie na stronie głównej.
Jak sobie poradzić z taką awarią?
Na wstępie trzeba napisać, że niestety nie udało się ustalić co może być dokładnie przyczyną tego błędu.. Wydaje się, że szablon nie jest do końca kompatybilny z najnowszą wersją PS 1.6 albo konieczne jest jego przeinstalowanie. Sugerował by to błąd podczas przełączania szablonu:
Property Shop->name is empty
W każdym razie możesz na szybko zafixować ten błąd i odblokować sklep.
Otwórz plik (okolice 673 linii):
tools/smarty/sysplugins/smarty_internal_template.php
I zamień kod:
public function __get($property_name) { switch ($property_name) { case 'source': if (strlen($this->template_resource) == 0) { throw new SmartyException('Missing template name'); }
Na:
public function __get($property_name) { switch ($property_name) { case 'source': if (strlen($this->template_resource) == 0) { #throw new SmartyException('Missing template name'); }
Po wstawieniu tego komentarza – strona główna sklepu powinna działać prawidłowo.
Ogólnie wykonywanie aktualizacji to dość karkołomna operacja. Wymaga wykonania kopii bezpieczeństwa bazy danych, plików. Uwzględnienia modyfikacji źródła itp. Jak widać można zablokować sklep z zupełnie niewiadomego powodu. Zapraszamy do skorzystania z naszej oferty. Akutalizujemy sklepy do najnowszej wersji PrestaShop 1.7 już od prehistorycznych wersji PrestaShop 1.4 🙂