{% extends '@adminx/main.twig' %} {% block title %}{{ request ? 'Запрос: ' ~ request.request_alias : 'Новый запрос' }}{% endblock %} {% set flag_labels = { 'request_show_pagination': 'Показывать пагинацию', 'request_count_items': 'Подсчитывать все результаты', 'request_hide_current': 'Не показывать открытый документ', 'request_only_owner': 'Только свои', 'request_ajax': 'AJAX', 'request_external': 'Внешний вызов', 'request_lang': 'Учитывать язык', 'request_cache_elements': 'Кэшировать элементы', 'request_show_statistic': 'Показывать статистику', 'request_show_sql': 'SQL в публичной отладке', 'request_use_query': 'Свой запрос' } %} {% set basic_flags = ['request_show_pagination', 'request_count_items', 'request_hide_current'] %} {% macro sort_rule(rule, order_options, rubric_fields) %}
1
Одинаковый ключ сохраняет порядок между страницами. Оставьте пустым, чтобы перемешивать заново.
{% endmacro %} {% macro condition_field_option(f, selected) %} {% endmacro %} {% macro condition_value(c, modes, can_manage) %}
Служебное представление{{ c.value_key_ui ? '[tag:cond:' ~ c.value_key_ui ~ ']' : '[tag:cond:alias]' }}
{% endmacro %} {% macro condition_row(c, compares, rubric_fields, modes, can_manage) %} {% if can_manage %}{% endif %} Поле Сравнение {{ _self.condition_value(c, modes, can_manage) }} Работает {% if can_manage %}
{% endif %} {% endmacro %} {% macro condition_group(group, compares, rubric_fields, modes, can_manage) %}
{% if group.parent_id == 0 %}Все условия запроса{% else %}{% endif %}{{ group.group_operator == 'AND' ? 'Должны выполняться все элементы внутри' : 'Достаточно любого элемента внутри' }}
{% if can_manage %}{% if group.depth|default(0) < 3 %}{% endif %}{% if group.parent_id != 0 %}{% endif %}{% endif %}
{% if can_manage %}{% endif %}{% if can_manage %}{% endif %} {% for c in group.conditions %}{{ _self.condition_row(c, compares, rubric_fields, modes, can_manage) }}{% else %}{% endfor %}
ПолеСравнениеЗначениеВкл
В этой группе пока нет условий
{% for child in group.children %}{{ _self.condition_group(child, compares, rubric_fields, modes, can_manage) }}{% endfor %}
{% endmacro %} {% block content %} {% if saved %}
Запрос сохранён.
{% endif %}
Настройка запросаОсновные параметры, условия и оформление результата.
{# --------- Основное --------- #}

Основное

Порядок материаловВерхнее правило применяется первым. Перетащите строки, чтобы изменить приоритет.
{% for rule in sort_rules %}{{ _self.sort_rule(rule, order_options, rubric_fields) }}{% endfor %}
Порядок не заданБез правил порядок материалов может меняться при одинаковых значениях.
{# --------- Оформление результата --------- #}

Как показать результат

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

На сайте используется текущий шаблонСохранённые шаблоны списка и материала продолжат работать без изменений.
Без изменений
Вид предпросмотраМеняет только отображение проверки ниже.
{% for renderer in preview_renderers %} {% endfor %}
{# --------- Шаблоны --------- #}
{# --------- Флаги (сайдбар) --------- #}

Вывод

{% for code in basic_flags %} {% set label = flag_labels[code] %} {% endfor %}
{% if can_manage and tag_groups %} {% endif %} {# --------- Условия --------- #}
Фильтр

Условия

Группа задаёт логику для всех элементов внутри. Вложенные группы превращаются в скобки SQL и позволяют собрать сочетания И/ИЛИ без неоднозначности.

Как собрать условиеПоле, сравнение, источник значения и логика групп на простых примерах
1
Выберите поле

Это данные документа, которые запрос будет проверять.

2
Выберите сравнение

Например: равно, содержит, больше или входит в список.

3
Укажите источник

Постоянное значение задаётся вручную, динамическое берётся из URL или формы.

4
Соберите группы

И требует все элементы, ИЛИ — хотя бы один. Вложенная группа работает как скобки.

Постоянный фильтрТип материала = НовостьИсточник: «Готовое значение».
Фильтр из адресаКаталог содержит catalogИсточник: «Параметр URL или формы»; пустой параметр не применяется.
Условие со скобкамиНа главной = Да И (Новость ИЛИ Статья)Создайте вложенную группу и переключите её на «ИЛИ».

Служебные теги и Legacy PHP нужны только для совместимости. Для новых условий выбирайте значения в форме: движок сам проверит входные данные и безопасно соберёт фильтр.

{% if not request %}
Сохраните запрос, чтобы добавить условия
{% else %}{{ _self.condition_group(condition_tree, compares, rubric_fields, condition_value_modes, can_manage) }}{% endif %}
{% if can_manage and request %} {% endif %}
Проверка представления

Предпросмотр результата

Первые документы выбираются текущим публичным executor, а способ показа берётся из реестра renderer’ов. Шаблоны item/main не выполняются.

Почему документ попал или не попал?Найдите материал этой рубрики и проверьте каждый этап выборки.
{{ request ? 'Предпросмотр ещё не запускался' : 'Сначала сохраните запрос' }}{{ request ? 'Нажмите «Обновить», чтобы проверить выборку и контракт.' : 'После сохранения появятся реальные данные выбранной рубрики.' }}
{% endblock %}