Налаштування TV-параметрів (Template Variables) MODX
TV-параметри — додаткові поля ресурсів MODX. Дозволяють додати довільні дані до сторінок: зображення, ціни, дати, випадаючі списки, галереї, текстові блоки. Кожен TV прив'язується до одного або кількох шаблонів.
Типи TV та їхне застосування
| Тип | Застосування |
|---|---|
| Text | Коротке текстове поле |
| Textarea | Багаторядковий текст |
| RichText | WYSIWYG-редактор |
| Number | Числове поле (ціна, кількість) |
| Date | Дата з календарем |
| Image | Вибір зображення з медіабраузера |
| File | Завантаження або вибір файлу |
| URL | Посилання |
| Email з валідацією | |
| Checkbox | Один флажок (так/ні) |
| Listbox (single) | Випадаючий список |
| Listbox (multi) | Множественний вибір |
| Radio Options | Перемикачі |
| Tag | Теги через кому |
| autotag | Автодоповнення тегів з існуючих |
| migxdb | Складна структура (MIGX) |
Створення TV через менеджер
Елементи → Змінні шаблонів → Створити:
-
Ім'я:
product_price(тільки латиниця, нижнім підкреслення) -
Підпис:
Ціна(відображається в редакторі) - Тип введення: Number
-
Значення за замовчуванням:
0 - Шаблони: вибрати шаблони, де поле повинно відображатися
- Вкладка "Доступ": порядок у інтерфейсі, група полів
Типи введення з налаштуваннями
Listbox (single) — Dropdown:
Тип введення: Listbox (Single)
Параметри введення:
Color==Колір||Size==Розмір||Weight==Вага
Або з БД:
@SELECT `id`, `name` FROM `site_content` WHERE `template`=5 AND `published`=1
Image з обмеженням медіабраузера:
Тип введення: Image
Параметри введення:
[[++base_url]]assets/images/products/
Група флажків:
Параметри введення:
monday==Понеділок||tuesday==Вівторок||wednesday==Середа||thursday==Четвер||friday==П'ятниця
Тип виведення: delim (значення через ||)
Вивід TV у шаблоні
[[- Базовий вивід ]]
[[*product_price]]
[[- З форматуванням ]]
[[*product_price:number_format=`0,.`, ` `]] ₽
[[- Умовний вивід ]]
[[*product_image:notempty=`<img src="[[*product_image]]" alt="[[*pagetitle]]">`]]
[[- З phpthumb ]]
[[*product_image:phpthumb=`w=800,h=600,zc=1`]]
[[- Посилання на файл ]]
[[*product_brochure:notempty=`<a href="[[*product_brochure]]" class="btn">Скачати брошюру</a>`]]
Вивід TV через сніпет
// Отримати TV програмно
$resource = $modx->getObject('modResource', $resourceId);
$price = $resource->getTVValue('product_price');
$image = $resource->getTVValue('product_image');
// Встановити TV програмно
$resource->setTVValue('product_price', 1500);
Організація TV через FastTab
FastTab дозволяє групувати TV за вкладками в редакторі ресурсу:
Вкладка "SEO": seo_title, seo_description, seo_robots
Вкладка "Товар": product_price, product_sku, product_weight
Вкладка "Галерея": gallery (MIGX)
Вкладка "Контент": hero_image, hero_text, features_json
Перевірка заповненості TV
// У сніпеті — перевірити заповнення перед виводом
$tvValue = $resource->getTVValue('important_field');
if (empty($tvValue)) {
$modx->log(modX::LOG_LEVEL_WARN, "TV important_field empty for resource {$resource->id}");
}
Терміни
Створення та налаштування 10–20 TV для проекту з прив'язкою до шаблонів і групуванням через FastTab — 3–5 годин.







