templates/pages/form.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% form_theme form 'form_theme.html.twig' %}
  3. {% set showContactConfirmation = formType == 'contact' and app.request.query.get('contactConfirmation') == '1' %}
  4. {% block page_class %}
  5. {% if showContactConfirmation %}
  6. page ddd step-5
  7. {% endif %}
  8. {% endblock %}
  9. {% block stylesheets %}
  10. {{ parent() }}
  11. {% if showContactConfirmation %}
  12. {{ encore_entry_link_tags('ddd_styles') }}
  13. {% endif %}
  14. {% endblock %}
  15. {% block header_search %}
  16. {% endblock %}
  17. {% block header_search_mobile %}
  18. {% endblock %}
  19. {% block content %}
  20. {% set formBannerId = 'form-banner-' ~ random() %}
  21. <div class="form-banner" id={{ formBannerId }}>
  22. <div class="media">
  23. {% if content.formBanner is defined and content.formBanner is not null %}
  24. {% set media = sulu_resolve_media(content.formBanner.id, app.request.locale) %}
  25. {% set mediaUrl = sulu_media_original_url(media) %}
  26. {% set mediaMimeType = media.mimeType|default('') %}
  27. {% set isVideo = mediaMimeType starts with 'video/' or mediaUrl matches '/\.(mp4|webm|ogg)(\\?.*)?$/i' %}
  28. {% if isVideo %}
  29. <video class="banner-media" autoplay muted loop playsinline preload="metadata">
  30. <source src="{{ mediaUrl }}" type="{{ mediaMimeType }}">
  31. {{ 'carousel.destination.video_not_supported'|trans }}
  32. </video>
  33. {% else %}
  34. {% set imageUrl = sulu_media_url(media, '1200x') %}
  35. <img class="banner-media" src="{{ imageUrl }}" alt="{{ media.title|default('') }}" />
  36. {% endif %}
  37. {% endif %}
  38. </div>
  39. <div class="text">
  40. <h1>{{ content.formTitle| default('form.page.title_fallback'|trans) }}</h1>
  41. <div>
  42. {{ content.formText|default('')|raw }}
  43. </div>
  44. </div>
  45. </div>
  46. <div class="container">
  47. {% if formType == 'contact' and showContactConfirmation %}
  48. {% include 'pages/_includes/contact/_contact_confirmation.html.twig' %}
  49. {% elseif formType == 'contact' %}
  50. {{ form_start(form, {'attr': {'class': 'contact-form', 'id': 'page-contact-form'}}) }}
  51. {% if not form.vars.valid %}
  52. <div class="alert alert-error">
  53. {{ form_errors(form) }}
  54. </div>
  55. {% endif %}
  56. {% include 'pages/_includes/form/_form_contact_fields.html.twig' with { form: form, show_submit_button: true } only %}
  57. {{ form_end(form) }}
  58. {% elseif formType == 'newsletter' %}
  59. {{ form_start(form, {'attr': {'class': 'newsletter-form'}}) }}
  60. <div class="form-group">
  61. {{ form_label(form.civility) }}
  62. <div class="radio-group">
  63. <div class="radio-input">
  64. {% for option in form.civility %}
  65. <div class="form-check">
  66. <label class="form-check-label">
  67. {{ form_widget(option, {'attr': {'class': 'form-check-input'}}) }}
  68. <span>{{ option.vars.label }}</span>
  69. </label>
  70. </div>
  71. {% endfor %}
  72. </div>
  73. </div>
  74. {{ form_errors(form.civility) }}
  75. </div>
  76. <div class="row">
  77. <div class="form-group col-md-6 col-sm-12">
  78. {{ form_label(form.lastName) }}
  79. {{ form_widget(form.lastName, {'attr': {'class': 'form-control'}}) }}
  80. {{ form_errors(form.lastName) }}
  81. </div>
  82. <div class="form-group col-md-6 col-sm-12">
  83. {{ form_label(form.firstName) }}
  84. {{ form_widget(form.firstName, {'attr': {'class': 'form-control'}}) }}
  85. {{ form_errors(form.firstName) }}
  86. </div>
  87. </div>
  88. <div class="row">
  89. <div class="form-group col-md-6 col-sm-12">
  90. {{ form_label(form.email) }}
  91. {{ form_widget(form.email, {'attr': {'class': 'form-control'}}) }}
  92. {{ form_errors(form.email) }}
  93. </div>
  94. <div class="form-group col-md-6 col-sm-12">
  95. {{ form_label(form.emailConfirmation) }}
  96. {{ form_widget(form.emailConfirmation, {'attr': {'class': 'form-control'}}) }}
  97. {{ form_errors(form.emailConfirmation) }}
  98. </div>
  99. </div>
  100. <div class="form-group checkbox-group">
  101. {{ form_widget(form.consent, {'attr': {'class': 'form-checkbox'}}) }}
  102. {{ form_label(form.consent) }}
  103. {{ form_errors(form.consent) }}
  104. </div>
  105. <div class="form-actions">
  106. <button type="submit" class="btn style1 reverse_color">{{ 'form.page.subscribe'|trans }}</button>
  107. </div>
  108. {{ form_end(form) }}
  109. {% else %}
  110. {{ form_start(form) }}
  111. {{ form_widget(form) }}
  112. <button type="submit" class="btn btn-primary">{{ 'website.ui.contact.send'|trans }}</button>
  113. {{ form_end(form) }}
  114. {% endif %}
  115. <div class="form-footer">
  116. <div class="form-footer-block">
  117. <div class="pictogram">{{ getLucidIcon('map-pin') }}</div>
  118. <div class="info">
  119. <a href="https://www.google.com/maps/place/Croisiland/@45.6441254,5.8680374,16z/data=!3m1!4b1!4m6!3m5!1s0x478b09c944fc6209:0x9fe1b9ddd7358a3f!8m2!3d45.6441218!4d5.8729083!16s%2Fg%2F119w9g765?entry=ttu&g_ep=EgoyMDI1MDEyMi4wIKXMDSoASAFQAw%3D%3D" target="_blanck">
  120. {{ 'form.page.address_html'|trans|raw }}
  121. </a>
  122. </div>
  123. </div>
  124. <div class="form-footer-block">
  125. <div class="pictogram">{{ getLucidIcon('phone') }}</div>
  126. <div class="info">
  127. <div class="form-footer-block-title">{{ 'form.page.info_reservations'|trans }}</div>
  128. <a href="tel:{{ 'phone.default_number'|trans({}, 'general_informations') }}">{{ 'phone.default_number'|trans({}, 'general_informations') }}</a>
  129. </div>
  130. </div>
  131. <div class="form-footer-block">
  132. <div class="pictogram">{{ getLucidIcon('clock') }}</div>
  133. <div class="info">
  134. <div class="form-footer-block-title">{{ 'form.page.opening_hours'|trans }}</div>
  135. <ul>
  136. <li>{{ 'opening_hours'|trans({}, 'general_informations')|striptags|capitalize }}</li>
  137. </ul>
  138. </div>
  139. </div>
  140. </div>
  141. </div>
  142. <style>
  143. #{{formBannerId}}{
  144. --form-text-banner-color: {{ content.formTextBannerColor|default("#000000") }};
  145. --form-text-banner-bg-color: {{ (content.formTextBannerBackgroundColor|default('#ffffff')|hex_to_rgba(content.filterBannerOpacity|default(0))) }};
  146. }
  147. </style>
  148. {# wantsCallback + flatpickr + intl-tel (modale / page) : assets/website/js/common/contact-form-extras.js #}
  149. {% endblock %}