Jump to content

mailalerts - brak modułu na karcie produktu w nowym szablonie


sebster.bstok

Recommended Posts

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

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

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

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 by sebster.bstok (see edit history)
Link to comment
Share on other sites

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

i wszystko jasne, przyznam się szczerze że z dwie czy trzy godzinki straciłem na szukanie rozwiązania :D

 

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...