Press "Enter" to skip to content

Problem z przypisaniem modułu do lewej kolumny – Request Timeout. Jak wpiąć moduł w dany HOOK przez bazę danych ?

Admin 0

O co chodzi z hookami w PrestaShop?

Jak wiadomo podstawą rozmieszczenia modułów i elementów w szablonie w PrestaShop są tzw. Hooki (przyczepy). Są to sloty w szablonie (lewa kolumna, prawa kolumna, stopka, nagłówek itp.) gdzie możemy przypiąć moduł. Oczywiście o ile jego twórca to przewidział, że można go tam wpiąć. Wykonujemy to przez opcję „Przemieszczanie modułu” widoczną w dziale „Pozycje”:

Problemy z przyczepianiem modułu do hooka

Niestety w zależności od wersji PHP i wersji PrestaShop może wystąpić problem techniczny z otworzeniem tej strony. Wynika to z tego, że skrypt musi przetworzyć dużą ilość danych.

Może wtedy pojawić się komunikat:

Request Timeout

This request takes too long to process, it is timed out by the server. If it should not be timed out, please contact administrator of this web site to increase 'Connection Timeout'.

Problem wystąpił w sklepie PrestaShop w wersji 1.7.3.4, PHP: 5.6.40 

Wypada wtedy próbować zwiększyć możlości serwera, zwiększyć werję PHP itp. Jednak te operacje mogą nastręczać dużo problemów technicznych. Szczególnie jeśli chodzi o kompatybilność modułów w nowszej wersji PHP.

Zawsze możemy wykonać „ręcznie” to przypisanie. Czyli wykonać de facto odp. zapytanie do bazy danych, które przypisze wybrany moduł w wybrane miejsce.

Pokażemy to na przykładzie przypisania modułu filtrującego („Nawigacja Fasetowa”) do lewej kolumny.

Operacja analogicznie będzie działać w wersji PS 1.7 jak i PS 1.6. Jedynie w innych miejscach wykonuje się kopię bezpieczeństwa albo moduły mogą mieć inną „nazwę techniczną”

Kopia bezpieczeństwa i PMA

Po pierwsze primo wykonaj kopię bazy danych:

Zaawansowane -> Baza danych

Tak na wszelki wypadek gdyby nasze manipulacje coś zepsuły.

Po drugie primo 🙂 Ustal link do PhpMyAdmin na Twoim serwerze i tam się zaloguj.

Jak znaleźć ten link i dane do logowania poruszaliśmy m.in. tutaj:

naprawa błędu „zakresy nachodzą na siebie” w Presta Shop

Przypisanie modułu do hooka przez bazę danych

Na początek ustalamy „nazwę techniczną” modułu, który chcemy przypisać. Wchodzimy w jego konfigurację. Nazwa techniczna będzie widoczna na samej górze:

Czyli będzie to tutaj: ps_facetedsearch

Jeśli moduł nie ma strony konfiguracji jak np. Płatność przy odbiorze użyj wyszukiwarki w adminie. Wpisz tam nazwę modułu. Pojawi się on w wynikach wyszukiwania. Jak na niego najedziesz myszą będzie do niego kierować link. W parametrze $_GET[’module_name’] linku bedzie widoczna nazwa modułu. Odczytasz ją kopiując ten link. Dla przykładu: module_name=ps_cashondelivery czyli nazwą modułu będzie tutaj ps_cashondelivery itd.

Jak już mamy nazwę modułu w PhpMyAdmin zaznacz bazę sklepu, wciśnij SQL i wywołaj zapytanie:

SELECT `id_module` FROM `ps_module` WHERE `name` = 'ps_facetedsearch';

Oczywiście użyj odp. dla Twojej bazy prefixu bazy danych MySQL. W naszych zapytaniach są to: ps_. Prefixy używamy w nazwach tabel.

Wynik tego zapytania da nam ID modulu który chcemy przypiąć. Dla przykładu zwróci:

101

Teraz ustalamy ID hooka:

SELECT `id_hook` FROM `ps_hook` WHERE `name` = 'displayLeftColumn';

Nazwę hooka znajemy po prostu na stronie „Pozycje”. Jest ona widoczna w nagłówku danego Hooka na liscie hooków:

OK zwróci to np.

12

OK mamy wszystko czego potrzebujemy. Teraz wystarczy, że wywołasz poniższe zapytanie bazując na zwróconych wyżej danych:

INSERT INTO `ps_hook_module`(`id_module`, `id_shop`, `id_hook`, `position`) VALUES (101,1,12,1);

 

Oczywiście podajemy tutaj ID sklepu = 1. Jeśli Twój ID sklepu jest inny odp. to zmodyfikuj.

Dzięki temu moduł się przypisze do wybranego hooka (tutaj do lewej kolumny) na samym początku. Będzie można go poprzestawiać w dziale „Pozycje” za pomocą tych strzałek:

 

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 !
Aktualizacja sklepu PrestaShop -> pusta strona główna -> wszystko mówiący…