1. błąd z tłumaczeniami związany z parametrem max_input_vars

Zapewne podczas użytkowania sklepu natrafiłeś na dość niekomfortową sytuację związaną z tłumaczeniami.

Dla przykładu wchodzimy w dział:

Lokalizacja » Tłumaczenia »  Modyfikuj tłumaczenia » Tłumaczenie zainstalowanych modułów » Wybór szablonu » Język polski »  Modyfikuj:

Następnie widzimy rubryki do wypełnienia. Po skrupulatnej pracy związanej z wprowadzeniem tekstów – następuje problem z zapisaniem, a nasze dane które wprowadziliśmy są utracone

Uwaga, Twoja konfiguracja PHP ogranicza maksymalną ilość pól przesyłanych za pomocą formularza
1000 dla max_input_vars.
Poproś swojego usługodawcę hostingu o zwiększenie tego limitu do przynajmniej 2173, albo będziesz musiał edytować pliki tłumaczenia.

Jest to niewątpliwie jedna z poważniejszych uchybień projektowych Presta Shop. W zasadzie nie można jej poprawić programistycznie.  Jest jednak parę dróg wyjścia z tej sytuacji.

2. Własnoręczna zmiana ustawień serwera

Jeżeli dysponujemy serwerem VPS (z możliwością zalogowania się do linii komend systemu operacyjnego – zazwyczaj opartego o Linux) należy w zasadzie zmodyfikować 1 parametr w konfiguracji i go zrestartować:

Logujemy się na konto root:

sudo su

Znajdujemy plik konfiguracyjny:

locate php.ini

Wybieramy plik osadzony w katalogu o początku ścieżki /etc/

W naszym przypadku będzie to:

/etc/php5/apache2/php.ini

Tworzymy kopię pliku:

cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.back

Edytujemy go:

nano /etc/php5/apache2/php.ini

Znajdujemy wystąpienie naszego ustawienia poprzez skrót CTRL + W

Zamieniamy wystapienie w linii:

max_input_vars = 1000

Na większe – np. poprzez dopisanie zera:

max_input_vars = 10000

Zapisujemy plik skrótem CTRL + O

Wyłączamy edytor sktótem CTRL + X

Wczytujemy nową konfigurację:

service apache2 reload

3. Modyfikacja ustawień serwera przez jego administratora

Jeśli nie dysponujemy dostępem do serwera opisanym w punkcie powyżej – należy zgłosić ten problem u administratora podsyłając tekst tego błędu lub każąc zwiększyć limit max_input_vars do określonego w błędzie poziomu.

Niekiedy taka możliwość jest dostępna wręcz z panelu zarządzania hostingiem (serwerem). Należy tutaj to wyjaśnić z BOK naszego dostawcy.

4. Wgranie tłumaczeń na klonie sklepu

a) rozwiązanie problemu:

Jeśli wszystkie nasze powyższe wysiłki spełzną na niczym – jest rozwiązanie które zawsze się sprawdzi.

  1. Należy utworzyć klon (zainstalować idealną kopię) sklepu na serwerze gdzie nie ma tego limitu.
  2. Wygenerować tłumaczenia
  3. Przegrać na docelowy serwer zmienione pliki.

b) serwer do instalacji klona sklepu:

W tym celu może posłużyć np. darmowy serwer WAMP (Windows Apache MySQL Phpmyadmin) który instalujemy na naszym komputerze.

Możemy także wykorzystać np. darmowe testowe okresy na serwisach hostingowych, gdzie nie ma tego limitu.

Dla zaawansowanych użytkowników polecamy instalację darmowego serwera LAMP (Windows Apache MySQL Phpmyadmin) na dowolnej dystrybucji Linuxa. Następnie instalację na nim sklepu.

Poniższe artykuły z tego bloga mogą się okazać przydatne:

http://linuxporady.pl/zestaw-podstawowych-pakietow-dla-serwera-www-np-opartego-o-vps/

http://linuxporady.pl/najprostrze-tworzenie-wirtualnego-hosta-vhosta-na-serwerze-lamp-lub-np/

c) na co zwrócić uwagę podczas tworzenia kopii sklepu:

W naszym przypadku nie będzie potrzebna wierna – idealna kopia sklepu. Podczas kopiowania plików z serwera możemy pominąć poniższe foldery:


/cache
/img
/log
/upload
/download

Ważne aby pliki miały określone uprawnienia zapisu. Szczególnie foldery:


/cache (utworzyć go pusty)
/themes
/modules

Jednak baza danych musi być w całości odtworzona. Musimy mieć pełną listę modułów jak ze sklepu docelowego.

d) wykonanie tłumaczeń i kopiowanie plików

Gdy już mamy środowisko gdzie wygenerujemy tłumaczenia – wchodzimy do sekcji tak jak opisano na początku artykułu:

Lokalizacja » Tłumaczenia »  Modyfikuj tłumaczenia » Tłumaczenie zainstalowanych modułów » Wybór szablonu » Język polski »  Modyfikuj:

Wprowadzamy kilka testowych tłumaczeń i sprawdzamy czy błąd się nie pojawił. Jeśli działa to bez zarzutu – wprowadzamy wszystkie tłumaczenia.

Po zapisaniu plików zmienione pliki to przeważnie:


themes/[NASZ-SZABLON]/modules/[WYBRANY MODUŁ]/translations/pl.php

Lub inny symbol języka – jak nie dotyczy on polskiego np. de.php

Inny zasadniczy plik, który może ulec zmianie podczas tej operacji to:


themes/[NASZ-SZALBON]/lang/pl.php

Jest on modyfikowany w przypadku tłumaczenia stron szablonu. Np. opisanego w tym artykule.

5. Podsumowanie

Jak widać jest wiele dróg rozwiązania tego dość nieprzyjemnego problemu. Jeśli pokazane tutaj wskazówki wykraczają poza Twoje możliwości lub kompetencje – zapraszamy do kontaktu z naszym zespołem celem pomocy przy tym zagadnieniu. Prosimy o kontakt w komentarzach lub za pomocą danych kontaktowych.

Przy okazji niezmiennie przypominamy o wykonywaniu kopii bezpieczeństwa (plików i bazy danych) przed wszelkimi tego typu manipulacjami na sklepie.

Share This:

Zostaw komentarz

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