custom/plugins/MoorlFoundation/src/Resources/views/plugin/moorl-foundation/listing-item.html.twig line 1

  1. {% if not schemaOrgType %}
  2.     {% set schemaOrgType = 'Thing' %}
  3. {% endif %}
  4. {% if not collection and not config.itemLayout.value and element.translated.config %}
  5.     {% set config = element.translated.config %}
  6. {% endif %}
  7. {% set imageContent %}
  8.     {% block moorl_listing_item_image %}
  9.         {% if media.url %}
  10.             {% set imageCss = [] %}
  11.             {% if config.itemLayout.value == 'avatar' %}
  12.                 {% set imageCss = imageCss|merge([
  13.                     "height:#{config.itemWidth.value}",
  14.                     "width:#{config.itemWidth.value}",
  15.                 ]) %}
  16.             {% endif %}
  17.             {% sw_thumbnails 'moorl-listing-item-image-thumbnails' with {
  18.                 media: media,
  19.                 attributes: {
  20.                     'itemprop': 'image',
  21.                     'alt': title,
  22.                     'class': "is-#{config.displayMode.value}",
  23.                     'style': imageCss|join(';'),
  24.                     'title': ''
  25.                 }
  26.             } %}
  27.         {% elseif config.itemLayout.value == 'image-or-title' %}
  28.             <div itemprop="name" class="moorl-listing-item-title" title="{{ title }}">
  29.                 {% if config.sanitize.value %}
  30.                     {{ title|sw_sanitize }}
  31.                 {% else %}
  32.                     {{ title|raw }}
  33.                 {% endif %}
  34.             </div>
  35.         {% else %}
  36.             {% sw_icon 'placeholder' style {
  37.                 'size': 'fluid'
  38.             } %}
  39.         {% endif %}
  40.     {% endblock %}
  41. {% endset %}
  42. {% set itemContent %}
  43.     {% block moorl_foundation_listing_item %}
  44.         {% if config.listingLayout.value == 'search-suggest' %}
  45.             {# Clone of "storefront/layout/header/search-suggest.html.twig" #}
  46.             {% block moorl_listing_search_suggest_item %}
  47.                 <li class="search-suggest-product js-result">
  48.                     <a href="{{ url }}"
  49.                        title="{{ title }}"
  50.                        class="search-suggest-product-link">
  51.                         <div class="row align-items-center g-0">
  52.                             <div class="col-auto search-suggest-product-image-container">
  53.                                 {% if media.url %}
  54.                                     {% sw_thumbnails 'search-suggest-product-image-thumbnails' with {
  55.                                         media: media,
  56.                                         sizes: {
  57.                                             'default': '100px'
  58.                                         },
  59.                                         attributes: {
  60.                                             'class': 'search-suggest-product-image',
  61.                                             'alt': (media.translated.alt ?: ''),
  62.                                             'title': (media.translated.title ?: '')
  63.                                         }
  64.                                     } %}
  65.                                 {% else %}
  66.                                     {% sw_icon 'placeholder' style {
  67.                                         'size': 'lg'
  68.                                     } %}
  69.                                 {% endif %}
  70.                             </div>
  71.                             <div class="col search-suggest-product-name">
  72.                                 {{ title }}
  73.                             </div>
  74.                             <div class="col-auto text-muted">
  75.                                 {{ meta }}
  76.                             </div>
  77.                         </div>
  78.                     </a>
  79.                 </li>
  80.             {% endblock %}
  81.         {% else %}
  82.             {% if config.hasButton.value or not url %}
  83.                 <a itemprop="mainEntityOfPage" href="{{ url }}" {% if config.urlNewTab.value %}target="_blank"
  84.                    rel="noopener"{% endif %}
  85.                    class="moorl-listing-item-image"
  86.                    title="{{ title }}">
  87.                     {{ imageContent }}
  88.                 </a>
  89.             {% else %}
  90.                 <div class="moorl-listing-item-image">
  91.                     {{ imageContent }}
  92.                 </div>
  93.             {% endif %}
  94.             {% if config.itemLayout.value != 'image-or-title' %}
  95.                 <div class="moorl-listing-item-content" style="{{ contentCss|join(';') }}">
  96.                     <div class="">
  97.                         {% block moorl_foundation_listing_item_content %}
  98.                             <div itemprop="name" class="moorl-listing-item-title" title="{{ title }}">
  99.                                 {% block moorl_foundation_listing_item_title %}
  100.                                     {% if config.sanitize.value %}
  101.                                         {{ title|sw_sanitize }}
  102.                                     {% else %}
  103.                                         {{ title|raw }}
  104.                                     {% endif %}
  105.                                 {% endblock %}
  106.                             </div>
  107.                             {% if meta %}
  108.                                 <div class="moorl-listing-item-meta">
  109.                                     {% block moorl_foundation_listing_item_meta %}
  110.                                         {{ meta }}
  111.                                     {% endblock %}
  112.                                 </div>
  113.                             {% endif %}
  114.                             {% if description %}
  115.                                 <div itemprop="description" class="moorl-listing-item-description">
  116.                                     {% block moorl_foundation_listing_item_description %}
  117.                                         {% if config.sanitize.value %}
  118.                                             {{ description|length > config.contentLength.value ? description|striptags|slice(0, config.contentLength.value) ~ '...' : description|striptags }}
  119.                                         {% else %}
  120.                                             {{ description|raw }}
  121.                                         {% endif %}
  122.                                     {% endblock %}
  123.                                 </div>
  124.                             {% endif %}
  125.                             {% if config.hasButton.value %}
  126.                                 <a itemprop="mainEntityOfPage"
  127.                                    href="{{ url }}" {% if config.urlNewTab.value %}target="_blank"
  128.                                    rel="noopener"{% endif %}
  129.                                    title="{{ config.buttonLabel.value }}"
  130.                                    class="{{ config.buttonClass.value }} moorl-listing-item-button">
  131.                                     {% block moorl_foundation_listing_item_button_label %}
  132.                                         {{ config.buttonLabel.value ?? "moorl-foundation.search.moreButton"|trans }}
  133.                                     {% endblock %}
  134.                                 </a>
  135.                             {% endif %}
  136.                         {% endblock %}
  137.                     </div>
  138.                 </div>
  139.             {% endif %}
  140.         {% endif %}
  141.     {% endblock %}
  142. {% endset %}
  143. {% if config.listingLayout.value == 'search-suggest' %}
  144.     {{ itemContent }}
  145. {% elseif config.itemLayout.value == 'custom' %}
  146.     <li class="{{ listingColumns }}">
  147.         {% sw_include config.itemLayoutTemplate.value %}
  148.     </li>
  149. {% elseif config.hasButton.value or not url %}
  150.     <li class="{{ listingColumns }}"
  151.         itemscope
  152.         itemtype="https://schema.org/{{ schemaOrgType }}">
  153.         <div class="moorl-listing-item-wrapper{% if config.itemHasBorder.value %} has-border{% endif %}"
  154.              style="{{ itemCss|join(';')|raw }}">
  155.             <div class="moorl-listing-item-{{ config.itemLayout.value }}">
  156.                 {{ itemContent }}
  157.             </div>
  158.         </div>
  159.     </li>
  160. {% else %}
  161.     <li class="{{ listingColumns }}"
  162.         itemscope
  163.         itemtype="https://schema.org/{{ schemaOrgType }}">
  164.         <a itemprop="mainEntityOfPage" href="{{ url }}" {% if config.urlNewTab.value %}target="_blank"
  165.            rel="noopener"{% endif %}
  166.            class="moorl-listing-item-wrapper{% if config.itemHasBorder.value %} has-border{% endif %}"
  167.            style="{{ itemCss|join(';')|raw }}"
  168.            title="{{ title }}">
  169.             <div class="moorl-listing-item-{{ config.itemLayout.value }}">
  170.                 {{ itemContent }}
  171.             </div>
  172.         </a>
  173.     </li>
  174. {% endif %}