custom/plugins/ThemeOkeonline/src/Resources/views/storefront/layout/footer/footer-content-renderer.html.twig line 1

Open in your IDE?
  1. {% set footerContent  = footerContent ? footerContent : 'none' %}
  2. {% set footerImage = footerImage ? footerImage : false %} {# e.g. theme_config('footerStylesLayoutFooterServiceImage') theme_config('footerStylesLayoutFooterBottomImage')#}
  3. {% set footerLocation = footerLocation ? footerLocation : 'general' %} {# e.g. top, bottom #}
  4. {% if footerContent == 'none' %}
  5.     <!--empty-->
  6. {# Footer text #}
  7. {% elseif footerContent == 'text' %}
  8.     {% block footer_snippet_wrapper %}
  9.         <div class="footer-{{ footerLocation }}-content footer-{{ footerLocation }}-{{ footerContent }}">
  10.             {% block footer_snippet_content %}
  11.                 <span>
  12.                     {{ ("oo.footer"~ footerLocation|capitalize ~".text.text")|trans|striptags }}
  13.                 </span>
  14.             {% endblock %}
  15.         </div>
  16.     {% endblock %}
  17. {# Footer text #}
  18. {% elseif footerContent starts with 'categories' %}
  19.     {% block footer_categories_wrapper %}
  20.         <div class="footer-{{ footerLocation }}-content footer-{{ footerLocation }}-{{ footerContent }} d-flex flex-column flex-md-row">
  21.             {% block footer_categories_content %}
  22.                 {% sw_include '@Storefront/storefront/layout/footer/categories-list.html.twig' with { setting: footerContent } %}
  23.             {% endblock %}
  24.         </div>
  25.     {% endblock %}
  26. {# Horizontal USP's #}
  27. {% elseif footerContent == 'usps-horizontal' %}
  28.     {% block footer_usps_wrapper_horizontal %}
  29.         {% set uspKeys = uspKeys ? uspKeys : ['one', 'two', 'three'] %}
  30.         <div class="footer-{{ footerLocation }}-content footer-{{ footerLocation }}-{{ footerContent }}">
  31.             ToDo: Fix horizontal view
  32.             {% block footer_usps_content_horizontal %}
  33.                 <ul class="list-inline list-unstyled">
  34.                     {% for uspKey in uspKeys %}
  35.                         {% block footer_usp_wrapper_horizontal %}
  36.                             <li class="usp-item list-inline-item">
  37.                                 {% block footer_usp_content_horizontal %}
  38.                                     {{ ("oo.footer"~ footerLocation|capitalize ~".usps.usp" ~ uspKey|capitalize)|trans|striptags }}
  39.                                 {% endblock %}
  40.                             </li>
  41.                         {% endblock %}
  42.                     {% endfor %}
  43.                 </ul>
  44.             {% endblock %}
  45.         </div>
  46.     {% endblock %}
  47. {# Vertical USP's #}
  48. {% elseif footerContent == 'usps-vertical' %}
  49.     {% block footer_usps_wrapper_vertical %}
  50.         {% set uspKeys = uspKeys ? uspKeys : ['one', 'two', 'three'] %}
  51.         <div class="footer-{{ footerLocation }}-content footer-{{ footerLocation }}-{{ footerContent }}">
  52.             {% block footer_usps_content_vertical_title_wrapper %}
  53.                 <div class="title {{ theme_config("footerStylesFooter"~ footerLocation|capitalize ~"TitleFont") }}">
  54.                     {% block footer_usps_content_vertical_title_content %}
  55.                         {{ "oo.usps.title"|trans|striptags }}
  56.                     {% endblock %}
  57.                 </div>
  58.             {% endblock %}
  59.             
  60.             {% block footer_usps_content_vertical %}
  61.                 <ul class="list-group list-unstyled">
  62.                     {% for uspKey in uspKeys %}
  63.                         {% set uspText = ("oo.footer"~ footerLocation|capitalize ~".usps.usp" ~ uspKey|capitalize)|trans|striptags %}
  64.                         
  65.                         {% if uspText|length > 1 %}
  66.                             {% block footer_usp_wrapper_vertical %}
  67.                                 <li class="usp-item list-group-item pl-0 pr-0 pt-1 pb-1 border-0">
  68.                                     {% block footer_usp_content_vertical %}
  69.                                         {{uspText}}
  70.                                     {% endblock %}
  71.                                 </li>
  72.                             {% endblock %}
  73.                         {% endif %}
  74.                     {% endfor %}
  75.                 </ul>
  76.             {% endblock %}
  77.         </div>
  78.     {% endblock %}
  79. {# Service image #}
  80. {% elseif footerContent == 'image' %}
  81.     {% block base_footer_service_image_wrapper %}
  82.         <div class="footer-service-image">
  83.             {% block base_footer_service_image_content %}
  84.                 <img src="{{ theme_config('footerStylesLayoutFooterServiceImage') |sw_encode_url }}"
  85.                     alt="{{ "oo.customerService.title"|trans|striptags }}"
  86.                     class="img-fluid footer-top-image-img"
  87.                     style="max-height:300px;"
  88.                 />
  89.             {% endblock %}
  90.         </div>
  91.     {% endblock %}
  92.     
  93. {# Customerservice #}
  94. {% elseif footerContent == 'customer-service-details' %}
  95.     {% block base_footer_service_content_wrapper %}
  96.         <div class="footer-service-content">
  97.             {% block base_footer_service_content_content %}
  98.                 <div class="row">
  99.                     {% block base_footer_service_title_row %}
  100.                         <div class="col-12">
  101.                             {% block base_footer_service_title_wrapper %}
  102.                                 <div class="title {{ theme_config("footerStylesFooter"~ footerLocation|capitalize ~"TitleFont") }}">
  103.                                     {% block base_footer_service_title_content %}
  104.                                         {{ "oo.customerService.title"|trans|striptags }}
  105.                                     {% endblock %}
  106.                                 </div>
  107.                             {% endblock %}
  108.                             {% block base_footer_service_servicedescription_wrapper %}
  109.                                 <p class="serviceDescription">
  110.                                     {% block base_footer_service_servicedescription_content %}
  111.                                         {{ "oo.customerService.description"|trans }}
  112.                                     {% endblock %}
  113.                                 </p>
  114.                             {% endblock %}
  115.                         </div>
  116.                     {% endblock %}
  117.                 </div>
  118.                 <div class="row">
  119.                     {# footer-service-items #}
  120.                     {% sw_include '@parent/storefront/layout/footer/footer-service-items.html.twig' %}
  121.                 </div>
  122.             {% endblock %}
  123.         </div>
  124.     {% endblock %}
  125. {# Newsletter #}
  126. {% elseif footerContent == 'newsletter-form' %}
  127.     {% block base_footer_service_newsletter_wrapper %}
  128.         <div class="footer-newsletter-form">
  129.             {% block base_footer_service_newsletter_content %}
  130.                 <div class="newsletter-footer-small">
  131.                     {% block base_footer_newsletter %}
  132.                         <div class="title {{ theme_config("footerStylesFooter"~ footerLocation|capitalize ~"TitleFont") }}">
  133.                             {% block base_footer_newsletter_text %}
  134.                                 {{ "oo.newsletterForm.signUpTitle"|trans|striptags }}
  135.                             {% endblock %}
  136.                         </div>
  137.                         <div class="content">
  138.                             {{ "oo.newsletterForm.signUpText"|trans|striptags }}
  139.                             {# JS plugin: <plugin_root>/src/Resources/app/storefront/src/plugin/okeonline-newsletter-subscribe/okeonline-newsletter-subscribe.plugin.js #}
  140.                             {# Listens to submitting form, adds it to database, gives feedback (unsuccesfull via API, succesfull via JS/Twig translaton) on the span element #}
  141.                             {# subscribeOption should be any of: direct, subscribe, confirmSubscribe, unsubscribe #}
  142.                             {%  set oo_newsletter_subscribe_plugin_options = {
  143.                                 successText: 'oo.newsletterForm.messageSuccess'|trans,
  144.                                 modal: shopware.theme.newsletterFormInFooterModal,
  145.                                 storefrontUrl: app.request.get('sw-sales-channel-absolute-base-url'),
  146.                                 emptyFieldCaption: '(niet ingevuld)',
  147.                                 subscribeOption: 'direct' 
  148.                             } %}
  149.                             <form data-okeonline-newsletter-subscribe-plugin="true" data-okeonline-newsletter-subscribe-plugin-options='{{ oo_newsletter_subscribe_plugin_options | json_encode  }}'>
  150.                                 {% block base_footer_newsletter_message %}
  151.                                     <span role="message" class="d-none"></span>
  152.                                 {% endblock  %}
  153.                                 <div class="form-group">
  154.                                     <input type="text" name="email" placeholder="{{ 'oo.newsletterForm.inputPlaceholder'|trans }}" />
  155.                                     {% block base_footer_newsletter_submit %}
  156.                                         <button role="button" aria-label="Subscribe">
  157.                                             {% set icon = theme_config('footerSettingsNewsletterSubmitIcon') %}
  158.                                             {% sw_include "@parent/storefront/utilities/icon.html.twig" ignore missing with { 'name': icon|default('arrow-right') } %}
  159.                                         </button>
  160.                                     {% endblock %}
  161.                                 </div>
  162.                             </form>
  163.                         </div>
  164.                     {% endblock %}
  165.                 </div>
  166.                 {% block base_footer_newsletter_modal %}
  167.                     {% if theme_config('footerSettingsNewsletterFormModal') %}
  168.                         <div class="modal fade" id="newsletterModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  169.                             <div class="modal-dialog modal-dialog-centered modal-lg" role="document">
  170.                                 <div class="modal-content">
  171.                                     <div class="modal-body p-0">
  172.                                         <div class="container-fluid">
  173.                                             <div class="row">
  174.                                                 <div class="col-lg-6 p-0"><img src="{{ theme_config('footerSettingsNewsletterFormModalImage') |sw_encode_url }}" class="img-fluid" /></div>
  175.                                                 <div class="col-lg-6 p-3">
  176.                                                     <button type="button" class="close float-right" data-dismiss="modal" aria-label="Close">
  177.                                                         <span aria-hidden="true">&times;</span>
  178.                                                     </button>
  179.                                                     {# TODO: Designer: Place Close button on <lg-sizes outsize modal #}
  180.                                                     {{ "oo.footer.newsletterForm.modalContent"|trans|striptags }}
  181.                                                     <span>{{ theme_config('footerSettingsNewsletterFormCoupon') }}</span>
  182.                                                 </div>
  183.                                             </div>
  184.                                         </div>
  185.                                     </div>
  186.                                 </div>
  187.                             </div>
  188.                         </div>
  189.                     {% endif %}
  190.                 {% endblock %}
  191.                 
  192.                 {% block social_buttons %}
  193.                     {# 'facebook', 'instagram', 'youtube', 'pinterest', 'tiktok', 'whatsapp', 'linkedin', 'twitter' #}
  194.                     {% set mediaChannels = mediaChannels ? mediaChannels : [] %}
  195.                     {% if theme_config('footerSettingsNewsletterMediaFacebook') %}
  196.                         {% set mediaChannels = mediaChannels|merge([
  197.                             'facebook'
  198.                         ]) %}
  199.                     {% endif %}
  200.                     {% if theme_config('footerSettingsNewsletterMediaInstagram') %}
  201.                         {% set mediaChannels = mediaChannels|merge([
  202.                             'instagram'
  203.                         ]) %}
  204.                     {% endif %}
  205.                     {% if theme_config('footerSettingsNewsletterMediaYoutube') %}
  206.                         {% set mediaChannels = mediaChannels|merge([
  207.                             'youtube'
  208.                         ]) %}
  209.                     {% endif %}
  210.                     {% if theme_config('footerSettingsNewsletterMediaPinterest') %}
  211.                         {% set mediaChannels = mediaChannels|merge([
  212.                             'pinterest'
  213.                         ]) %}
  214.                     {% endif %}
  215.                     {% if theme_config('footerSettingsNewsletterMediaTiktok') %}
  216.                         {% set mediaChannels = mediaChannels|merge([
  217.                             'tiktok'
  218.                         ]) %}
  219.                     {% endif %}
  220.                     {% if theme_config('footerSettingsNewsletterMediaWhatsapp') %}
  221.                         {% set mediaChannels = mediaChannels|merge([
  222.                             'whatsapp'
  223.                         ]) %}
  224.                     {% endif %}
  225.                     {% if theme_config('footerSettingsNewsletterMediaLinkedin') %}
  226.                         {% set mediaChannels = mediaChannels|merge([
  227.                             'linkedin'
  228.                         ]) %}
  229.                     {% endif %}
  230.                     {% if theme_config('footerSettingsNewsletterMediaTwitter') %}
  231.                         {% set mediaChannels = mediaChannels|merge([
  232.                             'twitter'
  233.                         ]) %}
  234.                     {% endif %}
  235.                     <div class="d-flex flex-row flex-wrap socialButtons">    
  236.                         {% for mediaChannel in mediaChannels %}
  237.                             {% block social_button %}
  238.                                 <a class="btn btn-primary btn-lg mr-2 mb-2" href="{{ ("oo.newsletterForm.mediaChannel."~ mediaChannel|lower ~".url")|trans|striptags }}">    
  239.                                     {% sw_include "@parent/storefront/utilities/icon.html.twig" ignore missing with { 'name': ("oo.newsletterForm.mediaChannel."~ mediaChannel|lower ~".icon")|trans|striptags, class:'fa'} %}
  240.                                     {{ ("oo.newsletterForm.mediaChannel."~ mediaChannel|lower ~".text")|trans({
  241.                                         '%text%': mediaChannel
  242.                                     })|striptags }}
  243.                                 </a>
  244.                             {% endblock %}
  245.                         {% endfor %}
  246.                     </div>
  247.                 {% endblock %}
  248.             {% endblock %}
  249.         </div>
  250.     {% endblock %}
  251. {# Servicepoint navigation #}
  252. {% elseif footerContent == 'servicepoint-navigation' %}
  253.     {% block layout_footer_service_menu_content %}
  254.         {% apply spaceless %}
  255.             <ul class="footer-service-menu-list list-unstyled">
  256.                 {% for serviceMenuItem in page.footer.serviceMenu %}
  257.                     {% block layout_footer_service_menu_item %}
  258.                         <li class="footer-service-menu-item">
  259.                             <a class="footer-service-menu-link"
  260.                             href="{{ category_url(serviceMenuItem) }}"
  261.                             {% if category_linknewtab(serviceMenuItem) %}target="_blank"{% endif %}
  262.                             title="{{ serviceMenuItem.translated.name }}">
  263.                                 {{ serviceMenuItem.translated.name }}
  264.                             </a>
  265.                         </li>
  266.                     {% endblock %}
  267.                 {% endfor %}
  268.             </ul>
  269.         {% endapply %}
  270.     {% endblock %}
  271. {# Payment and shipping logos #}
  272. {% elseif footerContent == 'payment-shipping-logos' %}
  273.     <div class="footer-logos">
  274.         {% block layout_footer_payment_logos %}
  275.             {% for paymentMethod in page.salesChannelPaymentMethods %}
  276.                 {% block layout_footer_payment_logo %}
  277.                     {% if paymentMethod.media %}
  278.                         <div class="footer-logo is-payment">
  279.                             {% set attributes = {
  280.                                 'class': 'lazyload img-fluid footer-logo-image is-'~displayMode,
  281.                                 'data-sizes': "{
  282.                                     'default': '50px'
  283.                                 }",
  284.                                 'alt': (paymentMethod.media.translated.alt ?: paymentMethod.translated.name),
  285.                                 'title': (paymentMethod.media.translated.title ?: paymentMethod.translated.name)
  286.                             } %}
  287.                             {% sw_thumbnails 'footer-payment-image-thumbnails' with {
  288.                                 media: paymentMethod.media,
  289.                                 layout: 'boxed',
  290.                                 sizes: {
  291.                                     'default': '50px'
  292.                                 },
  293.                                 load: false,
  294.                                 loadOriginalImage: true
  295.                             } %}
  296.                         </div>
  297.                     {% endif %}
  298.                 {% endblock %}
  299.             {% endfor %}
  300.         {% endblock %}
  301.         {% block layout_footer_shipping_logos %}
  302.             {% for shippingMethod in page.salesChannelShippingMethods %}
  303.                 {% block layout_footer_shipping_logo %}
  304.                     {% if shippingMethod.media %}
  305.                         <div class="footer-logo is-shipping">
  306.                             {% sw_thumbnails 'footer-shipping-image-thumbnails' with {
  307.                                 media: shippingMethod.media,
  308.                                 sizes: {
  309.                                     'default': '100px'
  310.                                 },
  311.                                 attributes: {
  312.                                     'class': 'img-fluid footer-logo-image',
  313.                                     'alt': (shippingMethod.media.translated.alt ?: shippingMethod.translated.name),
  314.                                     'title': (shippingMethod.media.translated.title ?: shippingMethod.translated.name)
  315.                                 }
  316.                             } %}
  317.                         </div>
  318.                     {% endif %}
  319.                 {% endblock %}
  320.             {% endfor %}
  321.         {% endblock %}
  322.     </div>
  323. {% endif %}