templates/snippets/contact.html.twig line 1

Open in your IDE?
  1. {% extends "layout-snippets.html.twig" %}
  2. {% block snippets %}
  3. <section id="contact">
  4.   <div class="apk-contact-snippets">
  5.     <div class="uk-container apk-container-1400">
  6.       <div class="apk-contact-container">
  7.         <div class="uk-child-width-1-2@m" uk-grid>
  8.           {# editmode pour le titre #}
  9.           {% if editmode %}
  10.           <div>
  11.             <h2 class="uk-h2">
  12.                 {{ pimcore_textarea("content-title",{
  13.                     "nl2br" : true,
  14.                     "placeholder" : 'Titre de la section'
  15.                 }) }}
  16.             </h2>
  17.             <p>
  18.               {{ pimcore_textarea("content-text",{
  19.                   "nl2br" : true,
  20.                   "placeholder" : 'Texte'
  21.               }) }}
  22.             </p>
  23.           </div>
  24.           {% else %}
  25.           <div>
  26.             <h2 class="uk-h2">{{ pimcore_textarea("content-title",{"nl2br" : true}) }}</h2>
  27.             <p>{{ pimcore_textarea("content-text",{"nl2br" : true}) }}</p>
  28.             {% if document.property('companyPhone') %}
  29.             <div class="apk-phone">
  30.                 <a href="tel:{{ convert_phone_to_url(document.getProperty('companyPhone')) }}" target="_blank">
  31.                     <img uk-svg wdth="15" height="15" src="/static/img/pictos/tel.svg" alt="{{ "Tel"|trans }}">
  32.                     {{ document.property('companyPhone') }}
  33.                 </a>
  34.             </div>
  35.             {% endif %}
  36.             {% if document.property('companyMail') %}
  37.             <div class="apk-mail uk-margin-top">
  38.                 {{ email_obfuscator_svg(document.property('companyMail'))|raw }}
  39.             </div>
  40.             {% endif %}
  41.             <div class="apk-adresse uk-margin-top">
  42.                 <a href="{{ document.getProperty('companyAdresseUrl') }}" target="_blank">
  43.                     <img uk-svg wdth="15" height="15" src="/static/img/pictos/position.svg" alt="{{ "Adresse"|trans }}">
  44.                     <span>{{ document.property('companyAdresse') }}</span>
  45.                 </a>
  46.             </div>
  47.           </div>
  48.           {% endif %}
  49.           
  50.           <div>
  51.             <div class="apk-contact-snippets-container">
  52.               {% if formStatus == "required-empty" %}
  53.                 
  54.               <div class="uk-alert-danger" uk-alert>
  55.                 <a class="uk-alert-close" uk-close></a>
  56.                 <p>{{ "Veuillez remplir tout les champs requis. (*)"|trans }}</p>
  57.               </div>
  58.               {% elseif formStatus == "invalid-email" %}
  59.               <div class="uk-alert-danger" uk-alert>
  60.                 <a class="uk-alert-close" uk-close></a>
  61.                 <p>{{ "Votre adresse email est invalide. Merci de recommencer."|trans }}</p>
  62.               </div>
  63.               {% elseif formStatus == "robot" %}
  64.               <div class="uk-alert-danger" uk-alert>
  65.                 <a class="uk-alert-close" uk-close></a>
  66.                 <p>{{ "Une erreur Recaptcha est survenue. Merci de recommencer."|trans }}</p>
  67.               </div>
  68.               {% endif %}
  69.               {% if formStatus != "success" %}
  70.               {{ form_start(form, {'action': '#contact', 'method': 'POST'}) }}
  71.               <div uk-grid>
  72.                   <div class="uk-width-1-2@s uk-margin-small-top">
  73.                       {{ form_row(form.lastname, { 'attr': {'class' : 'uk-input'}}) }}
  74.                   </div>
  75.                   <div class="uk-width-1-2@s uk-margin-small-top">
  76.                       {{ form_row(form.firstname, { 'attr': {'class' : 'uk-input'}}) }}
  77.                   </div>
  78.                   <div class="uk-width-1-2@s uk-margin-top">
  79.                       {{ form_row(form.email, { 'attr': {'class' : 'uk-input'}}) }}
  80.                   </div>
  81.                   <div class="uk-width-1-2@s uk-margin-top">
  82.                       {{ form_row(form.phone, { 'attr': {'class' : 'uk-input'}}) }}
  83.                   </div>
  84.                   <div class="uk-width-1-1 uk-margin-top">
  85.                       {{ form_row(form.message, { 'attr': {'class' : 'uk-textarea'}}) }}
  86.                   </div>
  87.                   <div class="uk-width-1-1 apk-conscent uk-margin-top">
  88.                       <div class="uk-grid-small" uk-grid>
  89.                           <div class="uk-width-auto">{{ form_widget(form.gdpr, { 'attr': {'class' : 'uk-checkbox'}}) }}</div>
  90.                           <div class="uk-width-expand"><label id="contact_form_gdpr_label" for="contact_form_gdpr">{{ "contact.conscent"|trans }}</label></div>
  91.                       </div>
  92.                   </div>
  93.                   {{ form_widget(form.recaptcha) }}
  94.                   <div class="uk-width-1-1 uk-margin-small-top">
  95.                       <div class="uk-margin-top uk-text-center">
  96.                           {{ form_widget(form.submit) }}
  97.                       </div>
  98.                   </div>
  99.               </div>
  100.               {{ form_end(form) }}
  101.               {% else %}
  102.               <div class="uk-alert-success" uk-alert>
  103.                 <a class="uk-alert-close" uk-close></a>
  104.                 <p>{{ "Message envoyé. Nous vous recontacterons dans les plus brefs délais."|trans }}</p>
  105.               </div>
  106.               {% endif %}
  107.             </div>
  108.           </div>
  109.           
  110.         </div>
  111.       </div>
  112.     </div>
  113.   </div>
  114. </section>
  115. {% set recaptchaKeyPublic = pimcore_website_config('recaptchaKeyPublic') %}
  116. <script src="https://www.google.com/recaptcha/api.js?onload=onloadRecaptchaCallback&render={{ recaptchaKeyPublic }}"></script>
  117. <script>
  118.     function onloadRecaptchaCallback(){
  119.       grecaptcha.ready(function() {
  120.         grecaptcha.execute('{{ recaptchaKeyPublic }}', {action: 'contact'}).then(function(token) {
  121.           //alert('recaptcha is loaded');
  122.           var recaptcha = document.getElementById('contact_form_recaptcha');
  123.           recaptcha.value = token;
  124.         });
  125.       });
  126.     }
  127. </script>
  128. {% endblock snippets %}