Ten artykuł jest kalką idetnycznego rozwiązania z wersji PrestaShop 1.6: https://pskrk.com/dodawanie-informacji-teleadresowych-w-dziale-kontakt-z-mozliwoscia-ich-edycji/
W wersji PrestaShop 1.7 mamy już do dyspozycji możliwość wypełnienia podstawowych danych teleadresowych w dziale kontakt. Automatycznie pojawi się tam telefon, email zdeklarowany w ustawieniach:
Preferencje -> Kontakt -> Sklepy -> Dane teleadresowe.
Gorzej jeśli chcemy tam pole tekstowe, które możemy edytować i osadzić tam dowolną informację w formacie jaki nam odpowiada.
W tym artykule dowiesz się jak to zrobić.
Zawartość artykułu
1. Utwórz stronę z treściami teleadresowymi
W dziale
Wygląd -> strony
Dodaj nową stronę i określ treść danych teleadresowych dla wszystkich języków. Zapiszą ją pod dowolną nazwą i zapisz ID tej strony
Id będzie widoczne na liście wszystkich stron.
2. Edycja plików PHP
Otwórz plik:
modules/ps_contactinfo/ps_contactinfo.php
Znajdź funkcję getWidgetVariables()
Na jej początku, np. po linijce:
$address = $this->context->shop->getAddress();
Wklej kod:
$cms = new CMS(16, intval($this->context->cookie->id_lang));
Gdzie 16 to ID dodanej strony z pkt.1
Następnie dodaj element w tablicy $contact_infos[]:
'contactdatas' => $cms->content,
Zrobisz to np. zamieniając fragment kodu:
$contact_infos = [ 'company' => Configuration::get('PS_SHOP_NAME'),
na:
$contact_infos = [ 'company' => Configuration::get('PS_SHOP_NAME'), 'contactdatas' => $cms->content,
3. Edycja plików szablonu (.tpl)
W pliku:
themes/{SZABLON}/modules/ps_contactinfo/ps_contactinfo-rich.tpl
Pod nagłowkiem H4 wklej kod z treścią danych teleadresowych z w/w strony CMS o ID = 16:
{$contact_infos.contactdatas nofilter}
Pod tym kodem wklej początek komentarza:
{*
Następnie zamknij komentarz przed ostatnim wystąpieniem </div>, czyli zamień kod:
</div>
na:
*} </div>
Chodzi o to, aby ukryć domyślne dane teleadresowe. Możesz też je po prostu usunąć z tego pliku jeśli nie będą w przyszłosci potrzebne.
Tak samo wykonaj modyfikacje w pliku:
themes/{SZABLON}/modules/ps_contactinfo/ps_contactinfo.tpl
Pod nagłówkiem typu:
<p class="h4 text-uppercase block-contact-title">{l s='Store information' d='Shop.Theme.Global'}</p>
Wklej
{$contact_infos.contactdatas nofilter}
Potem usuń lub zakomentuj domyślną treść:
{$contact_infos.address.formatted nofilter} {if $contact_infos.phone} <br> {* [1][/1] is for a HTML tag. *} {l s='Call us: [1]%phone%[/1]' sprintf=[ '[1]' => '<span>', '[/1]' => '</span>', '%phone%' => $contact_infos.phone ] d='Shop.Theme.Global' } {/if} {if $contact_infos.fax} <br> {* [1][/1] is for a HTML tag. *} {l s='Fax: [1]%fax%[/1]' sprintf=[ '[1]' => '<span>', '[/1]' => '</span>', '%fax%' => $contact_infos.fax ] d='Shop.Theme.Global' } {/if} {if $contact_infos.email} <br> {* [1][/1] is for a HTML tag. *} {l s='Email us: [1]%email%[/1]' sprintf=[ '[1]' => '<a href="mailto:'|cat:$contact_infos.email|cat:'" class="dropdown">', '[/1]' => '</a>', '%email%' => $contact_infos.email ] d='Shop.Theme.Global' } {/if}
Uwaga, jeśli chcesz komentować ww. kod – usuń z niego komentarze np.
{* [1][/1] is for a HTML tag. *}Osadzanie komentarzy wewnątrz komentarza może powodować błędy kompilacji szablonu
Po odświeżeniu cache szablonu – zmiany powinny być widoczne.
grafika: wallpaperswide.com
Świetny wpis. Dziękuję!!!
Można zrobić 2 różne strony, każdą z nich wykorzystać osobno – w stopce i na stronie kontaktowej. Też działa.
Wielkie dzięki!
[…] PrestaShop 1.7 – edytowalne dane teleadresowe w dziale kontakt […]
[…] PrestaShop 1.7 – edytowalne dane teleadresowe w dziale kontakt […]