Instalacja dwóch modułów z override klasy Dispatcher
Podczas instalacji modułu pretty clean urls wyskakuje błąd
Error!
Nie można enable modułu purls. Nie można zainstalować nakładki: Metoda setRequestUri zawarta w klasie Dispatcher została już zastąpiona przez moduł x13linkrewrite w wersji 1.0.2 na 2019-04-12 19:55:58 .
Instalacja modułów z tym samym override klasy Dispatcher
Witam,
wspomniany przez Pana błąd wyświetlający się w trakcie instalacji oznacza, że w sklepie został już zainstalowany inny moduł, który wykorzystuje ten sam override, który wykorzystuje moduł "pretty clean urls".
Krótko mówiąc:
- w sklepie wczesniej został zainstalowany moduł "x13linkrewrite" który wprowadził override klasy "dispatcher"
- teraz próbuje Pan zainstalować kolejny moduł, który wprowadza override klasy "dispatcher" i prestashop na to nie pozwala
Gdyby postąpił Pan odwrotnie i najpierw zainstalował moduł "pretty clean urls", wówczas instalacja "x13linkrewrite" nie byłaby możliwa. Nie jest to błąd modułu "x13linkrewrite" ani modułu "pretty clean urls". Jest to standardowe zachowanie prestashop w takiej sytuacji, które służy zabezpieczeniu sklepu przed ewentualnymi błędami jakie mogłyby wyniknąć z nieprawidłowego połączenia dwóch override.
wspomniany przez Pana błąd wyświetlający się w trakcie instalacji oznacza, że w sklepie został już zainstalowany inny moduł, który wykorzystuje ten sam override, który wykorzystuje moduł "pretty clean urls".
Krótko mówiąc:
- w sklepie wczesniej został zainstalowany moduł "x13linkrewrite" który wprowadził override klasy "dispatcher"
- teraz próbuje Pan zainstalować kolejny moduł, który wprowadza override klasy "dispatcher" i prestashop na to nie pozwala
Gdyby postąpił Pan odwrotnie i najpierw zainstalował moduł "pretty clean urls", wówczas instalacja "x13linkrewrite" nie byłaby możliwa. Nie jest to błąd modułu "x13linkrewrite" ani modułu "pretty clean urls". Jest to standardowe zachowanie prestashop w takiej sytuacji, które służy zabezpieczeniu sklepu przed ewentualnymi błędami jakie mogłyby wyniknąć z nieprawidłowego połączenia dwóch override.
Jak rozwiązać problem?
Rozwiązania są dwa zależne od Pana oczekiwań.
- Zakładając, że nie potrzebuje Pan modułu "x13linkrewrite" wystarczy go odinstalować a następnie zainstalować "pretty clean urls".
Przypuszczam jednak, że nie takie są oczekiwania. Dlatego proponuję punkt 2: - Zakładając, że chce Pan korzystać zarówno z "pretty clean urls" oraz "x13linkrewrite"
W tym przypadku niezbędne będzie połączenie dwóch override klasy "dispatcher" w jedną. Aby to zrobić, trzeba będzie połączyć pliki:
- /override/classes/Dispatcher.php (override wprowadzony przez moduł "x13linkrewrite")
- /modules/purls//override/classes/Dispatcher.php (override modułu "pretty clean urls"
Połączony plik umieścić w pierwotnym miejscu, tj:
- /override/classes/Dispatcher.php (override wprowadzony przez moduł "x13linkrewrite")
Następnie usuwamy plik:
- /modules/purls//override/classes/Dispatcher.php (override modułu "pretty clean urls"
Od tej pory mamy możliwość zainastalowania modułu "pretty clean urls" i korzystania jednocześnie z drugiego modułu. A całą procedurę powtarzamy za każdym razem, gdy chcemy instalować inny moduł chcący korzystać z override "dispatcher".
UWAGA!
Na etapie łączenia plików niezbędna jest wiedza z zakresu programowania PHP. Łączenie plików musi odbyć się z zasadami składni języka PHP oraz z zachowaniem funkcjonalności obu klas dispatcher.
Jeżeli jest taka konieczność to oferuję swoją pomoc. W tym przypadku do przeprowadzenia łączenia oraz instalacji niezbędny będzie dostęp do zaplecza oraz do plików FTP.
pozdrawiam,
miłosz
Komentarze
Prześlij komentarz