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.
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
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
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
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.
Możemy też zmienić kolejność wyświetlania modułu na stronie głównej zmieniając jego pozycję w panelu administracyjnym.
Nic nie stoi na przeszkodzie, żeby kolejny raz powielić moduł zastępując dwójki kolejną cyfrą.