{% if user %}
Привет, {{ user.name }}
{% endif %}
{% if user %}
Привет, {{ user.name }}
{% else %}
<a href="/client_account/contacts/new">Зарегистрироваться</a>
{% endif %}
{% if user.name == 'tobi' %}
Hello tobi
{% elsif user.name == 'bob' %}
Hello bob
{% else %}
Hello guest
{% endif %}
{% unless product.title contains 'колбаса' %}
Это не колбаса
{% endunless %}
{% case handle %}
{% when 'cake' %}
This is a cake
{% when 'cookie' %}
This is a cookie
{% else %}
This is not a cake nor a cookie
{% endcase %}
{% if product.title == "колбаса" %}
Это колбаса
{% endif %}
{% if product.title != 'колбаса' %}
Это не колбаса
{% endif %}
{% if collection.products > 10 %}
Товаров больше 10
{% endif %}
{% if collection.products < 10 %}
Товаров меньше 10
{% endif %}
{% if collection.products >= 10 %}
Товаров больше или равно 10
{% endif %}
{% if collection.products <= 10 %}
Товаров меньше или равно 10
{% endif %}
{% if collection.subcollections.size > 0 or collection.title == 'Бренды' %}
коллекция бренды или коллекция включающая более 0 субколлекций
{% endif %}
{% if collection.subcollections.size > 0 and collection.title == 'Бренды' %}
Если имя коллекции - бренды и коллекция включает более 0 субколлекций
{% endif %}
{% 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 product in collection.products %}
{{ product.title }}
{% endfor %}
{% for i in (1..5) %}
{% if i == 4 %}
{% break %}
{% else %}
{{ i }}
{% endif %}
{% endfor %}
#=> 1 2 3
{% for i in (1..5) %}
{% if i == 4 %}
{% continue %}
{% else %}
{{ i }}
{% endif %}
{% endfor %}
#=> 1 2 3 5
{% 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
<!-- if array = [1,2,3,4,5,6] -->
{% for item in array limit:2 %}
{{ item }}
{% endfor %}
#=> 1 2
<!-- if array = [1,2,3,4,5,6] -->
{% for item in array offset:2 %}
{{ item }}
{% endfor %}
#=> 3 4 5 6
{% 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 }} => [первый][второй][третий]
Создать кешируемый блок. В качестве параметра уникальный ключ.
{% capture cache_menu_key %}cache_menu_key_{{ collections.last_updated_at }}_{{ language.locale }}{% endcapture %}
{% cache cache_menu_key %}
.. кешируемый код
{% endcache %}
Выводит доступные переменные в шаблоне, выводит список свойств объектов.
{% help %} - выведет доступные переменные.
{% help account %} - выведет список свойств объекта account.
{% for field in order.all_fields %}
{% help field %}
{% endfor %}
Тег `{% prefetch %}` это блочный тег для установки лимита на получение данных из базы.
Объект в теге prefetch |
limit |
offset |
sort / only_available (если поддерживаются) |
|---|---|---|---|
collection.products (и др. товары через ProductCollectionDrop) |
да | да | да (см. таблицы ниже) |
Коллекции статей (ArticleCollectionDrop) |
да | да | по реализации дропа |
account.reviews, reviews_not_spam, reviews_spam |
да | да | да (см. таблицу отзывов) |
product.related_products, product.similar_products, product.related_articles |
да | нет | порядок задаётся ассоциацией/аккаунтом, не произвольным sort из тега |
product.reviews |
да | нет | фиксированный порядок |
sort:)| Ключ | Описание |
|---|---|
title |
По названию (А–Я) |
descending_title |
По названию (Я–А) |
price |
По цене (сначала дешевле) |
descending_price |
По цене (сначала дороже) |
old_price |
По старой цене (сначала дешевле) |
descending_old_price |
По старой цене (сначала дороже) |
price_available |
По цене среди товаров в наличии |
descending_price_available |
По цене среди товаров в наличии (дороже сначала) |
discount |
По размеру скидки (сначала меньше) |
descending_discount |
По размеру скидки (сначала больше) |
discount_available |
По скидке среди товаров в наличии |
descending_discount_available |
По скидке среди товаров в наличии (больше сначала) |
age |
По давности добавления (старые первые) |
descending_age |
По давности добавления (новые первые) |
sort_weight |
По весу сортировки (возрастание) |
descending_sort_weight |
По весу сортировки (убывание) |
updated_at |
По дате обновления (старые первые) |
descending_updated_at |
По дате обновления (новые первые) |
popularity |
По популярности (сначала менее популярные) |
descending_popularity |
По популярности (сначала популярнее) |
relevance |
По релевантности (при поиске) |
manual |
Вручную (порядок в коллекции) |
sort:)| Ключ | Описание |
|---|---|
date |
По дате (старые первые) |
date_desc |
По дате (новые первые) |
rating |
По оценке (низкие первые) |
rating_desc |
По оценке (высокие первые) |
rating_desc_date_desc |
Сначала по оценке (высокие), затем по дате (новые) |
rating_date_desc |
Сначала по оценке (низкие), затем по дате (новые) |
Синтаксис:
{% prefetch <коллекция> limit <число>[, sort: '<ключ>'][, offset: <число>][, only_available: true|false] %}
…
{% endprefetch %}
{% prefetch product.similar_products limit 6 %}
{% if product.similar_products.size > 0 %}
{% for similar in product.similar_products %}
{{ similar.title }}
{% endfor %}
{% endif %}
{% endprefetch %}
{% prefetch account.reviews_not_spam limit 5, sort: 'rating_desc_date_desc' %}
{% if account.reviews_not_spam? %}
{% for review in account.reviews_not_spam %}
{{ review.author }}: {{ review.content }}
{% endfor %}
{% endif %}
{% endprefetch %}
{% if data.blocks.size > 0 %}
{% for block in data.blocks %}
{% prefetch block.collection.products limit 12 %}
{% if block.collection.products.size > 0 %}
{% for product in block.collection.products %}
{% comment %} до 12 уже на уровне БД; limit в for можно не дублировать {% endcomment %}
{{ product.title }}
{% endfor %}
{% endif %}
{% endprefetch %}
{% endfor %}
{% endif %}