Шаблоны заполнения v210.1.0
Шаблон ParserKit: field_graph, Twig expr, условия and/or, первичный ключ, окно схемы.
Назначение
Шаблон заполнения привязан к одному донору. Он задаёт:
- когда шаблон подходит (условия + связь «и» / «или»);
- какую запись выбирать в списке (первичный ключ — путь схемы, в UI показывают alias);
- куда и чем заполнить поля новости (карта
target→ Twig-expr).
Раздел: ?mod=parserkit&action=templates → правка шаблона.
Предварительные условия
У выбранного донора должна быть схема после опроса. Если листьев нет — на экране предупреждение: сначала опросите донора.
Первичный ключ
Если у донора нет адреса карточки, одно поле из листьев схемы. В шаблоне хранится путь. В списке выбора — короткое имя, если задано.
- Обязателен для списка записей и загрузки строки, когда адрес карточки пуст.
- Составной ключ не поддерживается.
Если адрес карточки задан, ключ в шаблоне не спрашивается и при сохранении не затирается. Список новостей ищет строку по ключу списка донора. «Заполнить поля» берёт и поле списка (query.), и поле карточки (single.). Подпись в списке видит только поля списка.
После следующего опроса с обоими адресами старые выражения без query. и single. становятся сломанными ссылками. Шаблон сам не переписывается.
Переменные из {% set %}, элемент цикла и loop.* (например loop.last) сломанными ссылками не считаются.
Условия применения
Набор правил «шаблон подходит, если…». Пустой список — шаблон всегда подходит. condition_relation: and (по умолчанию) или or.
Источник (news / xfields / donor_record) ограничивает список полей; для доп. полей выбирается конкретное поле сайта, а не общая метка. При источнике category поле скрыто — категорию выбирают в значении из списка сайта.
На форме новости значения для news и xfields читаются с текущей формы (fields / xfields.{имя}). Операторы =, !=, like сравнивают строки. Пустое значение в условии значит «поле непустое» (после обрезки пробелов). Список шаблонов обновляется при смене донора и при смене заголовка, категории или допполей (пауза 300 ms).
Карта полей: field_graph
{
"primaryKeyPath": "id",
"mappings": [
{ "target": "title", "expr": "{{ name }}" },
{ "target": "short_story", "expr": "{% if area.name %}{{ area.name }}{% endif %}" }
]
}| Ключ | Смысл |
|---|---|
target | Поле новости |
expr | Twig: {{ alias }} / {{ a.b }}, {% if %}, {% for %}, фильтр ` |
Ключи nodes / edges (старый Rete) не пишутся. Легаси {path} / [if_…] не поддерживаются.
Таблица и кнопка «Схема»
- Выберите поле новости.
- Нажмите «Схема» — откроется Metro Window: дерево схемы (alias · path · тип) + редактор Twig + превью на образце записи.
- Клик по листу вставляет фрагмент с учётом типа; «Применить» пишет значение в строку.
Глобального холста конструктора нет.
Сломанные ссылки
После смены схемы: баннер со списком имён, подсветка строк карты и битого первичного ключа. Имя битое, если его нет ни как alias, ни как путь.
Файл настроек
Так же, как у донора: на карточке Выгрузить и Загрузить, в списке Из файла, в строке меню Действия. В файле есть имя донора. Если донора с таким именем нет, перед записью нужно выбрать другого. Загрузка на карточке только заполняет форму; в базу шаблон попадает после сохранения.
Категория, цикл и перенос строки
В окне схемы кнопка «Категория» ставит выбранный раздел сайта. В выражение пишется его номер, например {{ 12 }}. На форме новости этот номер отмечается в списке категорий.
Тип блока меняется списком в шапке, рядом с крестиком. Номер блока и связь «дальше» остаются. Связи «да / нет / тело» снимаются, если у нового типа такого выхода нет.
У блока «Цикл» есть переключатель «Нумерация». Если он включён, в теле доступен номер n: первый номер задаётся полем (по умолчанию 1), имя элемента — полем «Элемент». В теле «Цикла» и «Пока» есть признаки first и last (эта строка первая или последняя), а блок «Прервать» останавливает цикл. Блок «Переменная» ({% set %}) задаёт имя на время шага — его же понимает разбор цепочки из текста.
Настоящий перенос строки в тексте и в поле выражения хранится как {br}. То же самое делают {nl} и {new_line}. После сборки значения они снова становятся переносом строки.
Если значение доп. поля с типом картинка, галерея, файл, видео или звук — адрес http или https, файл скачивается и сохраняется на сайт. В поле попадает путь на сервере. Галерея — несколько адресов через запятую, каждый файл отдельно. Если адрес не подходит, файл больше лимита поля или скачать не удалось, адрес остаётся, а в ответ добавляется предупреждение.