создание и использование дополнительных полей
Разберём и научимся использовать TV в MODX Revo.
TV — дополнительные поля, которые вы можете заполнять при создание нового ресурса. Эти поля позволяют фильтровать и выводить различные значения.
К примеру, вывести миниатюру изображения ресурса его родителю (рубрике), как в обычном блоге. Простой текст, который нужно выводить в определённое место, видеоролики, флешролики, простые метки и многое другое.
Пример работы, миниатюра статьи
Рассмотрим простое использование, создадим TV (миниатюру изображения) для ресурсов — статей, которые будет выводиться в рубрику.
1. Для начала создадим наше TV, для этого во вкладке «Элементы» создадим дополнительное поле.
2. На первой вкладке указываем имя, его мы будем использовать для вывода.
3. Далее заходим во вкладку «Параметры ввода» и здесь мы указываем в каком формате мы будем записывать наше tv. Выберем изображение, тем самым при создании, мы сможем через диспетчер файлов загружать и выбирать изображения.
4. Заходим в пункт «Параметры вывода», где мы будем выбирать, в каком формате будем выводить наше tv. Указываем текст и при выводе мы будем получать адрес на наше изображение, к примеру: images/img.jpg.
5. Заходим во вкладку «Доступно для шаблонов» и и выбираем шаблон для наших статей. Вы сможете писать tv во всех записях, у которых выбран данный шаблон.
6. Наше дополнительное поле создано, сохраняем его.
7. Заходим в редактирование нашего ресурса (шаблон которого мы указали выше) и переходим в новую вкладку «Дополнительные поля», где у нас появляется наше поле.
Нажмите на кнопку внутри дополнительного поля и откроется диспетчер файлов, загружаем или выбираем наше изображение.
8. Сохраняем запись, теперь мы сможем вывести наше изображение, как в самой статье, так и в рубрике.
9. Чтобы вывести в самой статье, заходим в шаблон статей и в нужном месте вызываем миниатюру:
<img src="[[*image]]" alt=""/>
Теперь в каждой статье будет выводиться изображение, где заполнено дополнительное поле.
[[*image:notempty=``]]
Лучше использовать такую запись. Она гласит — если дополнительное поле не заполнено, то мы ничего не выводим. Если использовать первый вариант, то во всех статьях, где не заполнено поле, будет выводится изображения без адреса.
10. Теперь выведем наше tv в родителе (рубрике), для этого заходим в его шаблон и вызываем наши рубрики с дополнительными полями:
[[!pdoResources? &limit=`10` &parents=`[[*id]]` &tpl=`blog` &includeTVs=`image`]]
Вывели мы через PdoResurses, кто не знает, как с ним работать, читайте тут.
Главное подключить наше tv, за это отвечает — &includeTVs, где мы пишем имя нашего поля.
Теперь в чанке оформления blog, мы вызываем наше поле:
[[+introtext]]
Читать далее
Вот так просто и работать с дополнительными полями в modx, все они работают по аналогии с этим примером.
Modx TV (переменные шаблона)
Автор Алексей На чтение 6 мин. Опубликовано
Последнее изменение поста: 4 июля 2019 в 16:45
В предыдущих статьях мы разбили шаблон на чанки, создали один сниппет и добавили его. Сегодня рассмотрим дополнительные поля (так же их называют: TV — template variables, переменные шаблона и Телевизоры) и принципы работы с ними.
Что это такое
TV в MODX – это пользовательские поля, которые можно выводить в шаблонах. Причем когда вы их создаете, вы назначаете им шаблоны, и их нельзя будет использовать в других не соотносящихся шаблонах. TV позволяют Вам при построении дизайна сайта быть более гибкими, и использовать намного больше полей, чем задано умолчанию.
По идее TV — это обычные поля, единственно вы создаете их и выводите сами. У этих дополнительных полей также имеются типы ввода и вывода, которые дают возможность быть не просто полями текста, а полями тегов, изображений, да практически любого контента. Вы даже можете самостоятельно создавать свои пользовательские типы полей. До этого дойдем позже. Сейчас мы рассмотрим только основы. В дальнейшем мы будем еще возвращаться к TV, так как они являются достаточно гибким инструментом.
Стандартные переменные шаблона
Каждый ресурс MODX имеет стандартный набор TV
Так же поля есть на вкладке настройки.
Создание
Недостаточно стандартных полей? Можете с легкостью создать новые.
Для этого, в дереве с боку перейдите на вкладку «Элементы» и нажмите на значок «Новый TV», либо щелкните ПКМ на «Дополнительные поля» и выберите «Новое дополнительное поле» для создания новой TV.
Откроется окно создания переменной шаблона. Вводите имя (en) и заголовок (подпись, описание и категорию по желанию).
Старайтесь указывать вашим переменным шаблона имена, которые покажут их предназначение. Заголовок переменной так же важен, т.к. он будет являться подсказкой для редактора сайта и для вас будет подсказкой.
Далее переходим во вкладку «Параметры ввода» и указываем тип поля.
Краткий разбор стандартных типов ввода
- URL — ввод URL адресов
- Авто-метка — обычно используют для создания тегов к ресурсам (можно вводить незаполненные в значениях по умолчанию метки)
- Дата — ввод дат
- Изображение — для изображений
- Переключатели (radio) — можно использовать для включения (отключения) каких-нибудь блоков
- Списки (одиночный и множественный выбор)
- Список ресурсов — для ввода/вывода ресурсов
- Тег — почти то же самое что авто-метка (но можно выбирать только из введенных значений)
- Текст — для ввода небольшого текста
- Текстовая область — то же самое что текст, только окошко ввода побольше
- Текстовый редактор — текстовая область, но уже с редактором
- Файл — для различных файлов (которые разрешены в системной настройке upload_files)
- Флажки (checbox) — по сути почти то же самое что переключатели
- Число — ввод цифр
- Электронная почта — ввод электронной почты.
Заполнение возможных значений для radio, списков, checbox
Возможные значения вводятся в таком формате:
Мышка||Кошка||Собака
либо:
Белый==#ffffff||Черный==#000000
Все это более подробно мы будем разбирать в последующих уроках.
В моем случае “Изображение”, так же можно указать значение по умолчанию. Данное поле будет использоваться во всех шаблонах — для Open Graph разметки + вывод основной картинки. В значении по умолчанию я указал не полный путь до картинки (вырезал путь указанный для источника файлов).
Параметры вывода оставляем по умолчанию и переходим во вкладку «Доступно для шаблонов» и установите галочку напротив своего шаблона (шаблонов) в которых понадобиться данное TV.
У меня сейчас только 1 шаблон.
Данное поле будет отображаться только на страницах с указанными шаблонами.
Для TV изображений рекомендую указывать новый источник файлов.
Необходимое поле создано, не забудьте сохранить.
Теперь таким же образом можете создать сколько угодно переменных шаблона. К примеру если вам нужны текстовые области (с текстовым редактором, то в поле, “параметры ввода” указываем “Текстовый редактор”.
Небольшая подсказка: Если какое-либо TV, которое вы хотите создать, похоже на ранее созданное, то вы можете просто-напросто дублировать его, вместо того чтобы создавать идентичное, тем самым ускорить процесс их создания. Для этого используйте опцию «Копировать».
Где располагаются
Дополнительные поля по умолчанию располагаются во вкладке “Дополнительные поля”, при редактировании страниц.
Если вы настраивали MODX по моим урокам, то оно будет находиться под основным контентом (содержимым).
Как выводить в шаблонах
Для наглядности: так у меня сейчас выглядит первый экран главной страница.
Слева текст (выделил оранжевым прямоугольником), справа картинка (выделил зеленоватым прямоугольником).
Статический код данного блока выглядит так:
Превратим его в частично динамический:
<section> <div> <div> <div> <div> <div> <span>welcome</span> <h2>[[*pagetitle]]</h2> <h5>[[*introtext]]</h5> <div> <a href="#">Обо мне</a> <a href="#">портфолио</a> </div> </div> </div> <div> <div> <img src="[[*img]]" alt="[[*pagetitle]]"> </div> </div> </div> </div> </div> </section>
Здесь мы использовали поля pagetitle, introtext и созданное img (заполняем что не заполнено) и сохраняем.
Переходим на главную и видим, что наш контент сменился.
Видео
Сейчас мы рассмотрели малую часть основ, но мы ещё не раз будем возвращаться к ним.
Важно! Старайтесь не плодить кучу доп. полей — они не особо быстро выводятся. Для однотипных и сложных конструкций из доп. полей есть пакет MIGX.
В следующем уроке мы изучим компонент ClientConfig, который позволяет с легкостью создавать и выводить однотипные настройки (телефон, соц сети и т.д.) — и по скорости вывод этих полей выше (равен скорости вывода системных настроек).
MODX — TV параметры | ИТ Шеф
Статья, в которой рассмотрим назначение TV параметров и основные принципы работы с ними в MODX Revolution.
Что такое переменные шаблона (TV)?
По умолчанию любой ресурс в MODX Revolution имеет определённый набор полей: pagetitle (заголовок), content (содержимое), description (описание) и т.д.
Поля, которые имеет любой ресурс (документ) в MODX Revolution по умолчанию
Но кроме встроенных полей с каждым ресурсом можно ещё связать (добавить к нему) любое количество других полей. Осуществляются эти действия в MODX Revolution посредством TV переменных. Связывание TV параметров с ресурсами выполняется не напрямую, а через шаблоны. Т.е. для того чтобы дополнительное поле появилось у ресурса, соответствующий TV параметр должен быть связан с его шаблоном. Из-за этого данные переменные и называются TV, т.е. переменными шаблона (Template Variable).
Создание TV (дополнительных полей)
Рассмотрим, как в MODX Revolution с помощью TV-переменных можно расширить назначение стандартных ресурсов (документов). Например, разберём какие TV поля необходимо добавить к ресурсам, чтобы их можно было использовать, для представления книг на сайте.
В MODX создание TV параметров осуществляется очень просто, посредством выполнения следующих шагов:
- Войти в админку (менеджер) MODX Revolution.
- Перейти в левой панели во вкладку «Элементы» и нажать на кнопку «Новое дополнительное поле».
Создание tv поля
- В открывшейся странице ввести имя дополнительному полю, например,
authors
. Данное поле будем использовать для хранения авторов книги. Создание TV-поля в MODX Revo (задание имени) - Перейти на вкладку «Параметры ввода» и указать необходимый формат данных, который будет определять тип значения, которое может быть помещено в этот TV параметр. Для TV переменной authors установим тип значения ввода, равный «текст».
- В секции «Параметры вывода» следует задать формат, в котором необходимо выводить данные из этого поля. Например, TV параметр
authors
будем выводить в формате текста. Для этого ему установим соответствующее значение в качестве значения параметра «Тип вывода». - В разделе «Доступно для шаблонов» необходимо выбрать те шаблоны, через которые TV поле появится у соответствующих ресурсов.
Процесс привязывания TV поля к ресурсам (через соответствующие шаблоны)
Для примера создадим ещё несколько TV параметров: release-year
(год выпуска), quantity-of-pages
(количество страниц), cover-photo-book
(фото обложки книги). Привяжем TV поля к тому же шаблону (например, шаблон книги).
Заполнение TV полей при создании или редактировании ресурсов
После создания TV полей они становятся доступными во время создания или редактирования соответствующих ресурсов. Располагаются TV-поля на страницах ресурсах по умолчанию во вкладке «Дополнительные поля».
Дополнительные поля, которые появились у ресурсов с установленным шаблоном «Книга»
Более удобного расположить TV поля на страницах определённых ресурсов можно с помощью инструмента MODX Revo «Настройка форм» (значок «Шестерёнка» в главном меню админки -> пункт «Настройка форм»).
Некоторый результат, который можно достигнуть путём применения определённого набора правил к соответствующим ресурсам (через шаблон) с помощью элемента MODX «Настройка форм».
Расположение TV переменных у ресурса, представление которого было настроено с помощью инструмента «Настройка форм»
Вывод TV (дополнительных полей)
В MODX вывод значения TV переменной, связанной с текущим ресурсом, осуществляется также как и любого другого поля этого ресурса.
Например, получим значение TV поля authors
у текущего ресурса (в шаблоне):
[[*authors]]
Рассмотрим ещё один пример. В котором разберём, как можно с помощью сниппета pdoResources
, организовать вывод всех дочерних ресурсов (по отношению к текущему ресурсу) вместе с их TV полями:
[[!pdoResources? &parents=`[[*id]]` &includeTVs=`authors,cover-photo-book,quantity-of-pages,release-year` &tpl=`@INLINE <h3><a href="[[~[[+id]]]]">[[+pagetitle]]</a></h3> <ul> <li>Автор(ы): [[+tv.authors]]</li> <li>Количество страниц: [[+tv.quantity-of-pages]]</li> <li>Год выпуска: [[+tv.release-year]]</li> </ul> <img src="/[[+tv.cover-photo-book]]" alt="Фото обложки книги [[+pagetitle]]"> ` ]]
То же самое действие, но уже с использованием сниппета getResources:
// вызов сниппета getResources [[!getResources? &parents=`[[*id]]` &includeTVs=`1` &tpl=`book` ]] // содержимое чанка book: <h3><a href="[[~[[+id]]]]">[[+pagetitle]]</a></h3> <ul> <li>Автор(ы): [[+tv.authors]]</li> <li>Количество страниц: [[+tv.quantity-of-pages]]</li> <li>Год выпуска: [[+tv.release-year]]</li> </ul> <img src="/[[+tv.cover-photo-book]]" alt="Фото обложки книги [[+pagetitle]]">Вывод всех дочерних ресурсов (по отношению к текущему) вместе со значениями их TV-полей

MODX — Использование в условии where TV переменных
Например, следующий код показывает, как можно выбрать книги (ресурсы), в зависимости от некоторого условия (поле автор должно содержать значение «Резиг»). Условия в сниппете pdoResources
задаются с помощью параметра where
.
[[!pdoResources? &parents=`[[*id]]` &includeTVs=`authors,cover-photo-book,quantity-of-pages,release-year` &tpl=`@INLINE <h3><a href="[[~[[+id]]]]">[[+pagetitle]]</a></h3> <ul> <li>Автор(ы): [[+tv.authors]]</li> <li>Количество страниц: [[+tv.quantity-of-pages]]</li> <li>Год выпуска: [[+tv.release-year]]</li> </ul> <img src="/[[+tv.cover-photo-book]]" alt="Фото обложки книги [[+pagetitle]]"> ` &where=`{"authors:LIKE":"%Резиг%"}` ]]
Сортировка ресурсов по TV полю
Для сортировки ресурсов в MODX Revo в зависимости от того какое значение имеет TV поле можно выполнить с помощью параметра сниппета pdoResources sortby.
Например, выведем книги по году выпуска (по убыванию):
[[!pdoResources? &parents=`[[*id]]` &includeTVs=`authors,cover-photo-book,quantity-of-pages,release-year` &tpl=`@INLINE <h3><a href="[[~[[+id]]]]">[[+pagetitle]]</a></h3> <ul> <li>Автор(ы): [[+tv.authors]]</li> <li>Количество страниц: [[+tv.quantity-of-pages]]</li> <li>Год выпуска: [[+tv.release-year]]</li> </ul> <img src="/[[+tv.cover-photo-book]]" alt="Фото обложки книги [[+pagetitle]]"> ` &sortby=`release-year` &sortdir=`DESC` ]]
Дополнительные поля MODX Revolution
Дополнительные поля
Дополнительные поля (Template Variable, коротко TV) употребляются для расширения атрибутов ресурса, которые доступны по умолчанию (к примеру, странички либо веб-ссылки). Обыкновенные ресурсы MODx располагают некоторой численностью установленных по умолчанию полей: заглавие (pagetitle), содержание (content), описание (description) и т.д. В случае если вам необходимо, вы можете прибавить определенные собственные поля к вашей страничке, к примеру, 2-ое поле содержания либо выпадающий список месяцев, либо другие иные пользовательские данные. Осуществляется данное путем прибавления добавочных полей к вашему шаблону. MODx дает возможность располагать фактически безграничной численностью дополнительных полей (TV). Для организации новейшего добавочного поля необходимо перейти по строчке «Дополнительные» на вкладке «Элементы» в окошке «Просмотр деревьев» (колонка с лева) и в выпадающем меню избрать пункт «Новое добавочное поле»:
Дополнительные поля в панели управления отмечаются рисунком телевизора, попросту согласно аббревиатуры TV.
Откуда появилось данное TV?
В английской версии MODx Revolution добавочные поля называются Template Variable, или же переменные шаблонов. Отчего при переводе интерфейса приняли решение именовать данный элемент дополнительным полем, я ответить не могу. Однако, сейчас вы знаете, откуда появилась аббревиатура TV — от Template Variable.В то время ресурс отражается в виде веб-странички, теги TV заменяются тем содержимым, каковое пользователь ввел в данное поле. Дополнительные поля считаются специфическими деталями для шаблонов, то есть имеют все шансы применяться лишь в шаблонах, в коих они определены.Применение
Допустим, что мы организовали дополнительное поле с именем ‘bio’, которое представляет собой попросту кусочек текста. Мы связали его с шаблоном «Странички биографии» и желаем, чтобы данный кусок текста отражался на нашей страничке. Для того чтобы достичь данного, довольно расположить на нашей страничке тег:<code>[[*bio]]</code>Для того чтобы располагать возможностью применять дополнительное поле (TV) на вашей страничке, вы обязаны выбрать шаблоны, для которых доступно данное дополнительное поле, на вкладке «Доступно для шаблонов» (смотрите рис.):

Hello [[+name]], you have [[+messageCount]] messagesУ вас есть возможность задать определенные значения параметрам таким вызовом:
<code>[[*intromsg?name=`George` &messageCount=`123`]]</code>В итоге вывод примет такой вид:
Hello George, you have 123 messages.Фильтры вывода являются отличным инструментом, который может использоваться и к дополнительным полям. К примеру, вы хотите обусловить вывод дополнительного поля 100-ей символов. У вас есть возможность попросту применить фильтр вывода ‘limit’ :
<code>[[*bioMessage:limit=`100`]]</code>
Все о компьютерах — Создание и использование дополнительных полей MODx Revolution
Дополнительное поле или TV-параметр – это простые пользовательские поля, которые Вы можете добавлять в свой шаблон. Они позволяют вам быть более гибкими в построении сайта и использовать больше полей, чем задано по умолчанию. К примеру, это могут быть также поля изображений, поля url, поля даты и другие.
Дополнительные поля являются просто полями, которые добавляются к вашему документу, и имеют такой же синтаксис как и поля по умолчанию: [[*имя_поля]]
Перейдем во вкладку «Элементы» и создадим «Дополнительное поле» по тому же прицепу что и чанк или сниппет. Назовем его «Image» в поле «Имя», в поле «Заголовок» опишем его для нашего понимания его. Остальное нас пока не интересует.
Далее перейдем во вкладку «Параметры ввода» и в ней изменим «Тип ввода» на «Изображение».
И последнее что нам нужно будет сделать при создании Дополнительного поля, находится во вкладке «Доступно для шаблонов». Напротив «BootstrapTemplate» втавим галочку доступа и жмем на кнопку Сохранить.
Использование Дополнительного поля
Отлично! Теперь заполним это поле с изображение. Перейдем к редактированию страницы любой страницы (например, к созданной ранее «Новости»), главное – нам нужно проверить какой шаблон подключен к этой странице. Если выбран не тот, к которому мы прикрепили дополнительное поле, измените на нужное. Перейдем на вкладку «Дополнительные поля» и в поле «Image» нажмем на иконку изображения и выберите изображение из каталога.
Но в нашем новом проекте его нет, т.ч. скопируйте любое изображение в любую папку assets
. Либо загрузите через открывшееся окно браузера. Выберите папку и нажмите на иконку «Загрузить файлы» -> «Выбирите файл(ы)» -> «Загрузить» -> «ОК».
После того как Вы нажали на кнопку ОК поле «Image» заполнилось и появилосьуменьшенное изображение. Не забудьте сохранить изменения нажав кнопку Сохранить.
Теперь давайте отобразим это изображение в теле нашей «Новости». Для этого внизу «Содержимое ресурса» уберите галочку «Toggle Editor» и вставьте код:
<img src="[[*Image]]">
После сохранения страницы, перейдите на ее просмотр. Если Вы увидели ваше изображение, то сделали все правильно! На этом ознакомление с Дополнительными полями MODx Revolution.
Если у Вас появились ко мне вопросы по данной статье, задавайте их в комментариях ниже.
MODX Revo: создание дополнительного поля TV
WEB-студия » Полезное » MODX Revo: создание дополнительного поля TV
Разберём и научимся использовать TV в MODX Revo.
TV — дополнительные поля, которые вы можете заполнять при создание нового ресурса. Эти поля позволяют фильтровать и выводить различные значения.
К примеру, вывести миниатюру изображения ресурса его родителю (рубрике), как в обычном блоге. Простой текст, который нужно выводить в определённое место, видеоролики, флешролики, простые метки и многое другое.
Пример работы, миниатюра статьи
Рассмотрим простое использование, создадим TV (миниатюру изображения) для ресурсов — статей, которые будет выводиться в рубрику.
1. Для начала создадим наше TV, для этого во вкладке «Элементы» создадим дополнительное поле.
2. На первой вкладке указываем имя, его мы будем использовать для вывода.
3. Далее заходим во вкладку «Параметры ввода» и здесь мы указываем в каком формате мы будем записывать наше tv. Выберем изображение, тем самым при создании, мы сможем через диспетчер файлов загружать и выбирать изображения.
4. Заходим в пункт «Параметры вывода», где мы будем выбирать, в каком формате будем выводить наше tv. Указываем текст и при выводе мы будем получать адрес на наше изображение, к примеру: images/img.jpg.
5. Заходим во вкладку «Доступно для шаблонов» и и выбираем шаблон для наших статей. Вы сможете писать tv во всех записях, у которых выбран данный шаблон.
6. Наше дополнительное поле создано, сохраняем его.
7. Заходим в редактирование нашего ресурса (шаблон которого мы указали выше) и переходим в новую вкладку «Дополнительные поля», где у нас появляется наше поле.
Нажмите на кнопку внутри дополнительного поля и откроется диспетчер файлов, загружаем или выбираем наше изображение.
8. Сохраняем запись, теперь мы сможем вывести наше изображение, как в самой статье, так и в рубрике.
9. Чтобы вывести в самой статье, заходим в шаблон статей и в нужном месте вызываем миниатюру:
<img src="[[*image]]" alt=""/>
Теперь в каждой статье будет выводиться изображение, где заполнено дополнительное поле.
Оригинал статьи: https://daruse.ru/tv-v-modx-sozdanie-i-ispolzovanie
pdoField — получение и вывод полей родителя (ей)

Автор Алексей На чтение 2 мин. Опубликовано
Довольно часто требуется получить и вывести поля родителей и сегодня мы разберемся в том, как это сделать при помощи сниппета pdoField, который входит в состав компонента PdoTools. Данный сниппет в отличии от его аналогов UltimateParent и getResourceField имеет все их возможностями — выводит как любые поля указанного документа или его родителя, так и их переменные (ТВ параметры). Ко всему этому он может работать с документами в любых контекстах и при выборке есть можно указать доп. параметры, это позволяет к примеру: можно у скрытых ресурсов не выводить поля. А, если указать параметр &class, то возможно получить любое поле объекта Модх. И pdoField можно вызывать как фильтр вывода, подробнее про фильтры можно почитать здесь: docs.modx.pro/sistema/osnovyi/filtryi-vvoda-i-vyivoda
Параметры
pdoField принимает основные параметры помпонента pdoTools (смотри docs.modx.pro/komponentyi/pdotools/obshhie-parametryi) и немного своих:
Внимание. pdoField не поддерживает работу с чанками.
Стоит обратить внимание: Если указаны параметры &topLevel или &top, а параметр &context нет, тогда будет сделан доп. запрос в БД (чтобы определить контекст).
Примеры
Вызываем как фильтр вывода:
[[*id:pdofield=`pagetitle`]]
Так же можно указывать параметры при помощи JSON массива . Например, выбираем 2-го родителя ресурса и выводим его «pagetitle»:
[[*id:pdofield=`{"top":2,"field":"pagetitle"}`]]
или тоже самое обычным вызовом (рекомендуется, так как это удобнее и быстрее):
[[pdoField? &id=`[[*id]]` &field=`longtitle` &top=`2`]]