sebster.bstok Posted November 7, 2016 Share Posted November 7, 2016 Witam wszystkich serdecznie i proszę o małą pomoc. W nowym szablonie nie wyświetla się moduł "mailalerts" na karcie produktu. Został utworzony nowy hook w pliku mailalerts.php public function install($delete_params = true) { if (!parent::install() || !$this->registerHook('displayProductButtons') || oraz public function hookDisplayProductButtons() { $this->page_name = Dispatcher::getInstance()->getController(); if (in_array($this->page_name, array('product', 'account'))) { $this->context->controller->addJS($this->_path.'js/mailalerts.js'); $this->context->controller->addCSS($this->_path.'css/mailalerts.css', 'all'); } } W pliku products.tpl została dodana linijka {if !$product->is_virtual}{hook h="displayProductButtons" product=$product}{/if} ustawienia w samej wtyczce odpowiednio zmienione, na pozycjach modułów w preście wszystko wyświetla się prawidłowo. Moduł mailalerts znajduje się na zaczepie displayProductButtons. Mimo wszystko czy produkt jest dostępny czy nie to informacji o wysłaniu maila w przypadku pojawienia się tego produktu na stanie nie ma. Ktoś może kojarzy czy gdzieś nie ma błędu bądź nie musi być w pliku products.tpl jeszcze jakiejś linijki ? Z góry dziękuję za jakąkolwiek pomoc Link to comment Share on other sites More sharing options...
vekia Posted November 7, 2016 Share Posted November 7, 2016 public function hookDisplayProductButtons() { $this->page_name = Dispatcher::getInstance()->getController(); if (in_array($this->page_name, array('product', 'account'))) { $this->context->controller->addJS($this->_path.'js/mailalerts.js'); $this->context->controller->addCSS($this->_path.'css/mailalerts.css', 'all'); } } ten kod nie zawiera odwołania do jakiegokolwiek pliku .tpl w związku z czym nie ma co się wyświetlać powyższy kod jedynie: - ładuje plik mailalerts.js - ładuje plik mailalerts.css Link to comment Share on other sites More sharing options...
design4VIP Posted November 7, 2016 Share Posted November 7, 2016 to ja moze zadam bardziej techniczne pytanie.... co w ogole chcesz osiagnac? jak w teorii mialby dzialac przerobiony modul? w standardzie po stronie produktu wyswietla tylko mozliwosc przypomnienia klientowi o dostepnosci (z doswiadczenia podpowiem, ze nie sprawdza sie to w praktyce bez przebubowy modulu - zbyt wiele niepotrzebnych wiadomsoci wysylanych do klienta w nieodpowiednim czasie) i ten element est przczepiony do hooka 'OutOfStock', czyli wyswietla sie w momencie gdy nie ma produktu na stanie. Link to comment Share on other sites More sharing options...
sebster.bstok Posted November 8, 2016 Author Share Posted November 8, 2016 (edited) Bardzo Wam dziękuję za odpowiedzi, @vekia, @design4VIP - nie chciałbym w żaden sposób przebudowywać modułu, nie był on też w żaden sposób zmieniany po za dodaniem tego jednego hooka (nie mam ku temu wiedzy), zależy mi jedynie by działał on w standardowy sposób. W szablonie który został zainstalowany po prostu ten moduł się nie wyświetlał na karcie produktu. Pisałem do suportu firmy która dostarczyła szablon lecz po jakimś czasie zamknęli zgłoszenie bez odpowiedzi :-) Moduł sam w sobie jak najbardziej działa, po zalogowaniu się na swoje konto widać zakładkę z alarmami. Nie ma jednak informacji na karcie produktu o powiadomieniu w momencie gdy produkt pojawi się na magazynie. Być może należało by przenieść jakąś linijkę z oryginalnego szablonu prestashop, nie mogłem tylko namierzyć co w oryginalnym szablonie powoduje że ten moduł się wyświetla na karcie produktu. Generalnie to próbowałem utworzyć nowy hook w pliku mailalerts.php oraz dodać go w pliku products.tpl tak by od razu umieścić go w dogodnym sobie miejscu na stronie, jednak takie rozwiązanie nie zadziałało. Kod który zastosowałem w public function w mailalerts.php został skopiowany z hooka displayHeader jak się nie mylę. Wszystkie hooki które mam w mailalerts.php http://screenshot.sh/m2aUY5haOic5z Edited November 8, 2016 by sebster.bstok (see edit history) Link to comment Share on other sites More sharing options...
e_com Posted November 8, 2016 Share Posted November 8, 2016 Ci za przeproszeniem "tfurcy" szablonu wycieli z produkt.tpl takiego hooka: <div id="oosHook"{if $product->quantity > 0} style="display: none;"{/if}> {$HOOK_PRODUCT_OOS}</div> Dodaj go sobie sam do product.tpl i nie musisz nic w module "mailalerts" zmieniać. Standardowo jest on zaraz nad hookiem: {if isset($HOOK_EXTRA_RIGHT) && $HOOK_EXTRA_RIGHT}{$HOOK_EXTRA_RIGHT}{/if} Link to comment Share on other sites More sharing options...
sebster.bstok Posted November 8, 2016 Author Share Posted November 8, 2016 @e_comtak to u mnie wygląda (nic nie modyfikowałem)http://screenshot.sh/m7OPNnNhBs319 http://screenshot.sh/oAiZAQbwAiLG7 źródło strony http://screenshot.sh/mGYjAXjukGWOF http://screenshot.sh/mLfqvByHI7qA7 Więc tak jak by, powinno być ok, choć nie jest :-) Link to comment Share on other sites More sharing options...
e_com Posted November 8, 2016 Share Posted November 8, 2016 A czemu masz aktywne "Dodaj do koszyka"? Albo pozwalasz zamawiać produkty, których brak na stanie, albo nie pozwalasz i wtedy aktywuje się powiadamianie o dostępności z mailalerts. Link to comment Share on other sites More sharing options...
sebster.bstok Posted November 8, 2016 Author Share Posted November 8, 2016 i wszystko jasne, przyznam się szczerze że z dwie czy trzy godzinki straciłem na szukanie rozwiązania Dzięki za pomoc Generalnie pozwalamy zamawiać produkty których nie ma na stanie, powiadomienie w zasadzie chcieliśmy wykorzystać wewnętrznie na zasadzie: - wybrany produkt wchodzi na stan magazynowy (nie był dostępny) - aktualizowana jest cena - produkt jest ponownie wystawiany na allegro Da się w prosty sposób obejść ten mechanizm aktywacji mailalerts? Tak by powiadomienie było zawsze aktywene, niezależnie czy jest włączona opcja pozwolenia na zakup jeśli produkt jest niedostępny? Dzięki za pomoc Link to comment Share on other sites More sharing options...
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