Настройка TV-параметров (Template Variables) MODX
TV-параметры — дополнительные поля ресурсов MODX. Позволяют добавить произвольные данные к страницам: изображения, цены, даты, выпадающие списки, галереи, текстовые блоки. Каждый TV привязывается к одному или нескольким шаблонам. Согласно официальной документации, TV-параметры расширяют функциональность ресурсов, упрощая управление контентом (Wikipedia).
Мы часто сталкиваемся с ситуацией: клиент добавляет товары вручную, а для вывода цены и фото приходится править шаблон каждый раз. TV решают эту проблему — достаточно один раз настроить поля, и редактор сам заполняет нужные данные. Один из наших клиентов — интернет-магазин с 500+ товарами, где требовались поля: цена, артикул, вес, категория, несколько изображений. Без TV редактор тратил 10 минут на товар, с TV — 30 секунд. Экономия времени составила 95%, а наполнение контента ускорилось на 40%. Особенно это критично для проектов с сотнями товаров, где каждый лишний клик — потеря времени.
Какие типы TV бывают и как их грамотно подключить? Разберём на практике.
Как выбрать правильный тип TV?
Под каждую задачу — свой тип. Всего в MODX 15 базовых типов TV, но для 80% проектов достаточно 5–7. Для краткого текста — Text, для многострочного — Textarea, для выбора из списка — Listbox. Для цен используйте Number, для дат — Date, для изображений — Image. Если нужна галерея — лучше MIGX или свернутый TV с JSON. Типы TV различаются не только по вводу, но и по выводу: Checkbox может хранить значения через запятую, а для множественного выбора удобнее Listbox Multi. Важно настроить параметры ввода и вывода правильно — иначе редактор увидит не то, что ожидает.
Типичные ошибки при настройке TV
| Ошибка | Последствие | Решение |
|---|---|---|
| Не привязан TV к шаблону | Поле не отображается в ресурсе | Проверить вкладку «Доступ» |
| Неправильный тип ввода | Некорректные данные (цена как текст) | Использовать Number для чисел |
| Не настроен вывод | Сырые данные без форматирования | Применить модификаторы (например, number_format) |
| Использование RichText без фильтрации | XSS-уязвимости | Включить фильтрацию тегов |
Типы TV и их применение
| Тип | Применение |
|---|---|
| Text | Краткое текстовое поле |
| Textarea | Многострочный текст |
| RichText | WYSIWYG-редактор |
| Number | Числовое поле (цена, количество) |
| Date | Дата с календарём |
| Image | Выбор изображения из медиабраузера |
| File | Загрузка или выбор файла |
| URL | Ссылка |
| Email с валидацией | |
| Checkbox | Один флажок (да/нет) |
| Listbox (single) | Выпадающий список |
| Listbox (multi) | Множественный выбор |
| Radio Options | Переключатели |
| Tag | Теги через запятую |
| autotag | Автодополнение тегов из существующих |
| migxdb | Сложная структура (MIGX) |
Как мы настраиваем TV: реальный кейс
Рассмотрим интернет-магазин. Нужны поля: цена, артикул, вес, категория (выпадающий список), изображения (галерея). Используем FastTab для группировки по вкладкам. Вкладка «Товар» содержит price (Number), sku (Text), weight (Number). Вкладка «Категория» — category (Listbox single, источник из БД). Вкладка «Галерея» — MIGX с полями image (Image), alt (Text). Настройка занимает 3–5 часов, включая тестирование вывода в шаблоне. Результат: редактор заполняет товар за минуту, а не за час.
Почему стоит доверить настройку профессионалам?
TV — мощный инструмент, но ошибки в конфигурации приводят к лишним доработкам. Мы гарантируем: настройка под ваш шаблон, оптимизация вывода (LCP, CLS), использование современных подходов (сниппеты, плейсхолдеры). Опыт более 5 лет, более 30 проектов на MODX. Гарантия 3 месяца на доработки.
Примеры вывода 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}"); } Что входит в настройку TV под ключ
- Анализ структуры контента и типов TV
- Создание и привязка TV к шаблонам
- Группировка через FastTab по вкладкам
- Настройка вывода (модификаторы, сниппеты)
- Тестирование и корректировка
- Документация для редакторов
- Гарантия 3 месяца на доработки
Сроки и стоимость
Создание и настройка 10–20 TV для проекта с привязкой к шаблонам и группировкой через FastTab — 3–5 часов. Полный цикл работ под ключ — от 2 до 5 дней. Стоимость рассчитывается индивидуально — оценим проект после знакомства с задачей.
Свяжитесь с нами, чтобы получить консультацию по вашему проекту. Закажите настройку TV и ускорьте работу редакторов.







