Логические конструкции

If Оператор проверяет условие "если"

Оператор проверяет условие "если"
Liquid
        
          

{% if user %}
  Привет, {{ user.name }}
{% endif %}

else Условный оператор "иначе"

Условный оператор "иначе"
Liquid
        
          

{% if user %}
  Привет, {{ user.name }}
  {% else %}
  <a href="/client_account/contacts/new">Зарегистрироваться</a>
{% endif %}

Elsif Условный оператор который позоваляет делать новые ветки проверок

Условный оператор который позоваляет делать новые ветки проверок
Liquid
        
          

{% if user.name == 'tobi' %}
  Hello tobi
{% elsif user.name == 'bob' %}
  Hello bob
{% else %}
  Hello guest
{% endif %}

Unless Оператор Unless, в отличии от оператора If, удобен, если надо проверить отрицание условия

Оператор Unless, в отличии от оператора If, удобен, если надо проверить отрицание условия
Liquid
        
          

{% unless product.title contains 'колбаса' %}
  Это не колбаса
{% endunless %}

case/when Конструкция switch заменяет собой сразу несколько if или elsif.

Конструкция switch заменяет собой сразу несколько if или elsif.
Liquid
        
          
{% case handle %}
  {% when 'cake' %}
     This is a cake
  {% when 'cookie' %}
     This is a cookie
  {% else %}
     This is not a cake nor a cookie
{% endcase %}

Логические операторы

== равно

равно
Liquid
        
          
{% if product.title == "колбаса" %}
  Это колбаса
{% endif %}

!= Не равно

Не равно
Liquid
        
          
{% if product.title != 'колбаса' %} 
Это не колбаса
{% endif %}

> Больше

Больше
Liquid
        
          
{% if collection.products > 10 %} 
Товаров больше 10
{% endif %}

< Меньше

Меньше
Liquid
        
          
{% if collection.products < 10 %} 
Товаров меньше 10
{% endif %}

>= Больше или равно

Больше или равно
Liquid
        
          
{% if collection.products >= 10 %} 
Товаров больше или равно 10
{% endif %}

<= Меньше или равно

Меньше или равно
Liquid
        
          
{% if collection.products <= 10 %} 
Товаров меньше или равно 10
{% endif %}

or Или

Или
Liquid
        
          
{% if collection.subcollections.size > 0 or collection.title == 'Бренды' %} 
коллекция бренды или коллекция включающая более 0 субколлекций
{% endif %}

and И

И
Liquid
        
          
{% if collection.subcollections.size > 0 and collection.title == 'Бренды' %} 
Если имя коллекции - бренды и коллекция включает более 0 субколлекций
{% endif %}

contains Проверяет наличие подстроки внутри строки или внутри массива из строк.

Проверяет наличие подстроки внутри строки или внутри массива из строк.
Liquid
        
          
{% if product.title contains 'Pack' %}
  This product's title contains the word Pack.
{% endif %}
{% if article.tags contains 'Hello' %}
  This article has been tagged with 'Hello'.
{% endif %}

Итерационные теги

for Цикл применяется для обхода массивов

Цикл применяется для обхода массивов
Liquid
        
          

{% for product in collection.products %}
  {{ product.title }}
{% endfor %}

break Встретив тег {% break %} цикл прекращает итерации

Встретив тег {% break %} цикл прекращает итерации
Liquid
        
          

{% for i in (1..5) %}
  {% if i == 4 %}
    {% break %}
  {% else %}
    {{ i }}
  {% endif %}
{% endfor %}

#=> 1 2 3

continue Пропустить итерацию

Пропустить итерацию
Liquid
        
          

{% for i in (1..5) %}
  {% if i == 4 %}
    {% continue %}
  {% else %}
    {{ i }}
  {% endif %}
{% endfor %}

#=> 1 2 3   5

 

cycle Сycle чередует вывод переданных параметров. Можно использовать в цикле for.

Сycle чередует вывод переданных параметров. Можно использовать в цикле for.
Liquid
        
          

{% cycle 'one', 'two', 'three' %}
{% cycle 'one', 'two', 'three' %}
{% cycle 'one', 'two', 'three' %}
{% cycle 'one', 'two', 'three' %}

#=> one
#=> two
#=> three
#=> one

{% cycle 'group 1': 'one', 'two', 'three' %}
{% cycle 'group 1': 'one', 'two', 'three' %}
{% cycle 'group 2': 'one', 'two', 'three' %}
{% cycle 'group 2': 'one', 'two', 'three' %}

#=> one
#=> two
#=> one
#=> two

{% for i in (0..5) %}
  {% cycle '1', '2', '3' %}
{% endfor %}

#=> 1
#=> 2
#=> 3
#=> 1
#=> 2
#=> 3

limit Параметр limit ограничивает количество итераций

Параметр limit ограничивает количество итераций
Liquid
        
          

<!-- if array = [1,2,3,4,5,6] -->
{% for item in array limit:2 %}
  {{ item }}
{% endfor %}

#=> 1 2

offset Параметр offset указывает с какого индекса начанинать итерации

Параметр offset указывает с какого индекса начанинать итерации
Liquid
        
          

<!-- if array = [1,2,3,4,5,6] -->
{% for item in array offset:2 %}
  {{ item }}
{% endfor %}

#=> 3 4 5 6

Специальные теги

capture Capture объединяет несколько переменных в одну строку

Capture объединяет несколько переменных в одну строку
Liquid
        
          

{% capture my_var %}<p>Первая строка</p>{% endcapture %}
{% capture my_var %}<p>Вторая строка</p>{% endcapture %}
{{ my_var }}
=> <p>Вторая строка</p>

{% capture my_var %}<p>Первая строка</p>{% endcapture %}
{% capture my_var %}{{ my_var }}<p>Вторая строка</p>{% endcapture %}
{{ my_var }}
=> <p>Первая строка</p>
=> <p>Вторая строка</p>

 

{% assign array = 'первый второй третий' | split: ' ' %}
{% for item in array %}
  {% capture text_array %}[{{ item }}]{% endcapture %}
{% endfor %}
{{ text_array }} => [третий]


{% for item in array %}
  {% capture text_array2 %}{{ text_array2 }}[{{ item }}]{% endcapture %}
{% endfor %}
{{ text_array2 }} => [первый][второй][третий]

cache Создать кешируемый блок. В качестве параметра уникальный ключ.

Создать кешируемый блок. В качестве параметра уникальный ключ.

Liquid
        
          

{% capture cache_menu_key %}cache_menu_key_{{ collections.last_updated_at }}_{{ language.locale }}{% endcapture %}

{% cache cache_menu_key %}
.. кешируемый код
{% endcache %}

help Выводит доступные переменные в шаблоне, выводит список свойств объектов.

Выводит доступные переменные в шаблоне, выводит список свойств объектов.

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

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

Liquid
        
          

{% for field in order.all_fields %}
  {% help field %}
{% endfor %}

Новости и статьи
Обновления платформы
Документация по API insales
API для написания интеграций
Разработка приложений
Пошаговая документация
Партнерская программа
Станьте партнером InSales
Продолжая пользоваться сайтом, вы
соглашаетесь с использованием cookie