Press "Enter" to skip to content

błąd Fatal error: Access to undeclared static property: Smarty::$_CHARSET (PrestaShop 1.4)

Admin 0

Błąd:

jest spowodowany brakiem zdeklarowanych zmiennych statycznych w pliku konfiguracyjnym przy włączonej wersji 3 systemu parsowania Smarty.

Są 2 rozwiązania tego enigmatycznego problemu.

Dodanie brakujących zmiennych w pliku konfiguracyjnym.

Nam to pomogło. Nie wiem czy w całości rozwiązuje to problem, ale na pewno na szybkości uruchomimy sklep i w międzyczasie będziemy mogli szukać źródła problemu.

Edytujemy plik:

I za raz po kodzie (okolice 115 linii):

Dodajemy:

Druga metoda – włączenie wersji Smarty 2 (downgrade)

Może nie jest ona lekiem na całe zło w tej sytuacji (bo wiąże się z ewentualną modyfikacją szablonu – o czym dalej),

ale też może być wyjściem z sytuacji.

W tym celu musimy ustawić Smarty v2 w klikamy w zakładkę „Ustawienia” w zapleczu sklepu i wybieramy tę opcję:

SmartProjects.pl - Strony www Kraków

Następnie potwierdzamy poprzez „Zapisz”.

Uwaga! Zmiana silnika smarty z wersji 3 na 2 (downgrade) wiąże się, zgodnie z opisem z potrzebą dostosowania szablonu (pliki z rozszerzeniem .tpl) do tej wersji.

Z grubsza najważniejszą różnicą pomiędzy tymi wersjami jest osadzanie skryprów JavaScript w obrębie tych plików.

W starej wersji – Smarty v2 za każdym razem jak deklarowaliśmy jakis skryp JavaScript i wpiswaliśmy jego kod, otaczaliśmy to tagiem wyłączającym parsowanie smarty- literal:

Dla przykładu, kod działajacy w Smarty2:

Wskazówka: zwróć uwagę że wewnątrz bloku {literal} są wyłączenia tego bloku na potrzebę deklarowania zmiennych Smarty 😉

Kod działający w Smarty3:

Po prostu Smarty między tymi znacznikami zupełnie nie parsuje tego co się tam znajduje. Często kod JavaScript wygląda jak np. dekalrowanie zmiennych w Smarty – dlatego istniała potrzeba jego użycia.

W nowej wersji Smarty (v3) – ten znacznik nie jest używany. W takim wypadku po przełączeniu wersji mogą wystapić błędy w miejscach gdzie zazwyczaj programiści wstawiali ten znacznik wykluczający literal. Przełączenie między tymi wierszami i natrafienie na błędy typu (związane z powyżej prezentowanym kodem):

Powoduje potrzebę dostosowania szablonu do starej wersji Smarty. Zachęcamy do samodzielnej próby przeprogramowania takiego szablonu (służymy wtedy pomocą w komentarzach) lub możesz nam zlecić takie wykonanie: Zamów wdrożenie lub modyfikację PrestaShop

 

Share This:

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *