Press "Enter" to skip to content

PrestaShop 1.7 – umieszczenie baneru w stopce sklepu

Admin 0

Opis działania.

W wersji demo PrestaShop 1.7 mamy do dyspozycji baner na stronie głównej. Możemy go w prosty sposób przenieść do stopki i umieścić tam dowolną grafikę. Na grafikę może być nałożony dowolny link edytowalny w edycji modułu. W każdej chwili zdjęcie może być podmienione na inne bez podtrzeby programowania.

Modyfikacja dotyczy najnowszej (obecnie) wersji PrestaShop 1.7.8.2 i powinna zadziałać w każdej wersji 1.7.  Bazujemy tutaj wyłącznie na kodzie i modulach dostępnych „na starcie” w PrestaShop, więc nic nie musimy dodatkowo doinstalowywać.

Dla początkujących programistów PrestaShop artykuł może stanowić wprowadzenie do zasady funkcjonowania hooków (przyczepów) w architekturze tego CMS. Dodatkowo poznasz na przykładzie jak działa przekazywanie zmiennych z plików PHP modułu do szablonów TPL. Zapraszamy do lektury ! 🙂

Kopia zapasowa i przygotowanie hooków

Przed podjęciem prac wykonaj kopię zapasową w dziale:

Zaawansowane -> Baza danych

Najpierw musimy zrobić miejsce pod ten baner. Może być on umieszczony tak jak na screenie po prawej albo w dowolnej z 4 kolumn.

Aby potem ustawić banner w konkretnej kolumnie należy przesunać przyczepione do hooka moduły na stronie „Pozycje” w adminie

Wchodzimy w adminie w :

Wygląd -> Pozycje -> (znajdujemy sekcję) displayFooter

Usuwamy moduł: Informacje kontaktowe za pomocą opcji pod 3-ema kropkami

Jednocześnie w ten sam sposób odczepiamy moduł baner z hooka displayHome:

Przyczepienie modułu Banner do hooka stopki

Ok, w stopce zrobiła się dziura, którą możemy wykorzystać. Przyczepiamy do niego moduł Banner. Wciśnij przycisk „Przemieszczanie modułu” (na ww. stronie Pozycje) i do hooka displayFooter wstawiamy moduł Banner:

Zatwierdzamy operację przyciskiem pod formularzem.

Podmiana zdjęcia

Podmieniamy obrazek w banerze na kwadratowy, bo w tym momencie banner nie mieści się w kolumnie:

W dziale „Moduły” znajdź moduł Banner (ps_banner) i tam wstaw wybrany obrazek.

Wyłącz przy okazji cache w dziale:

Zaawansowane -> Wydajność

zaznaczając opcję ze screena:

Aby mieś pewność, że wszystko jest na nowo wczytane – wciśnij przycisk na górze strony:

Wyczyść pamięć podręczną

Edycja plików .tpl i .php

Otwieramy plik:

themes/classic/modules/ps_banner/ps_banner.tpl

Przed kodem HTML w tym pliku wstawiamy:

{if $hook_name == 'displayFooter'}
<div class="col-md-3 links block">
<a class="banner hidden-sm-down" href="{$banner_img}" title="{$banner_desc}">
  {if isset($banner_img)}
    <img src="{$banner_img}" alt="{$banner_desc}" title="{$banner_desc}" class="img-fluid" loading="lazy">
  {else}
    <span>{$banner_desc}</span>
  {/if}
</a>
</div>
{else}

Na końcu zamykamy klamrą:

{/if}

Następnym krokiem jest mała modyfikacja pliku PHP w module ps_banner:

Otwórz plik:

modules/ps_banner/ps_banner.php

Znajdź funkcję:

public function getWidgetVariables()

I zamień kod:

return array(
           'banner_link' => $this->updateUrl($banner_link),
           'banner_desc' => Configuration::get('BANNER_DESC', $this->context->language->id)
       );

Na:

return array(
    'banner_link' => $this->updateUrl($banner_link),
    'hook_name' => $hookName,
    'banner_desc' => Configuration::get('BANNER_DESC', $this->context->language->id)
);

Czyli dopisz nową zmienną hook_name której wartość ($hookName) będzie przekazywana z pliku PHP do szablonu TPL.

Gotowe! Baner jest już widoczny w stopce i moze linkować do dowolnego łącza, które zdeklarujemy w edycji modułu Banner (ps_banner):

 

 

 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

Zobacz także !
Klient przypisany do nowej grupy klientów widzi zamiast produktów komunikat:…