Przedstawiam ciekawy sposób na dodanie uchwytu(pozycji) dla Prestashop 1.5 znalezione na: http://nemops.com/adding-hooks-to-prestashop-1-5/
No to zaczynamy:
Otwieramy plik .tpl na przykład footer.tpl , dodajemy kod:
{hook h='beforeFooter'}
po h podajemy nazwę własnej pozycji , następnie szukamy pliku php naszego modułu w moim przypadku fmeblockmanufacturer.php, dodajemy kod:
public function hookBeforeFooter($params) { return $this->hookLeftColumn($params); }
najpierw hookNazwaHooka, potem ciało funkcji(metody),
następnie w tym samym pliku szukamy metody odpowiedzialnej za instalację :
public function install()
dodajemy do instalacji nasz hook:
$this->registerHook('BeforeFooter')
Dla przykładu tak wyglądała metoda odpowiedzialna za instalację przed modyfikacją:
public function install() { Configuration::updateValue('MANUFACTURER_DISPLAY_TEXT', true); Configuration::updateValue('MANUFACTURER_DISPLAY_TEXT_NB', 5); Configuration::updateValue('MANUFACTURER_DISPLAY_FORM', true); return parent::install() && $this->registerHook('displayHome') && $this->registerHook('header'); }
Po modyfikacji:
public function install() { Configuration::updateValue('MANUFACTURER_DISPLAY_TEXT', true); Configuration::updateValue('MANUFACTURER_DISPLAY_TEXT_NB', 5); Configuration::updateValue('MANUFACTURER_DISPLAY_FORM', true); return parent::install() && $this->registerHook('displayHome') && $this->registerHook('BeforeFooter') && $this->registerHook('header'); }
Teraz najważniejsze resetujemy nasz moduł w panelu sterowania i w zasadzie to wszystko bez zabawy w bazach itp. nasz kontener jest dostępny w panelu sterowania.
Uwaga czasami należy zaznaczyć „Display non-positionable hooks”(w wersji angielskiej)
Ta metoda coś za bardzo mi nie działa. Pokazuje się tylko biała strona.
Jak usunę poniższy kod to sklep działa poprawnie.
public function hookBeforeFooter($params)
{
return $this->hookLeftColumn($params); / co oznacza ta linia ?? /
}
Proszę o podanie wersji Prestashop, idealnie byłoby na chwilę uruchomić tryb debuggowania – oprócz białej strony będzie kod błędu.