Tv авто метка modx

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

Отредактировано: 15 Ноября 2019

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Работа с доп. полями при помощи xPDO

Создание текстового доп. поля:

У каждого типа поля свой набор настроек, соответственно, код местами будет отличаться:

TV списка одиночного выбора

TV чекбокса множественного выбора

TV для компонента FastUploadTV

TV для компонента MIGX

TV для компонента YandexMaps

Назначение шаблонов доп полям (если создается несколько доп полей, данный блок кода должен идти последним):

Заполнение дополнительного поля через xPDO:

Получение значения дополнительного поля через xPDO:

Источник

Tv авто метка modx

Сейчас мы с вами реализуем облако тегов, с помощью компонента “tagLister”. Для этого нам необходимо скачать и установить два дополнения:

Когда мы инсталлируем компоненты, нам нужно создать дополнительное поле “tags”, где будут содержаться наши теги:

Важно, чтобы TV-поле называлось именно “tags”, иначе придется переопределять предустановки компонента:

Tv авто метка modx

Теперь я более подробно расскажу про сам компонент. В составе него идет 3 сниппета:

Чтобы приступить, нам необходимо создать шаблон “Поиск по тегам” со следующим кодом:

В параметре «tplPageWrapper» нужно указать чанк, найдете его на тестовом сайте. Я использовал вместо getResources – pdoResources, чтобы выборка происходила быстрее. В видео я объясню, что значит каждый из параметров и вы сможете посмотреть это в официальной документации.

Итак, у нас готов шаблон. Теперь в корне сайта нам необходимо создать ресурс – “Поиск по тегам”:

Tv авто метка modx

На данном ресурсе у на будут выводиться релевантные выбранному тегу статьи. Отлично!

Теперь вспомните: где у нас выводятся теги? Правильно! В шаблоне “Пост” и в чанке “postTpl”. Сейчас мы с вами выведем теги для статьи, но прежде нужно добавить в нашу тестовую статью какие-нибудь “тестовые теги” (указываем через запятую, сохраняем):

Tv авто метка modx

В шаблоне теги у нас выводятся в двух местах, причем их стиль отображения отличается. Если в первом случае, нам достаточно просто вызвать сниппет toLinks (шаблон ссылка – по умолчанию), то во втором случае, нужно создать чанк “tagRowTpl”:

И в шаблоне нужно прописать в следующих местах вызовы toLinks:

Tv авто метка modx

Заметили параметр target? Он как раз ведет на тот ресурс, который мы создали. Теперь нам нужно сделать аналогичный вызов в чанке postTpl:

Tv авто метка modx

Помните разницу? Здесь мы вызываем TV с префиксом и знаком “+”. Также не забудьте включить TV-параметр в выборку в шаблоне “Блог”:

Tv авто метка modx

Ну, что? Проверим? Покликайте по тегам на странице статьи или блога. Работает! Можете создать другую статью и сделать отличные от созданной раннее тегами.

Теперь выведем облако тегов в сайдбаре. Я не буду управлять их размером, выведу 15 популярных:

Tv авто метка modx

Код чанка “tagListerTpl”:

Все! У нас получилось! Теги реализованы. Согласитесь, что все очень быстро и просто!

Tv авто метка modx

Петропавловский Артем

автор

Основатель Dart Agency, web-разработчик, блоггер.

Источник

Навигация по автометкам

Хочу поделиться своим способом работы с метками, для дополнительной навигации по ресурсам. Вообще то, для этого уже есть tagLister, но мне нравится контролировать процесс. И вообще, это мой первый пост тут, так что сильно не пинайте 🙂

Tv авто метка modx

Для создания, собственно меток, логично использовать штатный tv параметр с типом autotag (автометка), поэтому вначале, создаю его и как нибудь называю. Не задумываясь особенно, назвал его по названию типа — autotag. Добавляю созданный tv в шаблон для вывода постов и с ним — все.

Tv авто метка modx

Для вывода меток, делаю два сниппета, один для создания облака меток — tagCloud, второй для вывода меток в блоге и в самом посте — tagLinks.

Этот сниппет выводит список уникальных значений меток, в виде ссылок, с GET параметром, который потом будет использоваться, для фильтрации вывода ресурсов:

Что в нем происходит:
Из таблицы с классом «modTemplateVarResource», выбираю все tv с типом «autotag» и именем «autotag», связанные с ресурсами находящимися в текущем контексте, родителем для которых, в случае вывода в блоге, является ресурс где вызывается сниппет, а в случае вывода в статье — родитель статьи. Так как в одной автометке, может быть много значений, перечисленных через запятую, то сначала, на уровне запроса, убираю повторяющиеся множественные значения, затем разбиваю результирующий массив по запятым и из него, так же, убираю повторяющиеся значения. В конце формирую ссылки.

Этот сниппет, выводит список ссылок, для блога и ресурса, а так же передает GET-параметр в вызов pdoResources, для фильтрации по меткам. В принципе, это разные задачи, но я решил не плодить сниппеты.

Что в нем происходит:
Сниппет может принимать в качестве параметров два значения:

Tv авто метка modx

Tv авто метка modx

Во втором случае, когда передается параметр &get=`1`, сниппет смотрит в адресную строку и если там есть значение метки, то передает его в вывод, оформляя подходящим для фильтрации образом.

А вот вызов pdoResources, для создания блога и фильтрации по автометке.

На уникальность не претендую 🙂

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

Здесь, я выбираю записи из таблицы с классом modResource, с которыми связана автометка имеющая, хотя бы одно значение, такое же как у текущей.

Источник

MODx: ресурсы, чанки и какие-то телевизоры

После того как один мой знакомый спросил у меня про то, что за телевизоры используются в шаблонах, я решил отложить все дела на вечер и написать эту статью.
Речь пойдёт о том из чего состоит MODx, как его лучше «готовить», «подавать» и «употреблять».

Рассчитана она в первую очередь на новичков т.к. содержит базовый минимум того, что нужно знать любому modxоводу, ну и конечно на тех кому просто интересно.

Статья ориентирована в основном на Revolution и отражает основные отличия в синтаксисе её от предшественницы, но для обратной совместимости буду вставлять иногда аналогии с Evolution.

Ресурсы (Resources)

Зачастую ресурс представляет собой страницу сайта. Кроме того существуют другие типы ресурсов, такие как, ссылки, сами файлы, и т.д. По умолчанию тип нового ресурса — документ, точнее представление одной страницы вашего сайта.

Шаблоны (Templates)

Параметры

Используются для вывода значений полей ресурса.
Вызов осуществляется так:

EvolutionRevolution
[*field*][[*field]]

Полный список полей можно посмотреть в документации здесь.

TV параметры

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

EvolutionRevolution
[*tv*][[*tv]]

TV параметры можно использовать как чанки добавляя им параметры. Например если есть TV-параметр ‘intromsg’ со значением:

Полный список фильтров можно посмотреть тут. Кроме того фильтры можно применять к чанкам и сниппетам.

Комментарии

Чанки (Chunks)

Чанк — кусок статического текста который можно встроить в шаблон, в другой чанк, либо вызвать в снипете. Чанк обладает теми же свойствами что и шаблон за исключением того, что не содержит TV-параметров и не может быть назначен ресурсу напрямую.
Чанк не может содержать какой-либо исполняемый код, но в нём можно вызывать сниппеты для вывода динамического контента.
Вызов чанка осуществляется так:

EvolutionRevolution
<>[[$chunk]]

В чанк можно передавать параметры. К примеру мы создадим чанк с таким содержанием:

Сниппеты (Snippets)

Сниппет — ​PHP код который исполняется во время обработки шаблона MODx. Результат работы его может быть расположен либо на месте его вывода, либо в плейсхолдерах, специальных тегах определяющими куда поместить те или иные результаты.

Вызов сниппета осуществляется так:

EvolutionRevolution
[[snippet]][[snippet]]

Размещение плейсхолдера:

EvolutionRevolution
[+placeholder+][[+placeholder]]

Как и чанки в сниппеты можно передавать параметры, например так:

Чтобы указать системе не кешировать сниппет требуется добавить восклицательный знак перед именем:

Синтаксис тегов

Каждый тег MODx Revolution может содержать в себе другие теги MODx. Для того что бы код был более менее читаем разрешено размещать код тега на нескольких строках придерживаясь такого общего формата (в скобках мои комментарии, которые писать не надо =)):

Источник

Переменные шаблона TV в CMS MODX

Tv авто метка modx

Статья, в которой рассмотрим назначение TV параметров и основные принципы работы с ними в MODX Revolution.

Что такое переменные шаблона (TV)

По умолчанию любой ресурс в MODX Revolution имеет определённый набор полей: pagetitle (заголовок), content (содержимое), description (описание) и т.д.

Tv авто метка modx

Но кроме встроенных полей с каждым ресурсом можно ещё связать (добавить к нему) любое количество других полей. Осуществляются эти действия в MODX Revolution посредством TV переменных. Связывание TV параметров с ресурсами выполняется не напрямую, а через шаблоны. Т.е. для того чтобы дополнительное поле появилось у ресурса, соответствующий TV параметр должен быть связан с его шаблоном. Из-за этого данные переменные и называются TV, т.е. переменными шаблона (Template Variable).

Создание TV (дополнительных полей)

Рассмотрим, как в MODX Revolution с помощью TV-переменных можно расширить назначение стандартных ресурсов (документов). Например, разберём какие TV поля необходимо добавить к ресурсам, чтобы их можно было использовать, для представления книг на сайте.

В MODX создание TV параметров осуществляется очень просто, посредством выполнения следующих шагов:

Для примера создадим ещё несколько TV параметров: release-year (год выпуска), quantity-of-pages (количество страниц), cover-photo-book (фото обложки книги). Привяжем TV поля к тому же шаблону (например, шаблон книги).

Заполнение TV полей при создании или редактировании ресурсов

После создания TV полей они становятся доступными во время создания или редактирования соответствующих ресурсов. Располагаются TV-поля на страницах ресурсах по умолчанию во вкладке «Дополнительные поля».

Tv авто метка modx

Некоторый результат, который можно достигнуть путём применения определённого набора правил к соответствующим ресурсам (через шаблон) с помощью элемента MODX «Настройка форм».

Tv авто метка modx

Вывод TV (дополнительных полей)

В MODX вывод значения TV переменной, связанной с текущим ресурсом, осуществляется также как и любого другого поля этого ресурса.

Например, получим значение TV поля authors у текущего ресурса (в шаблоне):

То же самое действие, но уже с использованием сниппета getResources:

Tv авто метка modx

Сортировка ресурсов по TV полю

Для сортировки ресурсов в MODX Revo в зависимости от того какое значение имеет TV поле можно выполнить с помощью параметра сниппета pdoResources sortby.

Например, выведем книги по году выпуска (по убыванию):

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *