Press "Enter" to skip to content

wgranie tłumaczeń do sklepu i błąd z ustawieniem max_input_vars [Aktualizacja]

Admin 2

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ć.

Polecamy tutaj blog (linuxporady.pl) o tematyce około dotyczącej Linuxa, gdzie można znaleźć inne artykułu na temat serwerów VPS.

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.

  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 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.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

Zobacz także !
Jak naprawić błąd z kontrolerem "AdminControllerCore" w sklepach PrestaShop 1.6.x…