Jump to content
  • 0

Formularz kontaktowy na stronie CMS PrestaShop 1.7


lelek91

Question

Witam, mam problem z wyświetleniem formularza na stronie CMS, próbowałem wzorować się na tym filmie:


Jednak ja nie chcę wyświetlać formularza w oknie modalnym, a pod zawartością strony CMS. W pliku page.tpl wprowadziłem poniższy kod:

{if $cms.id == 8}
    <a href="{$link->getPageLink('contact')}?content_only=1" id="contact-us-popup">Kontakt</a>
{/if}

Jednak w tym wypadku wyświetlę link, nie chciałbym też korzystać z iframe. Chciałbym po prostu wyświetlić standardowy formularz kontaktowy prestashop, ten sam co jest na stronie kontaktu, tylko pod zawartością strony CMS, również chciałbym, aby jego walidacja była przeprowadzana na tej stronie, tzn. bez przekierowania na podstronę z kontaktem w wyniku błędu. Czy wie ktoś jak to rozwiązać? Pozdrawiam.

Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0

Problem już rozwiązany, aby wszystko działało jak należy trzeba wyedytować plik contactform.tpl, na samej górze w pliku w którym jest link do przekierowania formularza należy zamienić linijkę

<form action="{$urls.pages.contact}" method="post" {if $contact.allow_file_upload}enctype="multipart/form-data"{/if}>

na następujący kod

{if isset($cms) && $cms.id == 8}
     <form action="{$link->getCMSLink(8)}" method="post" {if $contact.allow_file_upload}enctype="multipart/form-data"{/if}>
{else}
     <form action="{$urls.pages.contact}" method="post" {if $contact.allow_file_upload}enctype="multipart/form-data"{/if}>
{/if}

przy czym 8 to id naszej strony CMS na której chcemy umieścić formularz.

 

Plik contactform.tpl znajduje się w 

root/themes/nasz_szablon/modules/contactform/views/templates/widget/contactform.tpl
Link to comment
Share on other sites

  • 0

Dzięki. U mnie też poprawie wyświetla się ten formularz na stronie cms. Szukałem takiej opcji od jakiegoś czasu.

A page.tpl z kodem

{if $cms.id == 8}
     {widget name="contactform"}
{/if}

znajduje się w

/themes/nasz_szablon/templates/cms/page.tpl

Można to umieścić pod blokiem cms_content

Link to comment
Share on other sites

  • 0

Dodam, że działa ok też w różnych wersjach językowych w 1.7

Szukam jeszcze opcji "zapytaj o produkt" ale spróbuje to zrobić tak jak na tym filmie youtube.

No i jeszcze szukam jakiegoś rozwiązania wyświetlającego koszt przesyłki przy produkcie.

Link to comment
Share on other sites

  • 0

Jeżeli zapytaj o produkt chcesz zrobić w oknie modalnym, to tak jak w tym filmiku. Czy chciałeś to zrobić jakoś inaczej? Co do kosztu przesyłki, chodzi Ci o wyświetlenie kosztu domyślnej przesyłki na stronie produktu?

Link to comment
Share on other sites

  • 0

Tak. Chodzi o koszt domyślnej przesyłki na stronie produktu. Klient lubi od razu wiedzieć ile go wyniesie przesyłka.

Z pytaniem o produkt spróbuje tak jak na filmiku. Ale wiadomo, że lepiej było by tak jak w jakimś module. Czyli jak formularz jest już wstępnie wypełniony. Czyli np. w tytule albo w treści wiadomości jest nazwa produktu, z którego strony zostaje wysłane zapytanie. A klient dopisuje tylko swoje pytanie. Ale takich rzeczy to nie potrafię :)

Link to comment
Share on other sites

  • 0

Udało mi się coś zrobić w kwestii wyświetlania kosztów przesyłki, jednak nie działa to do końca tak jak trzeba. Poniższy kod

  {block name='product_shipping'}
    {foreach from=$cart.subtotals item="subtotal"}
      {if $subtotal.type === 'shipping'}
        <div class="product-{$subtotal.type}" >
          <span class="label">{$subtotal.label}</span>
          <span class="value">{$subtotal.value}</span>
        </div>
      {/if}
    {/foreach}
  {/block} 

należny umieścić w pliku product-prices.tpl, który znajduje się w katalogu

katalog_główny\themes\nasz_szablon\templates\catalog\_partials\product-prices.tpl

Jeżeli w koszyku nie ma żadnych produktów, wyświetla się, że wysyłka jest darmowa, dopiero po dodaniu pierwszego produktu pokazuje się informacja o kosztach. Jednak jeżeli dodamy do koszyka produkt ze strony produktu klikając w "dodaj do koszyka", a następnie w oknie modalnym klikniemy "kontynuuj zakupy", to informacja o kosztach przesyłki, nie zastąpi info o darmowej wysyłce, a wyświetli się pod nią. Kilkukrotne powtórzenie operacji prowadzi powielania informacji o wysyłce. Jedna i właściwa wartość wyświetli się dopiero po odświeżeniu strony. Ja nie mam chwilowo czasu, ale może ktoś inny obczai temat.

Link to comment
Share on other sites

  • 0

Po dodaniu modułu eicaptcha wystąpił pewien problem.

Recaptcha działa na stronie formularza kontaktowego. Ale w formularzu kontaktowym na stronie cms recaptcha się już nie wyświetla.

Z tego co zauważyłem w sekcji head strony cms brakuje


  <link rel="stylesheet" href="http://modules/eicaptcha/views/css/eicaptcha.css" type="text/css" media="all">
<script type="text/javascript">
            //Recaptcha CallBack Function
            var onloadCallback = function() {grecaptcha.render("captcha-box", {"theme" : "light", "sitekey" : "xxxxxxxxxxxx"});};
            </script><script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit&hl=" async defer></script>

A w formularzu brakuje całego boksu recaptcha

<div id="captcha-box">...</div>

Czy jest jakaś szansa żeby to dodać do tej strony cms z formularzem? Żeby recaptcha wyświetlała się i na stronie formularza kontaktowego i na stronie cms z formularzem.

 

Edited by tomek003 (see edit history)
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...