Polskie wsparcie PrestaShop
PrestaShop => Wygląd => Wątek zaczęty przez: lustfingers w Sierpień 09, 2015, 09:40:58 pm
-
Witam, dostosowuje moduł pod swój sklep i natknąłem sie na coś dziwnego, przynajmniej dla mnie, w module dodałem własny hook
w funkcji install dodałem:
!$this->registerHook('displayWlasnyHook') ||
nastepnie wywołuje jego zawartość standardowo poprzez:
public function hookDisplayWlasnyHook()
później w pliku product.tpl daje:
{hook h="displayWlasnyHook"}
i zawartośc się wyświetla, natomiast gdy to samo dodam w pliku product-list.tpl hook w ogóle nie jest ładowany.
Co robię nie tak?
-
a co masz w funkcji hookdisplayWlasnyHook(){} odwolanie do innego hooka (return)? czzy w tym innym nie ma np. if pagename==index ? lub w tymze hook uzyty cache?
-
akurat w tym module był tylko jeden hook displayproductrightcolumn z faktu żenie jestmi potrzebny przerobiłem go na własny hook gdy go zostawiam i dodaje nowy z returnem do tego również sie nie wyświetla. Nie jest tozależne od cache raczej coś wewnątrz presty blokuje hooki w tym miejscu, wersja 1.6.1
-
no raczej moze blokowac kontroler tego wlasnie hook, czy to przepisywany czy returnowany.
wrzuc co masz w tym hook, jezlei byl kierowany do kolumny to zapewne bedzie gdzies blokowany dla innych miejsc.
a tak jeszcze inaczej... po zmianie tego hook odinstalowales i instalowales na nowo modul? inaczej hook sie nie zainstaluje (nie zagniezdzi)
-
W kontrolerze modułu jest cos takiego:
public function convertPrice($params, $smarty)
{
if ($params['price'] > 0)
{
$product = false;
if (isset($smarty->tpl_vars['product']))
$product = $smarty->tpl_vars['product'];
elseif (isset($smarty->tpl_vars['newproduct']))
$product = $smarty->tpl_vars['newproduct'];
if ($product)
{
Jesli to ogranicza wyświetlanie to próbowałem to zmienić na:
public function convertPrice($params, $smarty)
{
if ($params['price'] > 0)
{
$product = false;
if (isset($smarty->tpl_vars['product']))
$product = $smarty->tpl_vars['product'];
elseif (isset($smarty->tpl_vars['newproduct']))
$product = $smarty->tpl_vars['newproduct'];
elseif (isset($smarty->tpl_vars['product-list']))
$product = $smarty->tpl_vars['product-list'];
if ($product)
{
Akurat nie wiem czy product-list to poprawna wartość, jednak w zkładce nowe produkty również nie zwraca zawartości tego hooka.
Jednak nie dało to skutku, w tym samym hooku w product list udało mi sie zwrócić kontent innego modułu więc problem faktycznie może leżeć w samym kontrolerze.
Na PW podeslę cały kontroler.
Jeszcze odpowiadając na pytanie, za każdym razem gdy dokonuje zmiany czyszczę moduł.
-
Swój problem rozwiązałem w zupełnie inny sposób, przebudowując kontroler otrzymałem efekt jaki chciałem uzyskać, jednak nadal jestem ciekawy co mi blokowało wyświetlanie w product-list.tpl jeśli ktoś ma jakąś teorię chetnie wysłucham, tymczasem temat uważam za zamknięty.
Pozdrawiam wszystkich :)