Zawartość artykułu
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ć.
Najpierw znajdujemy plik konfiguracyjny. Wgrywamy na serwer do katalogu głównego sklepu plik o nazwie:
php_info.php
O zawartości:
<?php phpinfo(); ?>
Uruchamiamy go wchodząc pod adres:
http://nazwasklepu.pl/php_info.php
w nazwasklepu.pl podaj Twoją domenę
Odczytujemy linijkę: „Loaded Configuration File”
Jeśli masz serwer w wersji PHP5, twoja ścieżka może być inna np: /etc/php5/apache2/php.ini
Aby zmienić ustawienia w konfiguracji logujemy się na konto root:
sudo su
Tworzymy kopię pliku:
cp /etc/php/7.2/apache2/php.ini /etc/php/7.2/apache2/php.ini.back
Edytujemy go:
nano /etc/php/7.2/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
Uwaga, jeśli na początku tego wiersza znajduje się średnik np: ;max_input_vars = 1000 to zwiększając wartość pola dodatkowo usuwamy ten średnik. Stanowi on komentarz i jeśli jest użyty ta linijka kodu jest pomijana.
Zapisujemy plik skrótem CTRL + O
Wyłączamy edytor sktótem CTRL + X
Wczytujemy nową konfigurację:
/etc/init.d/apache2 restart
Upewniamy się, że nowa konfiguracja jest wczytana ponownie wchodząc na adres:
http://nazwasklepu.pl/php_info.php
I znajdując wartość pola max_input_vars
Jeśli wszystko się zgadza kasujemy ten plik php z serwera.
Uwaga! Usunięcie tego pliku jest ekstremalnie ważne z powodów bezpieczeństwa.
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.
- Należy utworzyć klon (zainstalować idealną kopię) sklepu na serwerze gdzie nie ma tego limitu.
- Wygenerować tłumaczenia
- 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 wyżej wspomnianego 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.
[…] Tym sposobem możemy borykać sie z tym opisywanym przez nas problemem: https://pskrk.com/wgranie-tlumaczen-do-sklepu-i-blad-z-ustawieniem-max_input_vars/ […]
[…] jednej stronie – można było je rozwinąć i od razu ją znaleźć. Co prawda napotykało to problem max_input_vars, ale większość hostingów już to […]