tenrico Posted July 6, 2014 Share Posted July 6, 2014 Witam Na stronie kontakt jest formularz kontaktowy. Chciałbym dodać tam dane z modułu Blok informacji kontaktowych (blockcontactinfos) na podobnej zasadzie co w stopce (czyli móc korzystać ze zmiennych z tego modułu w TPL kontaktu). Niestety nie wiem jak to zrobić. Zakładam, ze trzeba będzie utworzyć jakoś hak (czego robić nie umiem, a próby nie przyniosły rezultatu) i podpiąć ten moduł, a potem wyedytować TPL kontaktu wstawiając zmienne w odpowiednie miejsca. WIęc pytanie brzmi: Jak udostępnić zmienne modułu Blok Informacji Kontaktowych na stronie kontaktu? Pracuje na Prestashop 1.6 przy standardowych modułach i templatce. Proszę o pomoc. Link to comment Share on other sites More sharing options...
vekia Posted July 6, 2014 Share Posted July 6, 2014 1) utwórz nowy hook, np. displayContactForm, otwórz tabelę ps_hook i dodaj tam nowy hook. 2) przejdź do pliku modułu: /modules/blockcontactinfos/blockcontactinfos.php dodaj tam taki kod: public function displayContactForm($params){ $this->smarty->assign(array( 'blockcontactinfos_company' => Configuration::get('BLOCKCONTACTINFOS_COMPANY'), 'blockcontactinfos_address' => Configuration::get('BLOCKCONTACTINFOS_ADDRESS'), 'blockcontactinfos_phone' => Configuration::get('BLOCKCONTACTINFOS_PHONE'), 'blockcontactinfos_email' => Configuration::get('BLOCKCONTACTINFOS_EMAIL') )); return $this->display(__FILE__, 'blockcontactinfos_contact.tpl'); } utwórz plik tpl: blockcontactinfos_contact.tpl o treści <div id="block_contact_infos"> <h4 class="title_block">{l s='Contact us' mod='blockcontactinfos'}</h4> <ul> {if $blockcontactinfos_company != ''}<li><strong>{$blockcontactinfos_company|escape:'html':'UTF-8'}</strong></li>{/if} {if $blockcontactinfos_address != ''}<li><pre>{$blockcontactinfos_address|escape:'html':'UTF-8'}</pre></li>{/if} {if $blockcontactinfos_phone != ''}<li>{l s='Tel' mod='blockcontactinfos'} {$blockcontactinfos_phone|escape:'html':'UTF-8'}</li>{/if} {if $blockcontactinfos_email != ''}<li>{l s='Email:' mod='blockcontactinfos'} {mailto address=$blockcontactinfos_email|escape:'html':'UTF-8' encode="hex"}</li>{/if} </ul> </div> przejdź do moduły > pozycje i podepnij moduł pod ten nowy hook. Link to comment Share on other sites More sharing options...
tenrico Posted July 6, 2014 Author Share Posted July 6, 2014 Zrobiłem według instrukcji jednak pojawia się komunikat, że:"Ten moduł nie może zostać przeniesiony do tego zaczepienia." Dodałem info o haku w metodzie INSTALL: && $this->registerHook('header') && $this->registerHook('displayContactForm') && $this->registerHook('footer')); wyłączyłem i włączyłem moduł ponownie, ale nic to nie dało Link to comment Share on other sites More sharing options...
tenrico Posted July 9, 2014 Author Share Posted July 9, 2014 Znalazłem problem - w pierwszym bloku kodu, który podałeś, w linijce: public function displayContactForm($params){ powinno być: public function hookDisplayContactForm($params){ Brakowało słówka 'hook' w nazwie metody. Po tej zmianie modulik ładnie się podhaczył i działa. Dzięki za pomoc - zyskałem nową "sprawność" Pozdrawiam Link to comment Share on other sites More sharing options...
tenrico Posted July 9, 2014 Author Share Posted July 9, 2014 Jeszcze jedno pytanie: Czy da się w tym nowo utworzonym szablonie 'blockcontactinfos_contact.tpl' dodać zmienną z danymi do wpłaty (nr. konta i nazwa banku) ze standardowego modułu płatności na konto presty? Czyli niejako dostać się do danych w szablonie modułu z innego modułu. Jeśli tak - to jak to zrobić? Jeśli nie - to może jakiś inny sposób? Link to comment Share on other sites More sharing options...
tenrico Posted July 9, 2014 Author Share Posted July 9, 2014 Już sobie poradziłem. Wyedytowałem plik PHP modułu blok informacji kontaktowych dodając w metodach getConfigFieldsValues() i nowo utworzonej hookDisplayContactForm() linijki zczytujące dane z bazy analogicznie do tych istniejących zastępując tylko nazwy na BANK_WIRE_ADDRESS, BANK_WIRE_DETAILS, BANK_WIRE_OWNER i nazwy zmiennych. Użyłem zmiennych w tpl i działa ładnie. NIe wiem czy to poprawne rozwiązanie, ale funkcjonuje tak jak chciałem Pozdrawiam 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