MODX. Дополнительные поля (TV)

Дополнительные поля (Template Variables) — элементы для расширения стандартных полей ресурса.

Вкладка «Параметры ввода»

Параметры ввода — тот вид поля, который будет отображаться в админ панели, при редактировании ресурса. Есть несколько заранее предустановленных параметров, но если их не хватает, можно добавить разнообразия с помощью дополнительных компонентов, вроде MIGX.

Стандартные варианты параметров ввода: 

  • Авто-метка (auto-tag) (список элементов подобных тегам)
  • Дата (date)
  • Изображение (image)
  • Переключатели (radio)
  • Скрытый (hidden) (не отображается в админ. панели и на сайте)
  • Список (одиночный выбор) / listbox (single-select) 
  • Список (множественный выбор) / listbox (multi-select) 
  • Список ресурсов (resource list) (из структуры сайта)
  • Тег (tag)
  • Текст (text) (обычная текстовая строка)
  • Текстовая область (textares) (обычная текстовая область)
  • Текстовый редактор (richtext) (текстовая область с визуальным редактором)
  • Устаревший список множественного выбора (legasy multiple list)
  • Файл (область для вставки файла)
  • Флажки (checkbox) — если флаг не отмечен, не отправляется никакого значения. Стоит учитывать это при продумывании архитектуры, иногда, это становится проблемой.
  • Число (number)
  • Электронная почта (email)

Значения полей

Чтобы добавить в дополнительное поле значение, надо указать его в поле “Input Option Values”.

Если значений несколько, варианты записываются с разделителем: Значение1||Значение2||Значение3

Возможна запись формата ключ => значение: Значение1==cod1||Значение2==cod2||Значение3==cod3

Проще говоря, формат записи таков DISPLAY VALUE==VALUE

  • DISPLAY VALUE — значение отображаемое на странице ресурса в админке;
  • VALUE — значение которое будет записано в базе.

Варианты по умолчанию

Запись параметров по умолчанию делается с помощью поля “Default Value”, а формат записи зависит от типа поля.

  • checkbox: наличие галки — cod1 (символьный код поля), отсутствие галки — ничего. Если значений несколько, варианты записываются через запятую — cod1, cod3
  • date: можно использовать текстовое обозначение, или привязку для полей, а можно указать слово:
    • today — тогда будет отображаться сегодняшняя дата.
    • now — текущая дата и время.
    • yesterday — вчера.
    • tomorrow — завтра.
    • + / - (любое число)h — почему-то в перепутанном порядке, + 24h высчитывается как (сегодня - 24 часа), и наоборот со знаком минус.

Варианты привязок для полей (@binding)

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

@CHUNK chunkName список из чанка с указанным именем
@RESOURCE id список из ресурса с указанным id
@DIRECTORY ./ список файлов из указанной директории
@FILE ../assets/test.txt список из файла
@SELECT pagetitle, id FROM [[+PREFIX]]site_content WHERE isfolder==0 получение значений из базы данных
@EVAL return $modx->runSnippet('snippetName') получение списка посредством выполнения PHP кода (ходит слух что этой привязки в MODX 3 не будет).

Примеры вывода дополнительных полей

С помощью тегов MODX и phx

Если у поля одно значение:

[[*tvName]]

Если у поля множество значений:

[[*tvName:contains=`value1`:then=``]]

Или напимер так:

[[*tvValue:is=`small`:then=`[[$small]]`:else=`[[$big]]`]]

Дополнительные поля в БД

  • _site_tmplvars — параметры того или иного поля.
  • _site_tmplvar_access — политика доступа того или иного поля.
  • _site_tmplvar_contentvalues — контентное содержание доп полей.
  • _site_tmplvar_templates — шаблоны для которых доступно то или иное доп поле.
?
Была ли статья полезной?

Здравствуйте!

Позвольте представиться, меня зовут Марина. Более 10 лет я занимаюсь обслуживанием сайтов и развитием интернет проектов. Если вы хотите избавиться от хлопот связанных с созданием и поддержкой сайта, тогда вы попали по адресу. При работе с сайтами я предоставляю качественные услуги, ориентируясь на ваши индивидуальные потребности. Для связи со мной воспользуйтесь формой обратной связи.

Инсталента
Пожалуйста, активируйте JavaScript.
Please enable JavaScript.
return; 1