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.

Jak rozwiązać problem?

Rozwiązania są dwa zależne od Pana oczekiwań. 
  1. 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:
  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

0 komentarze:

Prześlij komentarz