custom/plugins/OfCustomSearch/src/Resources/views/storefront/layout/header/search.html.twig line 1

Open in your IDE?
  1. {% sw_extends '@Storefront/storefront/layout/header/search.html.twig' %}
  2. {% set searchWidgetOptions = {
  3.     searchWidgetMinChars: page.header.activeLanguage.productSearchConfig.minSearchLength ?: 3
  4. } %}
  5. {% block layout_header_search %}
  6.     <div class="header-search">
  7.         {% if page.header.activeLanguage.translationCode.code == 'en-GB' %}
  8.             {% set SearchPlaceholder = "Search for products" %}
  9.         {% elseif page.header.activeLanguage.translationCode.code == 'nl-NL'  %}
  10.             {% set SearchPlaceholder = "Zoek naar producten" %}
  11.         {% elseif page.header.activeLanguage.translationCode.code == 'es-ES'  %}
  12.             {% set SearchPlaceholder = "Buscar productos" %}
  13.         {% elseif page.header.activeLanguage.translationCode.code == 'fr-FR'  %}
  14.             {% set SearchPlaceholder = "Rechercher des produits" %}
  15.         {% elseif page.header.activeLanguage.translationCode.code == 'it-IT'  %}
  16.             {% set SearchPlaceholder = "Cerca prodotti" %}
  17.         {% else %}
  18.             {% set SearchPlaceholder = "Suche nach Produkten" %}
  19.         {% endif %}
  20.         <style>
  21.             #showSearchResults {
  22.                 position: absolute;
  23.                 left: 0;
  24.                 top: 50px;
  25.                 background: #fff;
  26.                 z-index: 50;
  27.                 padding: 20px;
  28.                 border: solid 1px #999999;
  29.                 width: max-content;
  30.                 max-width: 400px;
  31.             }
  32.             #seachterminput {font-size: 14px; padding: 5px 10px;}
  33.             .serach-produc-image {width: 45px; height: 45px; background-size: contain; background-repeat: no-repeat; background-position: 50% 50%; float: left;}
  34.             .search-line {border-bottom: solid 1px #000; padding: 10px 0px;}
  35.             #showSearchResults a {margin: 0; padding: 0;}
  36.         </style>
  37.         <div id="SearchWrapper">
  38.             <input type="text" name="seachterminput" id="seachterminput" placeholder="{{ SearchPlaceholder }}"  onkeyup="showSearchResults(this)">
  39.             <div id="showSearchResults" style="display: none;"></div>
  40.         </div>
  41.         <script>
  42.             function showSearchResults(SearchFor) {
  43.                 var SearchTerm = SearchFor.value;
  44.                 if(SearchTerm.length < 3) {
  45.                     document.getElementById("showSearchResults").innerHTML = "";
  46.                     document.getElementById("showSearchResults").style.display = "none";
  47.                 } else {
  48.                     document.getElementById("showSearchResults").style.display = "block";
  49.                     const xmlhttp = new XMLHttpRequest();
  50.                     xmlhttp.onload = function() {
  51.                         if (this.responseText === "") {
  52.                             document.getElementById("showSearchResults").innerHTML = "Keine Produkte gefunden";
  53.                         } else {
  54.                             document.getElementById("showSearchResults").innerHTML = this.responseText;
  55.                         }
  56.                     }
  57.                     xmlhttp.open("GET", "{{ seoUrl('of_custom_search_article_search') }}?searchterm=" + SearchTerm + "&lang=" + "{{ page.header.activeLanguage.translationCode.code }}" + "&shopurl=" + "{{  absolute_url(asset('')) }}" + "&imageurl" + "{{ product.cover.media.url }}");
  58.                     xmlhttp.send();
  59.                 }
  60.             }
  61.         </script>
  62.     </div>
  63. {% endblock %}