Оглавление

Переменная шаблона (TV) — это дополнительное настраиваемое поле для ресурса MODx. TV используются для расширения полей ресурса. Обычный ресурс MODx имеет определенное количество полей по умолчанию: заголовок страницы, контент, описание и т. д. Если вам нужно добавить некоторые кастомные поля на свои страницы, например, вторая область содержимого или выпадающий список названий месяцев или любые другие поля пользовательских данных, вы можете сделать это, добавив TV в свой шаблон. MODx позволяет вам иметь практически неограниченное количество TV.

Наверняка у вас возникнет вопрос, почему дополнительные поля называются «Переменная шаблона (Template Variable)», ведь они выводятся в ресурсах! На самом деле все довольно логично. Ресурсов на сайте может быть огромное количество, тысячи, десятки тысяч, сотни и т. д. Создавая TV, вам необходимо как-то определить, к каким ресурсам относить данную TV. Ведь, наверняка, данное дополнительное поле вам не нужно отображать на всех страницах. По этой причине, при создании TV, вы указываете к каким шаблонам она относится. Иными словами, TV могут быть использованы только в шаблонах, которые вы установили для TV.

Использование

Допустим, у нас есть TV под названием bio, это текстовое поле TV, которое мы создали. Мы присвоили его нашему шаблону «Страницы биографии» и хотим показать его на нашей странице. Для этого мы просто поместим этот тег в наши шаблоны:

[[*bio]]

Убедитесь, что вы создали данную TV и прикрепили её к используемому шаблону.

Расширенное использование

TV также могут иметь параметры. Скажем, у вас есть TV под названием «intromsg» со значением:

Hello [[+name]], you have [[+messageCount]] messages.

Вы можете заполнить данные параметров с помощью вызова TV следующим образом:

[[*intromsg?name=`George` &messageCount=`123`]]

Который выведет следующую информацию:

Hello George, you have 123 messages.

Фильтры вывода тоже отличные инструменты для применения к TV. Скажем, вы хотите ограничить вывод TV до 100 символов. Для этого используем выходной фильтр «limit»:

[[*bioMessage:limit=`100`]]