Polskie wsparcie PrestaShop
PrestaShop => Moduły => Wątek zaczęty 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ę
-
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.
-
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.
-
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