Files
ave-cms/adminx/modules/Catalog/view/edit.twig
T
2026-07-27 12:58:44 +03:00

118 lines
29 KiB
Twig
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{% extends '@adminx/main.twig' %}
{% block title %}{{ catalog.rubric_title }} · Каталог{% endblock %}
{% macro rows(items, can_manage) %}
{% for item in items %}
<li class="catalog-tree-item{{ item.status ? '' : ' is-inactive' }}" data-catalog-item data-id="{{ item.id }}" data-parent-id="{{ item.parent_id }}" data-filter-count="{{ item.filters_use|length }}">
<div class="catalog-tree-row">
<button class="catalog-drag" type="button" draggable="{{ can_manage ? 'true' : 'false' }}" aria-label="Перетащить" data-tooltip="Изменить порядок"><i class="ti ti-grip-vertical"></i></button>
<span class="catalog-tree-branch"><i class="ti ti-corner-down-right"></i></span>
<div class="catalog-tree-name"><b>{{ item.name }}</b><small>#{{ item.id }}{% if item.document_id %} · документ #{{ item.document_id }}{% endif %}</small></div>
<div class="catalog-tree-status"><span data-catalog-item-status-label>{{ item.status ? 'активен' : 'скрыт' }}</span><label class="switch" data-tooltip="{{ item.status ? 'Скрыть раздел' : 'Включить раздел' }}"><input type="checkbox" data-catalog-item-status="{{ item.id }}"{{ item.status ? ' checked' : '' }} aria-label="{{ item.status ? 'Скрыть раздел' : 'Включить раздел' }}"></label></div>
<span class="catalog-tree-count" data-tooltip="Поля / фильтры">{{ item.fields_use|length }} / {{ item.filters_use|length }}</span>
{% if can_manage %}<div class="catalog-tree-actions"><button class="btn btn-ghost btn-icon btn-sm catalog-action-edit" type="button" data-catalog-item-edit="{{ item.id }}" data-tooltip="Редактировать"><i class="ti ti-edit"></i></button><button class="btn btn-ghost btn-icon btn-sm catalog-action-delete" type="button" data-catalog-item-delete="{{ item.id }}" data-tooltip="Удалить"><i class="ti ti-trash"></i></button></div>{% endif %}
</div>
{% if item.children %}<ol class="catalog-tree-children">{{ _self.rows(item.children, can_manage) }}</ol>{% endif %}
</li>
{% endfor %}
{% endmacro %}
{% block content %}
<nav class="breadcrumbs" aria-label="Хлебные крошки"><a href="{{ ADMINX_BASE }}/">Главная</a><i class="ti ti-chevron-right"></i><a href="{{ ADMINX_BASE }}/catalog">Каталог</a><i class="ti ti-chevron-right"></i><span>{{ catalog.rubric_title }}</span></nav>
<div class="page-header"><div class="between"><div><h1>{{ catalog.rubric_title }}</h1><p class="text-secondary" style="margin-top:5px">{{ catalog.field_title }} · <span class="mono">#{{ catalog.field_id }}</span></p></div>{% if can_manage %}<button class="btn btn-primary" type="button" data-catalog-item-new><i class="ti ti-plus"></i>Добавить раздел</button>{% endif %}</div></div>
<div class="tabs catalog-page-tabs" role="tablist"><button class="tab is-active" type="button" data-catalog-page-tab="structure"><i class="ti ti-list-tree"></i>Структура <span class="tab-count">{{ flat|length }}</span></button><button class="tab" type="button" data-catalog-page-tab="settings"><i class="ti ti-settings"></i>Настройки</button></div>
<section data-catalog-page-panel="structure">
<div class="section-header catalog-panel-header"><div class="section-icon"><i class="ti ti-list-tree"></i></div><div><div class="section-eyebrow">Структура</div><h2>Разделы каталога</h2><p class="section-desc">Порядок и вложенность используются в каталожном поле документа.</p></div></div>
<div class="card catalog-card">
<div class="catalog-section-head"><div class="catalog-section-title"><span class="icon-tile catalog-head-icon" style="--tile-bg:var(--violet-100);--tile-fg:var(--violet-600)"><i class="ti ti-list-tree"></i></span><div><h2>Дерево разделов</h2><p class="text-secondary">Перетаскивайте строки за маркер слева.</p></div></div><div class="catalog-tree-tools"><label class="input-wrap catalog-tree-search"><i class="ti ti-search"></i><input class="input" type="search" placeholder="Найти раздел" data-catalog-tree-search></label>{% if can_manage %}<button class="btn btn-secondary" type="button" data-catalog-recompile-all><i class="ti ti-refresh"></i>Пересобрать фильтры</button>{% endif %}</div></div>
<ol class="catalog-tree" data-catalog-tree>{{ _self.rows(tree, can_manage) }}</ol>
{% if not tree %}<div class="empty-state">Разделов пока нет.</div>{% endif %}
</div>
</section>
<section data-catalog-page-panel="settings" hidden>
<div class="section-header catalog-panel-header"><div class="section-icon"><i class="ti ti-settings"></i></div><div><div class="section-eyebrow">Поведение</div><h2>Настройки каталога</h2><p class="section-desc">Связь структуры с документами, полями и публичными фильтрами.</p></div></div>
<form class="card catalog-card" id="catalogSettingsForm" data-base="{{ ADMINX_BASE }}" data-rubric="{{ catalog.rubric_id }}" data-field="{{ catalog.field_id }}">
<input type="hidden" name="_csrf" value="{{ csrf_token }}">
<div class="catalog-section-head"><div class="catalog-section-title"><span class="icon-tile catalog-head-icon" style="--tile-bg:var(--blue-100);--tile-fg:var(--blue-600)"><i class="ti ti-adjustments"></i></span><div><h2>Основное поведение</h2><p class="text-secondary">Настройки сохраняются в нативном хранилище каталога.</p></div></div></div>
<div class="catalog-card-body"><div class="form-grid">
<label class="field col-3"><span class="field-label">Назначение каталога</span><select class="select" name="purpose"><option value="content"{{ settings.purpose == 'content' ? ' selected' : '' }}>Обычный каталог</option>{% if products_available %}<option value="commerce"{{ settings.purpose == 'commerce' ? ' selected' : '' }}>Товарный каталог</option>{% endif %}</select><span class="field-hint">{% if products_available %}Товарный режим включает коммерческий индекс, цены, остатки, варианты и фиды.{% else %}Товарный режим доступен после установки модуля «Товары».{% endif %}</span></label>
<label class="field col-3"><span class="field-label">Запрос фильтра</span><select class="select" name="request_id"><option value="0">Не выбран</option>{% for item in request_options %}<option value="{{ item.id }}"{{ settings.request_id == item.id ? ' selected' : '' }}>{{ item.title ?: item.alias }}{% if item.alias and item.alias != item.title %} · {{ item.alias }}{% endif %} (#{{ item.id }})</option>{% endfor %}</select><span class="field-hint">Запрос, который формирует выдачу и условия фильтрации.</span></label>
<label class="field col-3"><span class="field-label">Навигация</span><select class="select" name="navi_id"><option value="0">Не связана</option>{% for item in navigation_options %}<option value="{{ item.id }}"{{ settings.navi_id == item.id ? ' selected' : '' }}>{{ item.title ?: item.alias }}{% if item.alias and item.alias != item.title %} · {{ item.alias }}{% endif %} (#{{ item.id }})</option>{% endfor %}</select><span class="field-hint">Меню, используемое для экспорта структуры каталога.</span></label>
<label class="field col-3"><span class="field-label">Рубрика разделов</span><select class="select" name="rub_cat_id"><option value="0">Не выбрана</option>{% for item in rubric_options %}<option value="{{ item.id }}"{{ settings.rub_cat_id == item.id ? ' selected' : '' }}>{{ item.title ?: item.alias }}{% if item.alias and item.alias != item.title %} · {{ item.alias }}{% endif %} (#{{ item.id }})</option>{% endfor %}</select><span class="field-hint">Рубрика документов, связанных с разделами каталога.</span></label>
</div>
{% if products_available %}<section class="catalog-commerce-fields" data-catalog-commerce-fields><div class="catalog-behavior-head"><span class="icon-tile catalog-behavior-icon is-green"><i class="ti ti-shopping-bag"></i></span><h3>Поля товарного представления</h3></div><div class="form-grid">{% set commerce_fields={'product_title_field_id':'Название товара','product_article_field_id':'Артикул','product_price_field_id':'Цена','product_old_price_field_id':'Старая цена','product_stock_field_id':'Остаток','product_images_field_id':'Изображения'} %}{% for key,label in commerce_fields %}<label class="field col-4"><span class="field-label">{{ label }}</span><select class="select" name="{{ key }}"><option value="0">Не назначено</option>{% for group in field_groups %}{% for field in group.items %}<option value="{{ field.id }}"{{ attribute(settings,key) == field.id ? ' selected' : '' }}>{{ field.title ?: field.alias }} · #{{ field.id }}</option>{% endfor %}{% endfor %}</select></label>{% endfor %}</div></section>
<section class="catalog-product-card-settings" data-catalog-commerce-fields>
<div class="catalog-behavior-head"><span class="icon-tile catalog-behavior-icon is-blue"><i class="ti ti-layout-cards"></i></span><div><h3>Карточка товара</h3><p class="text-secondary text-sm">Единый вид для главной страницы и разделов товарного каталога.</p></div></div>
<div class="catalog-product-card-layout">
<div class="form-grid catalog-product-card-values">
<label class="field col-12"><span class="field-label">Представление</span><select class="select" name="product_card_template_id"><option value="0">Стандартное файловое</option>{% for template in card_template_options %}<option value="{{ template.id }}"{{ settings.product_card_template_id == template.id ? ' selected' : '' }}>{{ template.title }} · {{ template.code }}{% if not template.is_published %} · черновик{% else %} · v{{ template.version }}{% endif %}</option>{% endfor %}</select><span class="field-hint"><a href="{{ ADMINX_BASE }}/catalog/card-templates">Редактировать представления карточек</a>. На сайте используется только опубликованная версия.</span></label>
<label class="field col-6"><span class="field-label">Фотографий в слайдере</span><select class="select" name="product_card[max_images]">{% for count in 1..5 %}<option value="{{ count }}"{{ settings.product_card.max_images == count ? ' selected' : '' }}>{{ count }}</option>{% endfor %}</select></label>
<label class="field col-6"><span class="field-label">Бесплатная доставка от</span><div class="catalog-product-card-price"><input class="input" type="number" min="0" step="1000" name="product_card[delivery_threshold]" value="{{ settings.product_card.delivery_threshold|number_format(0, '.', '') }}"><span>₽</span></div></label>
</div>
<div class="catalog-product-card-options">
{% set card_options={'show_badges':'Бейджи','show_article':'Артикул','show_stock':'Наличие','show_category':'Раздел','show_delivery':'Доставка','show_buy_button':'Кнопка покупки'} %}
{% for key,label in card_options %}<div class="catalog-product-card-option"><span>{{ label }}</span><label class="switch"><input type="checkbox" name="product_card[{{ key }}]" value="1"{{ attribute(settings.product_card,key) ? ' checked' : '' }} aria-label="{{ label }}"></label></div>{% endfor %}
</div>
</div>
<div class="catalog-toggle-row catalog-product-comparison-option">
<span><b>Расчётная старая цена +25%</b><small>Если старая цена товара не заполнена, витрина покажет цену на 25% выше текущей. Данные товара не изменяются.</small></span>
<label class="switch"><input type="checkbox" name="product_card[show_comparison_price]" value="1"{{ settings.product_card.show_comparison_price ? ' checked' : '' }} aria-label="Использовать расчётную старую цену"></label>
</div>
</section>{% endif %}
{% if filter_templates_available %}<section class="catalog-product-card-settings catalog-filter-template-settings">
<div class="catalog-behavior-head"><span class="icon-tile catalog-behavior-icon is-amber"><i class="ti ti-adjustments-horizontal"></i></span><div><h3>Представление фильтров</h3><p class="text-secondary text-sm">Новый Twig-вывод включается отдельно. Текущий режим сохраняет публичный HTML без изменений.</p></div></div>
<div class="form-grid">
<label class="field col-5"><span class="field-label">Шаблон</span><select class="select" name="filter_template_id"><option value="0">Не выбран</option>{% for template in filter_template_options %}<option value="{{ template.id }}"{{ settings.filter_template_id == template.id ? ' selected' : '' }}>{{ template.title }} · {{ template.code }}{% if template.is_published %} · v{{ template.version }}{% else %} · черновик{% endif %}</option>{% endfor %}</select><span class="field-hint"><a href="{{ ADMINX_BASE }}/catalog/filter-templates">Редактировать шаблоны фильтров</a></span></label>
<label class="field col-4"><span class="field-label">Режим вывода</span><select class="select" name="filter_template_mode"><option value="legacy"{{ settings.filter_template_mode == 'legacy' ? ' selected' : '' }}>Текущий публичный вывод</option><option value="preview"{{ settings.filter_template_mode == 'preview' ? ' selected' : '' }}>Только предпросмотр</option><option value="native"{{ settings.filter_template_mode == 'native' ? ' selected' : '' }}>Опубликованный Twig</option></select><span class="field-hint">«Предпросмотр» не меняет сайт.</span></label>
<label class="field col-3"><span class="field-label">Нулевые значения</span><select class="select" name="filter_template[zero_behavior]"><option value="show"{{ settings.filter_template.zero_behavior == 'show' ? ' selected' : '' }}>Показывать</option><option value="disable"{{ settings.filter_template.zero_behavior == 'disable' ? ' selected' : '' }}>Отключать</option><option value="hide"{{ settings.filter_template.zero_behavior == 'hide' ? ' selected' : '' }}>Скрывать</option></select></label>
<div class="field col-12 catalog-toggle-row"><span><b>Показывать количество товаров</b><small>В Twig значение доступно как <code>option.count</code>.</small></span><label class="switch"><input type="checkbox" name="filter_template[show_counts]" value="1"{{ settings.filter_template.show_counts ? ' checked' : '' }} aria-label="Показывать количество товаров"></label></div>
</div>
</section>{% endif %}
{% set behavior_groups = [
{'title':'Документы','icon':'ti-file-settings','tone':'blue','items':[
{'name':'doc_fileds','label':'Ограничивать поля по разделу','hint':'В документе доступны только назначенные разделу поля.'},
{'name':'doc_parent','label':'Раздел задаёт родителя','hint':'Связанный документ становится родителем элемента.'},
{'name':'save_names','label':'Сохранять названия разделов','hint':'Имена разделов записываются вместе с их идентификаторами.'}
]},
{'title':'Иерархия','icon':'ti-hierarchy-2','tone':'violet','items':[
{'name':'recursive','label':'Сохранять цепочку родителей','hint':'Значение включает все вышестоящие разделы.'},
{'name':'item_parent','label':'Синхронизировать родителей','hint':'Перемещение раздела обновляет родителя документа.'},
{'name':'sort_parent','label':'Учитывать родителя при сортировке','hint':'Порядок рассчитывается отдельно внутри каждого уровня.'}
]},
{'title':'Публичная выдача','icon':'ti-adjustments-horizontal','tone':'amber','items':[
{'name':'filters_use','label':'Использовать фильтры','hint':'Для разделов компилируются публичные фильтры каталога.'}
]}
] %}
<div class="catalog-behavior-grid">{% for group in behavior_groups %}<section class="catalog-behavior-group"><div class="catalog-behavior-head"><span class="icon-tile catalog-behavior-icon is-{{ group.tone }}"><i class="ti {{ group.icon }}"></i></span><h3>{{ group.title }}</h3></div><div class="catalog-behavior-list">{% for item in group.items %}<div class="catalog-behavior-row"><span><b>{{ item.label }}</b><small>{{ item.hint }}</small></span><label class="switch"><input type="checkbox" name="{{ item.name }}" value="1"{{ attribute(settings,item.name) == 1 ? ' checked' : '' }} aria-label="{{ item.label }}"></label></div>{% endfor %}</div></section>{% endfor %}</div>
</div>
<div class="catalog-settings-grid">
<section class="catalog-default-column"><h3>Поля по умолчанию</h3><p class="text-secondary text-sm">Назначаются новым разделам.</p><div class="catalog-field-groups catalog-default-groups">{% for group in field_groups %}<section class="catalog-field-group" data-catalog-settings-group="fields_default[]"><div class="catalog-field-group-head"><div class="catalog-field-group-title"><span class="icon-tile catalog-field-group-icon"><i class="ti ti-category-2"></i></span><span class="catalog-field-group-copy"><small>Группа полей</small><b>{{ group.title }}</b></span></div><div class="catalog-field-group-meta"><span>{{ group.items|length }}</span><span class="badge badge-gray" data-catalog-settings-selected>Включено: 0</span></div></div><div class="catalog-check-list">{% for field in group.items %}<div class="catalog-choice-row"><span class="catalog-choice-copy"><b>{{ field.title ?: field.alias }}</b><small>{{ field.alias ?: 'field_' ~ field.id }} · #{{ field.id }}</small></span><label class="switch"><input type="checkbox" name="fields_default[]" value="{{ field.id }}"{{ field.id in settings.fields_default_ids ? ' checked' : '' }} aria-label="Использовать поле {{ field.title ?: field.alias }}"></label></div>{% endfor %}</div></section>{% endfor %}</div></section>
<section class="catalog-default-column"><h3>Фильтры по умолчанию</h3><p class="text-secondary text-sm">Применяются к новым разделам.</p><div class="catalog-field-groups catalog-default-groups">{% for group in field_groups %}<section class="catalog-field-group" data-catalog-settings-group="filters_default[]"><div class="catalog-field-group-head"><div class="catalog-field-group-title"><span class="icon-tile catalog-field-group-icon"><i class="ti ti-filter"></i></span><span class="catalog-field-group-copy"><small>Группа фильтров</small><b>{{ group.title }}</b></span></div><div class="catalog-field-group-meta"><span>{{ group.items|length }}</span><span class="badge badge-gray" data-catalog-settings-selected>Включено: 0</span></div></div><div class="catalog-filter-list">{% for field in group.items %}<div class="catalog-filter-row"><span class="catalog-choice-copy"><b>{{ field.title ?: field.alias }}</b><small>{{ field.alias ?: 'field_' ~ field.id }} · #{{ field.id }}</small></span><label class="switch"><input type="checkbox" name="filters_default[]" value="{{ field.id }}"{{ field.id in settings.filters_default_ids ? ' checked' : '' }} aria-label="Использовать фильтр {{ field.title ?: field.alias }}"></label><select class="select select-sm" name="filter_style[{{ field.id }}]">{% for value,label in field.filter_options %}<option value="{{ value }}"{{ attribute(settings.filter_styles,field.id) == value ? ' selected' : '' }}>{{ label }}</option>{% endfor %}</select></div>{% endfor %}</div></section>{% endfor %}</div></section>
</div>
{% if can_manage %}<div class="catalog-form-footer"><span class="catalog-save-state" data-catalog-settings-state aria-live="polite"></span><button class="btn btn-primary" type="submit"><i class="ti ti-device-floppy"></i>Сохранить настройки</button></div>{% endif %}
</form>
</section>
{% if can_manage %}<aside class="drawer drawer-right drawer-xl catalog-drawer" id="catalogItemDrawer" role="dialog" aria-modal="true" hidden>
<div class="drawer-header"><div><h3 data-catalog-drawer-title>Раздел каталога</h3><p class="text-secondary text-sm">Свойства, поля документа и фильтры.</p></div><button class="btn btn-ghost btn-icon" type="button" data-close-drawer aria-label="Закрыть"><i class="ti ti-x"></i></button></div>
<form id="catalogItemForm" class="drawer-body catalog-item-form" data-base="{{ ADMINX_BASE }}" data-rubric="{{ catalog.rubric_id }}" data-field="{{ catalog.field_id }}"><input type="hidden" name="_csrf" value="{{ csrf_token }}"><input type="hidden" name="id" value=""><input type="hidden" name="filters_order" value="">
<div class="tabs catalog-drawer-tabs"><button class="tab is-active" type="button" data-catalog-drawer-tab="main">Основное</button><button class="tab" type="button" data-catalog-drawer-tab="fields">Поля <span class="tab-count" data-catalog-fields-count>0</span></button><button class="tab" type="button" data-catalog-drawer-tab="filters">Фильтры <span class="tab-count" data-catalog-filters-count>0</span></button></div>
<section data-catalog-drawer-panel="main"><div class="form-grid"><label class="field col-12"><span class="field-label">Название</span><input class="input" type="text" name="name" maxlength="255" required><span class="field-error" data-error="name"></span></label><label class="field col-6"><span class="field-label">Родитель</span><select class="select" name="parent_id"><option value="0">Верхний уровень</option>{% for item in flat %}<option value="{{ item.id }}" data-level="{{ item.level }}">{{ item.name }}</option>{% endfor %}</select></label><div class="field col-6"><span class="field-label">Связанный документ</span><input type="hidden" name="document_id" value=""><div class="catalog-document-picker"><button class="catalog-document-value" type="button" data-catalog-document-pick><i class="ti ti-file-search"></i><span data-catalog-document-label>Документ не выбран</span></button><button class="btn btn-ghost btn-icon" type="button" data-catalog-document-clear data-tooltip="Убрать связь" aria-label="Убрать связанный документ"><i class="ti ti-x"></i></button></div></div><div class="field col-12 catalog-toggle-row"><span><b>Раздел активен</b><small>Доступен в поле документа и на сайте.</small></span><label class="switch"><input type="checkbox" name="status" value="1" aria-label="Раздел активен"></label></div></div></section>
<section data-catalog-drawer-panel="fields" hidden>
<div class="catalog-choice-head catalog-fields-grid"><span>Поле</span><span>Тип</span><span>Включено</span></div>
<div class="catalog-field-groups">{% for group in field_groups %}<section class="catalog-field-group" data-catalog-field-group="fields"><div class="catalog-field-group-head"><div class="catalog-field-group-title"><span class="icon-tile catalog-field-group-icon"><i class="ti ti-category-2"></i></span><span class="catalog-field-group-copy"><small>Группа полей</small><b>{{ group.title }}</b></span></div><div class="catalog-field-group-meta"><span>Всего: {{ group.items|length }}</span><span class="badge badge-blue" data-catalog-group-selected>Включено: 0</span></div></div><div class="catalog-check-list">{% for field in group.items %}<div class="catalog-choice-row catalog-fields-grid"><span class="catalog-choice-copy"><b>{{ field.title ?: field.alias }}</b><small>{{ field.alias ?: 'field_' ~ field.id }} · #{{ field.id }}</small></span><span class="catalog-field-type"><b>{{ field.type_title }}</b><small>{{ field.type }}</small></span><label class="switch"><input type="checkbox" name="fields_use[]" value="{{ field.id }}" aria-label="Использовать поле {{ field.title ?: field.alias }}"></label></div>{% endfor %}</div></section>{% endfor %}</div>
</section>
<section data-catalog-drawer-panel="filters" hidden>
<div class="catalog-condition-toolbar" data-catalog-condition-toolbar>
<div class="catalog-condition-toolbar-title"><span class="icon-tile"><i class="ti ti-code-dots"></i></span><span><b>Условия запроса</b><small data-catalog-condition-request>{% if settings.request_id %}Запрос #{{ settings.request_id }}{% else %}Запрос фильтра не выбран{% endif %}</small></span></div>
<div class="catalog-condition-toolbar-actions"><span class="text-secondary" data-catalog-condition-summary></span><button class="btn btn-ghost btn-sm" type="button" data-catalog-filter-order disabled><i class="ti ti-arrows-sort"></i>Порядок</button><button class="btn btn-ghost btn-sm" type="button" data-catalog-filter-recompile disabled><i class="ti ti-refresh"></i>Пересобрать</button><button class="btn btn-secondary btn-sm" type="button" data-catalog-conditions-sync disabled><i class="ti ti-code-plus"></i>Создать недостающие</button></div>
</div>
<div class="catalog-choice-head catalog-filters-grid"><span>Поле</span><span>Тип</span><span>Представление</span><span>Условие</span><span>Включено</span></div>
<div class="catalog-field-groups">{% for group in field_groups %}<section class="catalog-field-group" data-catalog-field-group="filters"><div class="catalog-field-group-head"><div class="catalog-field-group-title"><span class="icon-tile catalog-field-group-icon"><i class="ti ti-filter"></i></span><span class="catalog-field-group-copy"><small>Группа фильтров</small><b>{{ group.title }}</b></span></div><div class="catalog-field-group-meta"><span>Доступно: {{ group.items|length }}</span><span class="badge badge-blue" data-catalog-group-selected>Включено: 0</span></div></div><div class="catalog-filter-list">{% for field in group.items %}<div class="catalog-filter-row catalog-filters-grid"><span class="catalog-choice-copy"><b>{{ field.title ?: field.alias }}</b><small>{{ field.alias ?: 'field_' ~ field.id }} · #{{ field.id }}</small></span><span class="catalog-field-type"><b>{{ field.type_title }}</b><small>{{ field.type }}</small></span><select class="select select-sm" name="filter_style[{{ field.id }}]">{% for value,label in field.filter_options %}<option value="{{ value }}">{{ label }}</option>{% endfor %}</select><div class="catalog-condition-cell" data-catalog-condition-field="{{ field.id }}"><span class="badge badge-gray" data-catalog-condition-status>Не включён</span><button class="btn btn-ghost btn-icon catalog-condition-view" type="button" data-catalog-condition-view="{{ field.id }}" data-tooltip="Просмотреть условие" aria-label="Просмотреть условие" hidden><i class="ti ti-code"></i></button><button class="btn btn-ghost btn-icon catalog-condition-sync" type="button" data-catalog-condition-sync="{{ field.id }}" data-tooltip="Синхронизировать условие" aria-label="Синхронизировать условие" hidden><i class="ti ti-refresh"></i></button></div><label class="switch"><input type="checkbox" name="filters_use[]" value="{{ field.id }}" aria-label="Использовать фильтр {{ field.title ?: field.alias }}"></label></div>{% endfor %}</div></section>{% endfor %}</div>
</section>
</form>
<div class="drawer-footer"><button class="btn btn-ghost" type="button" data-close-drawer>Закрыть</button><span class="catalog-save-state" data-catalog-item-state aria-live="polite"></span><button class="btn btn-primary" type="submit" form="catalogItemForm"><i class="ti ti-device-floppy"></i>Сохранить</button></div>
</aside>{% endif %}
{% endblock %}