Jak wykonać duplikat modułu PrestaShop


Zdarzają się takie sytuacje, w których przydałaby się kopia danego modułu. Wyobraźmy sobie, że potrzebujemy wyświetlić dodatkowe produkty na stronie głównej. Można próbować pisać dodatkowe rozszerzenie, ale można też skopiować i dostosować istniejące rozwiązanie.

Wszelkie zmiany i modyfikacje wykonujesz na własną odpowiedzialność. Jeśli potrzebujesz konsultacji specjalisty PrestaShop to skontaktuj się z nami.

W tym tutorialu będziemy kopiować moduł featured products. Dzięki duplikatowi, wyświetlimy większą liczbę produktów na stronie głównej.

Duplicate PrestaShop module

Sposób kopiowania można próbować przenieść na inne moduły. Kroki jakie podejmiemy będą następujące:
1. Skopiowanie modułu
2. Zmiana podstawowych parametrów modułu PrestaShop
3. Instalacja

Pierwszym krokiem jest skopiowanie plików modułu. Korzystając z któregoś klienta ftp (np. filezilla) przechodzimy do katalogu modules i ściągamy cały folder ps_featuredproducts. Następnie zmieniamy jego nazwę na ps_featuredproducts_2. To samo robimy z plikiem php, którego nazwa jest taka sama jak początkowa nazwa modułu. Plik ma się nazywać ps_featuredproducts_2.php

Duplicate PrestaShop module

Otwieramy do edycji plik php, który wcześniej edytowaliśmy i dokonujemy kilku zmian. Po pierwsze zmieniamy nazwę klasy, nazwę modułu ($this->name), nazwę wyświetlaną ($this->displayName) oraz ścieżkę do pliku widoku:

class Ps_FeaturedProducts_2 extends Module implements WidgetInterface
{
    private $templateFile;

    public function __construct()
    {
        $this->name = 'ps_featuredproducts_2';
        ...
        $this->displayName = $this->trans('Featured products 2',...
        ...
        $this->templateFile = 'module:ps_featuredproducts_2/...



Teraz szukamy wszystkich wartości, które są zapisywane do bazy danych. W przypadku tego modułu nie ma potrzeby zmiany nazwy tabeli w bazie danych ponieważ wykorzystuje on jedynie uniwersalną tabelę configuration.

W kodzie znajdują się trzy „klucze”, których wartości zmieniają się w wyżej wymienionej tabeli. Są to HOME_FEATURED_CAT, HOME_FEATURED_NBR i HOME_FEATURED_RANDOMIZE. Najprościej będzie je zmienić korzystając z narzędzia podmiany, często dostępnego po wciśnięciu kombinacji klawiszy Ctrl + h. Dla ułatwienia zamienimy ciąg HOME_FEATURED na HOME_FEATURED_2

Duplicate PrestaShop module

Jeśli komenda  Ctrl + h z jakiegoś powodu nie działa to ręcznie podmień wszystkie wyszukania ciągu HOME_FEATURED na HOME_FEATURED_2.

Kolejnym krokiem jest podmiana parametrów w funkcji tłumaczącej. Zamieniamy ciąg Modules.Featuredproducts na Modules.Featuredproducts2. Taką modyfikację musimy wykonać też w pliku widoku. W związku z tym, oprócz edycji pliku ps_featuredproducts_2.php edytujemy też ps_featuredproducts_2\views\templates\hook\ps_featuredproducts.tpl

Duplicate PrestaShop module

W wyżej wymienionym pliku można też zmienić nazwę sekcji. Np. z Our Products na Best Products. 

W celu ostylowania w sposób jaki zostało to zrobione w domyślnym module, warto dodać klasy na elementy section i h1 oraz zmienić dolny link:

<section class="featured-products clearfix">
  <h1 class="h1 products-section-title text-uppercase">{l s='Best Products' d='Modules.Featuredproducts2.Shop'}</h1>
…
<a class="all-product-link float-xs-left float-md-right h4" href="{$allProductsLink}">{l s='All products' d='Modules.Featuredproducts2.Shop'}<i class="material-icons"></i></a>



Zapisujemy edytowane pliki. Jeśli zmian nie dokonywaliśmy na serwerze to przerzucamy cały katalog  ps_featuredproducts_2 do folderu modules na serwerze.

Kolejnym etapem jest instalacja modułu po stronie panelu administracyjnego.

Duplicate PrestaShop module

Możemy też zmienić kolejność wyświetlania modułu na stronie głównej zmieniając jego pozycję w panelu administracyjnym.

Duplicate PrestaShop module

Nic nie stoi na przeszkodzie, żeby kolejny raz powielić moduł zastępując dwójki kolejną cyfrą.

W celu zapewnienia maksymalnej wygody użytkowników przy korzystaniu z witryny ta strona stosuje pliki cookies. Szczegóły w naszej Polityce prywatności. Kliknij " Zgadzam się", aby ta informacja nie wyświetlała się więcej