tomputer Posted February 15, 2016 Share Posted February 15, 2016 (edited) Witam Mam problem z dodaniem własnego zaczepu do pliku category.tpl Chciałbym w pliku z widokiem wszystkich produktów z danej kategorii umieścić pewien moduł. Zrobiłem tak: Ręcznie dodałem nowy hook do bazy do tabeli ps_hook INSERT INTO `ps_hook` (`name`, `title`, `description`) VALUES ('displayFooterCategory', 'displayFooterCategory', 'Description'); Następnie w pliku php modułu dopisałem wpis public function install() { return parent::install() && $this->registerHook('displayHeader') && $this->registerHook('displayFooterCategory'); } oraz public function hookDisplayFooterCategory() {} Następnie do pliku category.tpl dodałem wpis {hook h='displayFooterCategory'} Niestety Moduł nie pojawia się w oczekiwanym miejscu. W zapleczu presty tez nie widze tej pozycji. Proszę o podpowiedź gdzie popełniłem błąd. Edited February 16, 2016 by tomputer (see edit history) Link to comment Share on other sites More sharing options...
0 endriu107 Posted February 16, 2016 Share Posted February 16, 2016 Po pierwsze nie musisz nic dodawać do bazy, po drugie hook nic nie zwraca więc co ma pokazywać. Link to comment Share on other sites More sharing options...
0 addd Posted February 16, 2016 Share Posted February 16, 2016 a gdzie jest podczepiony jakiś widok do tego hooka żeby było cokolwiek widać? W głównej klasie modułu: public function hookDisplayFooterCategory() { return $this->display(__FILE__, 'TwojWidokModulu.tpl', $this->getCacheId()); } Link to comment Share on other sites More sharing options...
0 tomputer Posted February 16, 2016 Author Share Posted February 16, 2016 (edited) Dziękuję zaraz sprawdzę czy dział Edited February 16, 2016 by tomputer (see edit history) Link to comment Share on other sites More sharing options...
0 tomputer Posted February 16, 2016 Author Share Posted February 16, 2016 (edited) Wygląda na to że coś robię nie tak nawet po umieszczeniu w pliku .php modułu wpisu jak poniżej, moduł się nie wyświetla public function hookDisplayFooterCategory() { return $this->display(__FILE__, 'category.tpl', $this->getCacheId()); } Edited February 16, 2016 by tomputer (see edit history) Link to comment Share on other sites More sharing options...
0 endriu107 Posted February 16, 2016 Share Posted February 16, 2016 Chyba nie do końca rozumiesz o co chodzi, wiec na początek napisz co ma ten hook wyświetlać. Link to comment Share on other sites More sharing options...
0 tomputer Posted February 16, 2016 Author Share Posted February 16, 2016 OK opisze jeszcze raz dokładniej o co chodzi. Korzystam z modułu proinstagramcarousel który wyświetla ostanie wpisy z konkretnego kanału na instagramie. Sam moduł skonfigurowany jest poprawnie bo działa w innej pozycji mianowicie w widoku product.tpl w zapleczu przypięty do pozycji DisplayFooterProduct Chciałbym ten sam moduł umieścić również w widoku category.tpl a wiec w pliku .php tego modułu dopisałem pogrubione wpisy public function install() { return parent::install() && $this->registerHook('displayHeader') && $this->registerHook('displayHome') && $this->registerHook('displayFooterProduct') && $this->registerHook('displayFooterCategory'); } oraz w końcowej części pliku public function hookDisplayHeader() { $this->context->controller->addCSS($this->_path.'css/proinstagramcarousel.css', 'all'); $this->context->controller->addJS($this->_path.'js/proinstagramcarousel.js', 'all'); } public function hookDisplayFooterProduct() { $this->context->controller->addCSS($this->_path.'css/proinstagramcarousel.css', 'all'); $this->context->controller->addJS($this->_path.'js/proinstagramcarousel.js', 'all'); } public function hookDisplayFooterCategory() { $this->context->controller->addCSS($this->_path.'css/proinstagramcarousel.css', 'all'); $this->context->controller->addJS($this->_path.'js/proinstagramcarousel.js', 'all'); } Teraz chciałbym wyświetlić ten moduł w widoku category.tpl więc w pliku category.tpl w odpowiednim miejscu umieszczam wpis {hook h='displayFooterCategory'}. Pozycja 'displayFooterProduct' była już w szablonie po zainstalowaniu i jest widoczna na liście pozycji z widoku zaplecza Moduły-Pozycje Moduł jest widoczny w karcie produktu choć ręcznie nie dopisywałm hooka do pliku product.tpl Chciałbym mieć możliwość wyświetlenia tego samego moduły również w widoku category.tpl Pozycja 'displayFooterCategory' którą chciałbym utworzyć nie jest widoczna na tej liści. Nie mogę wiec wskazać tej pozycji dla tego modułu więc próbuję dopisać ją ręczeni. Link to comment Share on other sites More sharing options...
0 addd Posted February 16, 2016 Share Posted February 16, 2016 (edited) Ja bym nie robiła w takiej sytuacji nowego hooka tylko do modułu, który chcesz wyświetlać w category.tpl dodała możliwość zaczepienia go do hooka który jest już w szablonie category.tpl żeby tego dokonać do głównego pliku modułu musisz dodać wpis: public function hook[jakisistniejacyhook] ($params) { return $this->hookDisplayFooterProduct($params); } zakladam przy tym, że DisplayFooterProduct jest zdefiniowany oryginalnie w module bo mówiłeś, że oryginalnie działa w tym zaczepie. Jak dodasz tą metodę do głównej klasy twojego modułu to w zapleczu w pozycjonowaniu zaczepów będziesz miał możliwość podczepić hooka moduł do nowego hooka jeżeli mimo to chcesz użyć swojego nowego hooka to dopisz do głównej klasy swojego modułu:(zakładam przy tym, że dsiplayFooterCatetory to twój utworzony hook. public function hookDisplayFooterCategory($params) { return $this->hookDisplayFooterProduct($params); } a następnie w pozycjonowaniu zaczepów w backoffice podczep swój moduł pod nowego hooka (Mała uwaga zauważyłam w ps 1.6.1.3, że czasami trzeba odpiąć ze wszystkich zaczepów i przypiąć w innej kolejności bo pomimo, że niby się zaczepiło to nie zapisuje zmian, ale to jak będzie jakiś problem) Edited February 16, 2016 by addd (see edit history) Link to comment Share on other sites More sharing options...
0 tomputer Posted March 2, 2016 Author Share Posted March 2, 2016 Dziękuję za pomoc! Wykorzystałem pierwszy sposób i w pliku category.tpl umieściłem: {hook::exec('DisplayFooterProduct')} Link to comment Share on other sites More sharing options...
Question
tomputer
Witam
Mam problem z dodaniem własnego zaczepu do pliku category.tpl
Chciałbym w pliku z widokiem wszystkich produktów z danej kategorii umieścić pewien moduł.
Zrobiłem tak:
Ręcznie dodałem nowy hook do bazy do tabeli ps_hook
Następnie w pliku php modułu dopisałem wpis
Link to comment
Share on other sites
8 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now