Polskie wsparcie PrestaShop

PrestaShop => Moduły => Wątek zaczęty przez: kapka w Marzec 13, 2018, 10:11:07 am

Tytuł: Zaczepianie modułu
Wiadomość wysłana przez: kapka w Marzec 13, 2018, 10:11:07 am
Witam,

 

Mam prośbę/pytanie o wyjaśnienie jak działają zaczepy w prestashop.

Kumpel poprosił mnie o przygotowanie dla niego prostego modułu (moduł nazywa się "środkipomocnicze").

Moduł jest przygotowany (formularz z dostępnym asortymentem...).

Teraz nie mogę sobie poradzić z podpięciem tego modułu do zaczepu "displayHome".

Problem polega na tym, że moduł jest wyświetlany ale wyświetla się na samym początku strony mimo, że w zapleczu strony wyświetla się w odpowiedniej pozycji.

Próbowałem zmieniać jego kolejność tzn. ustawic go pod slajderem przed slajderem itp. bez zmian. efekt można zobaczyć tu http://dawid.kapka.net.pl/dawid/

Poniżej funkcja install
public function install() {

  if (Shop::isFeatureActive()) {
Shop::setContext(Shop::CONTEXT_ALL);
  }

  if (!parent::install() || !$this->registerHook('displayHome')) {
return false;
  }

$this->installDb();
return true;
}

public function hookDisplayHome(){
return $this->displayFront();
}


Na stronie docelowej moduł będzie znajdował się na jednej z podstron i tylko tam.

I tak przy okazji jak można było skomplikować tak prostą sprawę (przykładowe rozwiązania to joomla, wordpress)?

Pozdrawiam i z góry dziękuję
Tytuł: Odp: Zaczepianie modułu
Wiadomość wysłana przez: west w Marzec 14, 2018, 09:18:42 am
Podejrzyj sobie index.tpl. Display home jest standardowo poniżej "tabów". Masz dwa wyjścia zmieniasz index.tpl lub dopisujesz własny hook i umieszczasz go gdzie chcesz.
p.s. programowanie hook w PS jest znacznie prostsze od WP czy Joomla. W PS 1.7 masz nawet widgety. Gdzie można zaczepiać moduł w instancji. 
Tytuł: Odp: Zaczepianie modułu
Wiadomość wysłana przez: kapka w Marzec 14, 2018, 02:31:15 pm
Dzięki za pomoc.

udało się ogarnąć ten temat.

Jednak mam jeszcze jedno pytanie w jaki sposób ustawić moduł aby wyświetlał się tylko na jednej podstronie?
Napisałem tez o tym na forum ogólnym pod tym adresem
https://www.prestashop.com/forums/topic/687200-mod%C3%B3%C5%82-tylko-w-jednej-pozycji-menu/ (https://www.prestashop.com/forums/topic/687200-mod%C3%B3%C5%82-tylko-w-jednej-pozycji-menu/)

Wiem że w przemieszczaniu modułu są wyjątki które wybrałem w zasadzie zaznaczyłem wszystko z wyjątkiem CMS i teraz moduł wyświetla się na wszystkich podstronach z wyjątkiem strony głównej no i dobrze. Teraz potrzebuję wykluczyć z pozostałych podstron i pozostawić tylko w pozycji zaznaczonej na załączonym obrazku.
Tytuł: Odp: Zaczepianie modułu
Wiadomość wysłana przez: west w Marzec 15, 2018, 07:52:26 am
najprościej przez css klasy nadawane są tak:
<body id="cms" class="lang-pl country-pl currency-pln layout-full-width page-cms tax-display-enabled cms-id-1">albo warunkowo musisz wyciągnąć zmienną id cms i dodać warunek if