Skip to content

snippet.liquid

Данный сниппет предназначен для написания html разметки. Осуществляется с помощью шаблонизатора liquidhub. Код виджета будет обернут в блок с классом layout и автоматически генерируемом уникальным классом виджета. У родительского класса layout при изменении настроек в редакторе меняется значение css переменных в атрибуте style.

В примере ниже:

  • Получить значения настроек виджета из файла settings_form.json можно с помощью liquid-переменной widget_settings. Например, значение настройки ширины контента можно так:
    {{ widget_settings.layout-wide-content }}
    
  • Если виджет блочный, то блоки можно получить из liquid-переменной data.blocks. Пример цикла для перебора блоков и получения значения свойства блока:
    {% for block in data.blocks %}
    
    {{ block.name }}
    
    {% endfor %}
    
  • block.name - название указанное в блоке. Доступные поля можно посмотреть здесь

Пример:

{% assign img_width = widget_settings.layout-content-max-width | default: settings.layout-content-max-width  %}
{% if widget_settings.layout-wide-content %}
{% assign img_width = 1920 %}
{% endif %}

<div class="banner-list__item {% unless widget_settings.banner-img-m %}show-mobile{% endunless %}">
  {% assign img_width = widget_settings.layout-content-max-width | default: settings.layout-content-max-width  %}
    {% if widget_settings.layout-wide-content %}
    {% assign img_width = 1920 %}
    {% endif %}
    <div class="h4 heading">{{ widget_settings.title_text-default }}</div>
    <div class="gallery-contanier">
      <div class="splide gallery-splide">
        <div class="splide__slider">
          <div class="splide__track">
            <ul class="splide__list">
              {% assign slide_index = 0 %}
              {% for video in data.blocks %}
              <li class="splide__slide" data-slide-index="{{ slide_index }}">
                {% if video.link != blank %}
                <div class="iframe_wrapper">
                  {{ video.link | video_iframe_by_url: id: video_id }}
                </div>
                {% else %}
                <div class="banner-list__empty-video">
                  {{widget_settings.video-empty}}
                </div>
                {% endif %}

                {% if video.image %}
                  <picture class="picture">
                    <source media="(min-width:769px)" data-srcset="{{ video.image | image_url: img_width, format: 'webp', resizing_type: 'fit_width' }}" type="image/webp" class="lazyload">
                    <source media="(max-width:480px)" data-srcset="{{ video.image | image_url: 500, format: 'webp', resizing_type: 'fit_width' }}" type="image/webp" class="lazyload">
                    <source media="(max-width:768px)" data-srcset="{{ video.image | image_url: 768, format: 'webp', resizing_type: 'fit_width' }}" type="image/webp" class="lazyload">
                    <img data-src="{{ video.image | image_url: 940, resizing_type: 'fit_width' }}" class="lazyload">
                  </picture>
                {% else %}
                  <img class="picture" src="{{ video.link | video_preview_by_url }}" style="max-width: 100%" />
                {% endif %}
                <a href="" class="button banner-preview__play-btn">
                  <div class="triangle right"></div>
                </a>
              </li>
              {% assign slide_index = slide_index | plus: 1 %}
              {% endfor %}
            </ul>
          </div>
        </div>
      </div>
    </div>
    <div class="thumbnails-contanier js-init">
      <div class="splide thumbnails-splide">
        <div class="splide__track">
          <ul class="splide__list">
            {% for video in data.blocks %}
              <li class="splide__slide">
                {% if video.image %}
                  <picture>
                    <source media="(min-width:769px)" data-srcset="{{ video.image | image_url: img_width, format: 'webp', resizing_type: 'fit_width' }}" type="image/webp" class="lazyload">
                    <source media="(max-width:480px)" data-srcset="{{ video.image | image_url: 500, format: 'webp', resizing_type: 'fit_width' }}" type="image/webp" class="lazyload">
                    <source media="(max-width:768px)" data-srcset="{{ video.image | image_url: 768, format: 'webp', resizing_type: 'fit_width' }}" type="image/webp" class="lazyload">
                    <img data-src="{{ video.image | image_url: 940, resizing_type: 'fit_width' }}" class="lazyload">
                  </picture>
                  {% else %}
                   <img class="picture" src="{{ video.link | video_preview_by_url }}" style="max-width: 100%" />
                {% endif %}
              </li>
            {% endfor %}
          </ul>
        </div>
      </div>
    </div>
</div>

Другие примеры

Если вам нужно узнать, какие переменные доступны на странице или какие есть свойства у объекта, то используйте help:

{% help %} - выведет доступные переменные.

{% help account %} - выведет список свойств объекта account

Liquid-переменная widget_messages содержит переводы текстов для разных языковых версий из файла messages.json