vendor/shopware/storefront/Resources/views/storefront/layout/footer/footer.html.twig line 1

Open in your IDE?
  1. {% block layout_footer_inner_container %}
  2. <div class="container">
  3. {% block layout_footer_navigation %}
  4. <div id="footerColumns"
  5. class="row footer-columns"
  6. data-collapse-footer="true"
  7. role="list">
  8. {% block layout_footer_navigation_hotline %}
  9. <div class="col-md-4 footer-column js-footer-column">
  10. {% block layout_footer_navigation_hotline_headline %}
  11. <div class="footer-column-headline footer-headline js-footer-column-headline js-collapse-footer-column-trigger"
  12. id="collapseFooterHotlineTitle"
  13. {{ dataBsTargetAttr }}="#collapseFooterHotline"
  14. aria-expanded="true"
  15. aria-controls="collapseFooterHotline"
  16. role="listitem">
  17. {{ 'footer.serviceHotlineHeadline'|trans|sw_sanitize }}
  18. {% block layout_footer_navigation_hotline_icons %}
  19. <div class="footer-column-toggle">
  20. <span class="footer-plus-icon">
  21. {% sw_icon 'plus' %}
  22. </span>
  23. <span class="footer-minus-icon">
  24. {% sw_icon 'minus' %}
  25. </span>
  26. </div>
  27. {% endblock %}
  28. </div>
  29. {% endblock %}
  30. {% block layout_footer_navigation_hotline_content %}
  31. <div id="collapseFooterHotline"
  32. class="footer-column-content collapse js-footer-column-content footer-contact"
  33. aria-labelledby="collapseFooterHotlineTitle">
  34. <div class="footer-column-content-inner">
  35. <p class="footer-contact-hotline">
  36. {{ 'footer.serviceHotline'|trans|sw_sanitize }}
  37. </p>
  38. </div>
  39. <div class="footer-contact-form">
  40. {{ 'footer.serviceContactLink'|trans({
  41. '%url%': path('frontend.cms.page', { id: config('core.basicInformation.contactPage') })
  42. })|raw }}
  43. </div>
  44. </div>
  45. {% endblock %}
  46. </div>
  47. {% endblock %}
  48. {% block layout_footer_navigation_columns %}
  49. {% for root in page.footer.navigation.tree %}
  50. {% block layout_footer_navigation_column %}
  51. <div class="col-md-4 footer-column js-footer-column">
  52. {% block layout_footer_navigation_information_headline %}
  53. <div class="footer-column-headline footer-headline js-collapse-footer-column-trigger"
  54. {{ dataBsTargetAttr }}="#collapseFooterTitle{{ loop.index }}"
  55. aria-expanded="true"
  56. aria-controls="collapseFooter{{ loop.index }}">
  57. {% if root.category.type == 'folder' %}
  58. {{ root.category.translated.name }}
  59. {% else %}
  60. <a href="{{ category_url(root.category) }}"
  61. {% if category_linknewtab(root.category) %}target="_blank"{% endif %}
  62. title="{{ root.category.translated.name }}">
  63. {{ root.category.translated.name }}
  64. </a>
  65. {% endif %}
  66. {% block layout_footer_navigation_information_icons %}
  67. <div class="footer-column-toggle">
  68. <span class="footer-plus-icon">
  69. {% sw_icon 'plus' %}
  70. </span>
  71. <span class="footer-minus-icon">
  72. {% sw_icon 'minus' %}
  73. </span>
  74. </div>
  75. {% endblock %}
  76. </div>
  77. {% endblock %}
  78. {% block layout_footer_navigation_information_content %}
  79. <div id="collapseFooter{{ loop.index }}"
  80. class="footer-column-content collapse js-footer-column-content"
  81. aria-labelledby="collapseFooterTitle{{ loop.index }}">
  82. <div class="footer-column-content-inner">
  83. {% block layout_footer_navigation_information_links %}
  84. <ul class="list-unstyled">
  85. {% for treeItem in root.children %}
  86. {% set category = treeItem.category %}
  87. {% set name = category.translated.name %}
  88. {# @deprecated tag:v6.5.0 - Use "category.translated.externalLink" directly or category_url function instead. #}
  89. {% set externalLink = category.translated.externalLink %}
  90. {% block layout_footer_navigation_information_link_item %}
  91. <li class="footer-link-item">
  92. {% block layout_footer_navigation_information_link %}
  93. {% if category.type == 'folder' %}
  94. <div>{{ name }}</div>
  95. {% else %}
  96. <a class="footer-link"
  97. href="{{ category_url(category) }}"
  98. {% if category_linknewtab(category) %}target="_blank"{% endif %}
  99. title="{{ name }}">
  100. {{ name }}
  101. </a>
  102. {% endif %}
  103. {% endblock %}
  104. </li>
  105. {% endblock %}
  106. {% endfor %}
  107. </ul>
  108. {% endblock %}
  109. </div>
  110. </div>
  111. {% endblock %}
  112. </div>
  113. {% endblock %}
  114. {% endfor %}
  115. {% endblock %}
  116. </div>
  117. {% endblock %}
  118. {% block layout_footer_payment_shipping_logos %}
  119. <div class="footer-logos">
  120. {% block layout_footer_payment_logos %}
  121. {% for paymentMethod in page.salesChannelPaymentMethods %}
  122. {% block layout_footer_payment_logo %}
  123. {% if paymentMethod.media %}
  124. <div class="footer-logo is-payment">
  125. {% sw_thumbnails 'footer-payment-image-thumbnails' with {
  126. media: paymentMethod.media,
  127. sizes: {
  128. 'default': '100px'
  129. },
  130. attributes: {
  131. 'class': 'img-fluid footer-logo-image',
  132. 'alt': (paymentMethod.media.translated.alt ?: paymentMethod.translated.name),
  133. 'title': (paymentMethod.media.translated.title ?: paymentMethod.translated.name)
  134. }
  135. } %}
  136. </div>
  137. {% endif %}
  138. {% endblock %}
  139. {% endfor %}
  140. {% endblock %}
  141. {% block layout_footer_shipping_logos %}
  142. {% for shippingMethod in page.salesChannelShippingMethods %}
  143. {% block layout_footer_shipping_logo %}
  144. {% if shippingMethod.media %}
  145. <div class="footer-logo is-shipping">
  146. {% sw_thumbnails 'footer-shipping-image-thumbnails' with {
  147. media: shippingMethod.media,
  148. sizes: {
  149. 'default': '100px'
  150. },
  151. attributes: {
  152. 'class': 'img-fluid footer-logo-image',
  153. 'alt': (shippingMethod.media.translated.alt ?: shippingMethod.translated.name),
  154. 'title': (shippingMethod.media.translated.title ?: shippingMethod.translated.name)
  155. }
  156. } %}
  157. </div>
  158. {% endif %}
  159. {% endblock %}
  160. {% endfor %}
  161. {% endblock %}
  162. </div>
  163. {% endblock %}
  164. </div>
  165. {% block layout_footer_bottom %}
  166. <div class="footer-bottom">
  167. {% block layout_footer_service_menu %}
  168. <div class="container">
  169. {% block layout_footer_service_menu_content %}
  170. {% apply spaceless %}
  171. <ul class="footer-service-menu-list list-unstyled">
  172. {% for serviceMenuItem in page.header.serviceMenu %}
  173. {% block layout_footer_service_menu_item %}
  174. <li class="footer-service-menu-item">
  175. <a class="footer-service-menu-link"
  176. href="{{ category_url(serviceMenuItem) }}"
  177. {% if category_linknewtab(serviceMenuItem) %}target="_blank"{% endif %}
  178. title="{{ serviceMenuItem.translated.name }}">
  179. {{ serviceMenuItem.translated.name }}
  180. </a>
  181. </li>
  182. {% endblock %}
  183. {% endfor %}
  184. </ul>
  185. {% endapply %}
  186. {% endblock %}
  187. </div>
  188. {% endblock %}
  189. {% block layout_footer_vat %}
  190. <div class="footer-vat">
  191. {% if context.taxState == "gross" %}
  192. <p>
  193. {{ "footer.includeVat"|trans({
  194. '%url%': path('frontend.cms.page',{ id: config('core.basicInformation.shippingPaymentInfoPage') })
  195. })|raw }}
  196. </p>
  197. {% else %}
  198. <p>
  199. {{ "footer.excludeVat"|trans({
  200. '%url%': path('frontend.cms.page',{ id: config('core.basicInformation.shippingPaymentInfoPage') })
  201. })|raw }}
  202. </p>
  203. {% endif %}
  204. </div>
  205. {% endblock %}
  206. {% block layout_footer_copyright %}
  207. <div class="footer-copyright">
  208. {% sw_icon 'shopware' style {'size':'xs'} %}
  209. {{ "footer.copyrightInfo"|trans|sw_sanitize }}
  210. </div>
  211. {% endblock %}
  212. </div>
  213. {% endblock %}
  214. {% endblock %}