Jump to content

Informacje kontaktowe z modułu na stronie kontaktu


tenrico

Recommended Posts

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

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

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

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

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

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

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...