Jump to content
Martin-WulkSoft

Potwierdzenie hipotezy

Recommended Posts

Bawiłem się modułem blockspecial, dokonywałem zmian w blockspecial.php i po odświerzeniu strony widziałem zmiany.

 

Gdy próbowałem zmienić blockspecial.tpl, który znajdował się w modules/blockspecial/ nie widziałem żadnych zmian, czyściłem plik do zera i tak widziałem blok bez zmian.

 

Walczyłem z cachem i kompilacją, brakowało mi już pomysłów co może być nie tak, ale pomyślałem że to aż niemożliwe i wyszukałem wszystko co ma nazwę blockspecial.  Okazało się że jest jeszcze inny plik blockspecial.tpl który leży w \themes\default\modules\blockspecials\

 

Zastanawiałem się dlaczego to zostało tu wrzucony i doszłem do wniosku że dzięki temu osoba odpowiedzialna za tworzenie wyglądu może każdego themes-a stworzyć innego tp. 

 

Czy móje wnioski są prawidłowe ?

Share this post


Link to post
Share on other sites

jak najbardziej prawidłowe, cały proces nazywa się "override" 

więcej na ten temat możesz poczytać w dokumentacji: http://doc.prestashop.com/display/PS15/Overriding+default+behaviors

 

Czyli jeżli chce napisać moduł, który korzysta np:  z tablicy zawierającej produkty przecenione, a w klasie Product znajduje się tylko funkcja zwracająca jeden losowy produkt to mogę wziąść oryginalną klasę Product dodać swoją metodę i umieścić w lokalizacji mojego modułu  /modules/my_module/override/classes/  i koszystać tak jakby ona tam była oryginalną clasą presty. Czy dobrzez zrozumiałem?

Edited by chojnam (see edit history)

Share this post


Link to post
Share on other sites

tak, wszystko się zgadza

Ostatnia wątpliwość

Czy jeśli dodam swoj plik z klasą Product do override to automatycznie oryginalny przestaje być widoczny ?

Czy istnieje możliwość, aby presta połączyła mój plik z klasą Product(który zwawierał by tylko jedną metodę ) z oryginalnym plikiem klasy Product  ? 

Share this post


Link to post
Share on other sites

Tak, dodajesz plik do katalogu override po czym kasujesz plik cache/class.index.php - teraz Twój plik powinien być wczytywany dla systemu zgodnie z zasadą działania "extend" w języku PHP :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More