vendor/store.shopware.com/flinkcmsgridbuilder/src/Resources/views/storefront/block/cms-block-flink-cms-grid.html.twig line 1

Open in your IDE?
  1. {% block block_flink_cms_grid %}
  2.     {% set breakpoints = {
  3.         "xs": theme_config('breakpoint.xs') | default(0),
  4.         "sm": theme_config('breakpoint.sm') | default(576),
  5.         "md": theme_config('breakpoint.md') | default(768),
  6.         "lg": theme_config('breakpoint.lg') | default(992),
  7.         "xl": theme_config('breakpoint.xl') | default(1200),
  8.         "xxl": theme_config('breakpoint.xxl') | default(1400)
  9.     } %}
  10.     {% set gridSettings = block.customFields.flinkCmsGrid.gridSettings %}
  11.     {% set gridElements = block.customFields.flinkCmsGrid.elements %}
  12.     {% set style %}
  13.         {% set prevBreakpoint = "" %}
  14.         {% for breakpoint, minWidth in breakpoints %}
  15.             {% if gridSettings[breakpoint] and gridElements[breakpoint] %}
  16.                 {% set breakpointStyle %}
  17.                     {% set addColPx = gridSettings[breakpoint].columngap matches '/^\\d+$/' %}
  18.                     {% set addRowPx = gridSettings[breakpoint].rowgap matches '/^\\d+$/' %}
  19.                     {% set gridStyle %}
  20.                         {% if not prevBreakpoint or gridSettings[breakpoint].columns != gridSettings[prevBreakpoint].columns %}
  21.                             grid-template-columns: repeat({{ gridSettings[breakpoint].columns }}, minmax(0,1fr));
  22.                         {% endif %}
  23.                         {% if not prevBreakpoint or gridSettings[breakpoint].columngap != gridSettings[prevBreakpoint].columngap %}
  24.                             grid-column-gap: {{ gridSettings[breakpoint].columngap }}{% if addColPx %}px{% endif %};
  25.                         {% endif %}
  26.                         {% if not prevBreakpoint or gridSettings[breakpoint].rowgap != gridSettings[prevBreakpoint].rowgap %}
  27.                             grid-row-gap: {{ gridSettings[breakpoint].rowgap }}{% if addRowPx %}px{% endif %};
  28.                         {% endif %}
  29.                     {% endset %}
  30.                     {% if gridStyle | trim %}
  31.                         .flink-cms-grid--{{ block.id }} {
  32.                             {{ gridStyle }}
  33.                         }
  34.                     {% endif %}
  35.                     {% for slot, gridArea in gridElements[breakpoint] %}
  36.                         {% if not prevBreakpoint or gridArea != gridElements[prevBreakpoint][slot] %}
  37.                             .flink-cms-grid--{{ block.id }} .flink-cms-grid-slot--slot_{{ slot }} {
  38.                                 grid-area: {{ gridArea }};
  39.                             }
  40.                         {% endif %}
  41.                     {% endfor %}
  42.                 {% endset %}
  43.                 {% if breakpointStyle | trim %}
  44.                     {% if minWidth %}@media (min-width: {{ minWidth }}px) { {% endif %}
  45.                         {{ breakpointStyle }}
  46.                     {% if minWidth %} } {% endif %}
  47.                 {% endif %}
  48.                 {% set prevBreakpoint = breakpoint %}
  49.             {% endif %}
  50.         {% endfor %}
  51.     {% endset %}
  52.     {% set style = style | trim | split('  ') | filter(v => v | trim is not empty) | join('') %}
  53.     <style>{{ "\n" }}{{ style }}{{ "\n" }}</style>
  54.     <div class="col-12">
  55.         <div class="flink-cms-grid flink-cms-grid--{{ block.id }}">
  56.             {% for element in block.slots.getElements() %}
  57.                 {% block block_flink_cms_grid_slot %}
  58.                     <div class="flink-cms-grid-slot flink-cms-grid-slot--{{ element.slot }}">
  59.                         {% sw_include "@Storefront/storefront/element/cms-element-" ~ element.type ~ ".html.twig" ignore missing %}
  60.                     </div>
  61.                 {% endblock %}
  62.             {% endfor %}
  63.         </div>
  64.     </div>
  65. {% endblock %}