custom/plugins/ProcBasicElements/src/Resources/views/storefront/element/cms-element-proc-cms-card.html.twig line 1

Open in your IDE?
  1. {% block proc_cms_card %}
  2.     {%  set config = element.translated.config %}
  3.     <div class="proc-cms-card-element {{ config.cardStyle.value }}" id="card_{{ element.id }}">
  4.         {% set displayMode = config.displayMode.value %}
  5.         {% if config.displayImage.value != "standard" %}
  6.             {% set imageDisplayMode %}
  7.                 style="object-fit: {{ config.displayImage.value }};width:100%;{% if config.minHeight.value and config.displayImage.value == "cover" %}min-height: {{ element.translated.config.minHeight.value }};{% endif %}"
  8.             {% endset %}
  9.         {% endif %}
  10.         <div class="proc-cms-card-element-inner card--{{ displayMode }}
  11.             {% if config.positionImage.value == false %} card--horizontal-right{% endif %}"
  12.             {% if config.textButtonPosition.value === 'standard' and config.backgroundContainer.value != '' %} style='background-color: {{ config.backgroundContainer.value }}'{% endif %}
  13.         >
  14.             {# simplify ID access #}
  15.             {% set cardImage = config.media.value %}
  16.             {% if(cardImage) %}
  17.                 {# fetch media as batch - optimized for performance #}
  18.                 {% set cardImageCollection = searchMedia([cardImage], context.context) %}
  19.                 {# extract single media object #}
  20.                 {% set imageItem = cardImageCollection.get(cardImage) %}
  21.             {% endif %}
  22.             {% if imageItem %}
  23.                 <div class="proc-cms-card-element-image text-center
  24.                     cms-image-container is-{{ config.displayImage.value }}"
  25.                     {% if config.minHeight.value and config.displayImage.value == "cover" %}
  26.                         style="min-height: {{ element.translated.config.minHeight.value }};"
  27.                     {% endif %}
  28.                     {% if config.textButtonPosition.value === 'standard' and config.backgroundContainer.value != '' %} style='background-color: {{ config.backgroundContainer.value }}'{% endif %}
  29.                 >
  30.                     {% if config.url.value %}
  31.                         <a href="{{ config.url.value }}"
  32.                            class="cms-image-link"
  33.                            {% if config.newTab.value %}target="_blank" rel="noopener"{% endif %}>
  34.                             <img class="mx-auto" src="{{ imageItem.url }}" title="{{ imageItem.translated.title }}"
  35.                                  alt="{{ imageItem.translated.alt }}"
  36.                                 {{ imageDisplayMode }}
  37.                             >
  38.                         </a>
  39.                     {% else %}
  40.                         <img class="mx-auto" src="{{ imageItem.url }}" title="{{ imageItem.translated.title }}"
  41.                              alt="{{ imageItem.translated.alt }}"
  42.                                 {{ imageDisplayMode }}
  43.                         >
  44.                     {% endif %}
  45.                 </div>
  46.             {% endif %}
  47.             <div class="proc-cms-card-element-content{% if config.textButtonPosition.value != 'standard' %} proc-cms-card-element-content-row {{ config.textButtonPosition.value }}{% endif %}
  48.                 {% if config.backgroundContainer.value != '' %} p-4" style='background-color: {{ config.backgroundContainer.value }}'{% else %}"{% endif %}>
  49.                 <div class="proc-cms-card-element-content-text{% if config.url.value != '' and config.buttonText.value != '' and config.textButtonPosition.value === 'standard' %} mb-4{% endif %}
  50.                     {% if config.textButtonPosition.value != 'standard' %} proc-cms-card-element-content-row {{ config.textButtonPosition.value }}{% endif %}"
  51.                     {% if config.textButtonPosition.value === 'cmsCardTextRight' %}style="order: 2;"{% endif %}
  52.                 >
  53.                 {{ config.text.value|raw }}
  54.                 </div>
  55.                 {% if config.url.value != '' and config.buttonText.value != '' %}
  56.                     {% block sw_cms_element_proc_cms_card_button %}
  57.                         {% if config.buttonType.value != "" %}
  58.                             <div class="cms-element-card-button{% if config.buttonPosition.value %} d-flex {{ config.buttonPosition.value }}{% endif %}
  59.                             {% if config.textButtonPosition.value != 'standard' and config.buttonAlignment.value != '' %} {{ config.buttonAlignment.value }}{% endif %}"
  60.                             >
  61.                         {% endif %}
  62.                         <a href="{{ config.url.value }}" target="{% if config.linkTarget.value == '' %}_self{% else %}{{ config.linkTarget.value }}{% endif %}"
  63.                            class="{% if config.buttonType.value %}btn {{ config.buttonType.value }}{% endif %}">
  64.                             {{ config.buttonText.value|raw }}
  65.                         </a>
  66.                         {% if config.buttonType.value != "" %}</div>{% endif %}
  67.                     {% endblock %}
  68.                 {% endif %}
  69.             </div>
  70.         </div>
  71.     </div>
  72. {% endblock %}