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