Условные блоки в шаблонах для полей Статический текст по шаблону и Текст по шаблону

Пишите ваши предложения здесь.
Ответить
DmitrYsOne
Сообщения: 22
Зарегистрирован: 12 ноя 2019, 20:32
Имя: Дмитрий
Откуда: Россия Сургут

Условные блоки в шаблонах для полей Статический текст по шаблону и Текст по шаблону

Сообщение DmitrYsOne »

Идея в следующем: бывают сценарии, когда часть текста в поле нужна только если значение какого-то поля не пустое. Предлагаю добавить некие условные конструкции в шаблон для решения этой задачи.

Конкретный пример: есть сущность «Склады».
Склад может быть подчинён другому складу. Реализовано через поле «Родительский склад» с типом «Сущность».
Есть потребность выводить имя склада в виде «Основной склад > Подчинённый склад».
Для формирования имени склада использую поле «Статический текст по шаблону» с шаблоном типа «[123] > [124]», где «[123]» — аналогичное поле родительского склада, «[124]» — название текущего склада.

Проблема получается для корневых элементов. Так как поле «[123]» для них пустое, получаем текст вида «> Основной склад».

На данный момент решил вопрос для себя добавлением конструкции вида «[> какой-то текст]» с логикой: если итоговая строка начинается с этой конструкции — удаляем её, если конструкция встречается в середине строки — удаляем управляющие символы, оставляя только содержимое.

На примере выше выглядит так: шаблон «[123] [>>] [124]».
Для вложенного элемента получаем «Основной склад > Подчинённый склад».
Для корневого — «Основной склад».

Пример реализации в прикреплённом файле на строках 302–309.
Вложения
fieldtype_text_pattern.php
(19.22 КБ) 27 скачиваний
Аватара пользователя
support
Техническая поддержка
Сообщения: 7660
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Условные блоки в шаблонах для полей Статический текст по шаблону и Текст по шаблону

Сообщение support »

Есть поле PHP код, где можно писать свою логику.
DmitrYsOne
Сообщения: 22
Зарегистрирован: 12 ноя 2019, 20:32
Имя: Дмитрий
Откуда: Россия Сургут

Re: Условные блоки в шаблонах для полей Статический текст по шаблону и Текст по шаблону

Сообщение DmitrYsOne »

Действительно, как-то не подумал. Спасибо за ответ!
Ответить