Modx revolution вывод TV

TV-параметры позволяют добавить к документу дополнительную информацию, которую затем можно использовать на равне с основными параметрами. Также TV-параметры имеют различные типы и в зависимости от этого меняется их управление и представление.

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

Рассмотрим основные и системные TV-параметры по умолчанию в CMS MODx Evo и Evolution СMS.

Параметр в MODX — элемент, который содержит определенную информацию для текущей страницы. Их можно непосредственно вывести на страницу или передать сниппету в качестве параметра.

Основные параметры содержат информацию о документе.

*pagetitle* — заголовок документа

*longtitle* — расширенный заголовок документа

*description* — описание документа

*introtext* — аннотация документа

3 урок Корпоративный сайт на MODX Revolution. Вывод изображений слайдера через TV поля, ТВ на MODX

*content* — содержимое документа

*id* — идентификатор (номер) документа

*parent* — номер (ID) родительского документа

*pub_date* — дата публикации дкоумента

*unpub_date* — дата завершения публикации

*createdby* — Идентификатор пользователя создавшего документ

*createdon* — Дата создания документа

~идентификатор~ — URL документа по указанному идентификатору

Дополнительно

*alias* — псевдоним документа

*editedby* — Идентификатор пользователя редактировавшего документ

*editedon* — Дата редактирования документа

*type* — вариант (документ, папка или ссылка)

contentType* — тип содержимого (например, text/html)

*published* — опубликован ли документ (1|0)

*isfolder* — является ли документа папкой (1|0)

*richtext* — используется ли при редактировании документа визуальный редактор

*template* — номер (ID) используемого шаблона для документа

*menuindex* — порядковый номер отображения в меню

*searchable* — доступен ли документ для поиска (1|0)

*cacheable* — Кэшируется ли документ (1|0)

*deleted* — Документ удален (1|0)

*deletedby* — Идентификатор пользователя удалившего документ

*donthit* — Слежение за количеством посещений отключено (1|0)

*haskeywords* — Документ содержит ключевые слова (1|0)

*hasmetatags* — Документ имеет метатеги (1|0)

*privateweb* — Документ входит в частную группу пользовательских документов (1|0)

*privatemgr* — Документ входит в частную группу менеджерских документов (1|0)

*content_dispo* — Вариант выдачи содержимого (1 — для отображения | 0 — для скачивания)

*hidemenu* — Документ не отображается в меню (1|0)

Назначение полей

Имя параметра — используется для вызова TV-параметра. Можно использовать как английский так и русский язык, а также дефис (-) и знак подчеркивания (_). Пробел использовать нельзя!

Описание — используется для более расширенной информации о TV-параметре в документе при редактировании, а также в общем списке TV-параметров.

Работа с tv параметрами в CMS MODX Revolution

Тип ввода — определяет вид получаемой информации. В зависимости от выбранного типа интерфейс меняется. Более подробно смотрите Типы ввода TV-параметров.

Значение по умолчанию — определеяет значение TV-параметра по умолчанию при редактировании документа.

Возможные значения — используются в некоторых типах ввода (например Radio Options, Check Box) для предоставления вариантов выбора. Более подробно смотрите Определение значений TV-параметра.

Еще по теме:  Вылетает приложение что делать

Визуальный компонент — определеяет вариант вывода TV-параметра на страницу сайта. Более подробно смотрите Вид TV-параметра.

Порядок в списке — определяет порядок TV-параметра в документе.

Ограничить доступ к редактированию параметра — если включить флажок, то никто кроме администраторов не сможет редактировать этот TV-параметр.

  • Text — поле ввода. Поле ввода MODX Evo. Возможные значения не используются. Значение по умолчанию автоматически записывается в поле при первом редактировании.
  • Raw Text, Raw Textarea. Устарели и не рекомендуются к использованию. Вместо них рекомендуется использовать Textarea и Textarea (Mini).
  • Textarea и Textarea (Mini) — текстовое поле. Текстовое поле в MODX Evo. Возможные значения не используются. Значение по умолчанию автоматически записывается в поле при первом редактировании.
  • RichText — поле с визуальным редактором. Визуальный редактор (RichText) в MODX Evo. Возможные значения не используются. Значение по умолчанию автоматически записывается в поле при первом редактировании.
  • DropDown List Menu — раскрывающийся список. Выпадающий список в MODX Evo. Поле Возможные значения задает конечный список значений и определеляется специальным форматом. Более подробно смотрите Определение значений TV-параметра. Значение по умолчанию определяет выбранный пункт при первом редактировании.
  • Listbox (Single-Select) и Listbox (Multi-Select) — список множественного выбора. Список с множественным выбором в MODX Evo
  • Single-Select и Multi-Select отличаются только тем, что в первом варианте можно выбрать одно значение, а во втором несколько (+Ctrl). Поле Возможные значения задает конечный список значений и определеляется специальным форматом. Более подробно смотрите Определение значений TV-параметра. Значение по умолчанию определяет выбранный пункт при первом редактировании.
  • Radio Options — Переключатели (Radio) в MODX Evo. Поле Возможные значения задает конечный список значений и определеляется специальным форматом. Более подробно смотрите Определение значений TV-параметра. Значение по умолчанию определяет выбранный пункт при первом редактировании.
  • Check Box — флажки. Переключатели (checkbox) в MODX Evo. Поле Возможные значения задает конечный список значений и определеляется специальным форматом. Более подробно смотрите Определение значений TV-параметра. Значение по умолчанию определяет выбранный пункт при первом редактировании.
  • Image — изображение. Выбор изображения в MODX Evo. При нажатии кнопки Вставить открывается файловый менеджер, который позволяет выбрать необходимое изображение и загрузить его при необходимости. Возможные значения не используются. Значение по умолчанию автоматически записывается в поле при первом редактировании.
  • File — Выбор файла в MODX Evo. При нажатии кнопки Вставить открывается файловый менеджер, который позволяет выбрать необходимый файл и загрузить его при необходимости. Возможные значения не используются. Значение по умолчанию автоматически записывается в поле при первом редактировании.
  • URL — ссылка. Ссылка — TV-параметр в MODX Evo. Возможные значения не используются. Значение по умолчанию автоматически записывается в поле при первом редактировании.
  • Email — Email — TV-параметр в MODX Evo. Возможные значения не используются. Значение по умолчанию автоматически записывается в поле при первом редактировании.
  • Number — число. Число — TV-параметр в MODX Evo. Возможные значения не используются. Значение по умолчанию автоматически записывается в поле при первом редактировании.
  • Date — Дата — TV-параметр в MODX Evo. Первая кнопка вызывает календарик, с помощью которого можно выбрать дату. Вторая кнопка стирает дату. Возможные значения не используются. Значение по умолчанию автоматически записывается в поле при первом редактировании.

Источник: langner.ru

Modx Revolution Админка – как и какие плагины установить для разработки сайта

Если вы не знаете, как установить CMS Modx Revolution, то рекомендую ознакомиться с данной статьей, где пошагово рассказано как установить MODX Revo. Также в следующих статьях разберем «Какие начальные настройки нужно провести в ModX» и «Сниппеты для успешной работы в ModX Revo».

Еще по теме:  Можно ли устанавливать приложения на Android TV

Установщик пакетов

«Пакеты» → «Установщик»

После авторизации в админ панели вашего сайта site/manager мы видим элементы управления. Для установки пакетов нам нужно перейти в верхнем меню во вкладку «Пакеты» и выбрать пункт «Установщик».

Менеджер пакетов Modx Revolution

Откроется окно «Менеджер пакетов». Здесь нажимаем на кнопку «Загрузить пакеты» и в поиске вписываем необходимые пакеты для установки.

Загрузка и установка пакетов / плагинов в админк Modx Revolution

Каждый пакет необходимо «Загрузить» и после загрузки вернуться на страницу «Менеджер пакетов» и установить каждый пакет.

Какие плагины нужно скачать и для чего?

  1. Ace
  2. AdminTools
  3. AjaxForm
  4. autoRedirector
  5. Collections
  6. Formit
  7. FormSave
  8. Gallery
  9. getResources
  10. MIGX
  11. pdoTools
  12. phpThumbOf
  13. ReCaptchaV2
  14. SimpleSearch
  15. tagElementPlugin
  16. TinyMCE
  17. Translit
  18. UpgradeMODX

Ace

Ace – это пакет, который позволяет встроить редактор кода внутрь Modx вместо стандартного. С поддержкой Emmet:

Сравнение отображения кода чанка (html) в modx revo с плагином Ace и без него

AdminTools

AdminTools позволяет гибко стилизовать админ панель управления CMS:

Как выглядит админка ModX Revolution с пакетом AdminTools

AjaxForm

AjaxForm – позволяет создаться ajax форму, т.е. форму отправки сообщений на почту без перезагрузки страницы. AjaxForm работает в связке с Formit.

autoRedirector

autoRedirector – позволяет не заботиться о меняющихся url адресах на сайте. Например, если раньше страница была по адресу: site.ru/necessery-page , а теперь стала site.ru/new-adress , то пользователь при переходе по первой ссылке не получит 404 ошибку, а перенаправится на вторую. autoRedirector создает отдельную табличку в базе и запоминает старые адреса страниц автоматически.

Collections

Классный плагин, который позволяет красиво группировать дочерние ресурсы страницы в коллекции.

Отображение списка вложенных ресурсов cms Modx Revo с плагином Collections

Formit

Пакет позволяющий упаковывать и отправлять данный с сайта на почту, например, форма обратного звонка. AjaxForm работает в связке с Formit .

FormSave

Фильтры-модификаторы PHx в Modx revo — примеры использования

Фильтры-модификаторы PHx в Modx revo - примеры использования

Фильтры PHx (Placeholders Xtended) добавляют новые возможности для отображения плейсхолдеров, тегов MODx (включая TV параметры) и теги настроек сайта. Фильтры модификаторы phx позволяют манипулировать значением тегов, непосредственно внутри шаблона.

Все довольно просто, модификаторы phx значительно облегчают жизнь разработчику сайта. Например есть сайт и необходимо только на главной странице показывать слайдер, ну или любой другой банер. В шаблоне сайта достаточно прописать

[[*id:is=`1`:then=`[[$slider]]`]]

где 1 — это id главной страницы, а $slider — чанк с html кодом слайдера. и т.д. и т.п. Только чайники создают новый шаблон и копируют туда весь html-код страницы, ради пары строчек слайдера/банера. Но не печальтесь, все мы такими были, поэтому просвещайтесь и пользуйтесь в будущем фильтрами модификаторами phx.

[[*id:is=`1`:then=`[[$slider]]`]]
— выводит id текущей страницы;
:is=`1`:then= — проверяет равно ли *id == 1
и если ДА, то выводит содержимое then;
[[$slider]]
— выводит чанк в котором находится верстка и вывод слайдера.
использовано может быть любое другое поле, например
[[*template]]
— выведет текущий используемый шаблон. Или можно проверять не пусто ли TV-поле
[[*slider]]
или как там его?

Примеры использования PHx фильтра в MODx

Пример 1:

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

Т.к. в MODX чаще всего вы используете шаблоны страниц, в данном случае вам бы потребовалось создать два шаблона.

Один для главной без ссылки:


Второй для внутренних страниц со ссылкой:

Это неудобно. С помощью PHx модификатора is (равенство) вы можете сделать так:

[[*id:is=`1`:then=` `:else=` `]]

Если id страницы равен 1, вернуть логотип без ссылки, а если id не равен 1, вернуть логотип со ссылкой. Тем самым вы избавляетесь от создания двух практически идентичных шаблонов и обходитесь одним, но с модификатором вывода.

Еще по теме:  Как оплатить мегафон ТВ с карты

Пример 2:

Нам требуется вывести разные названия страницы в зависимости от шаблона.

[[*template:is=`1`:or:is=`2`:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]

Если шаблон страницы равен 1 или равен 2, вернуть
[[*pagetitle]]

иначе вернуть
[[*longtitle]]

Как видите, можно использовать несколько модификаторов в одной цепочке. Хотя, правильнее было бы написать так:

[[[[*template:is=`1`:or:is=`2`:then=`*pagetitle`:else=`*longtitle`]]]]

В следующих таблицах перечислены некоторые модификаторы PHx, которые могут быть использованы для любого тега MODx Revolution.

Модификаторы условия

[[+phx:input=`/assets/img/photo.gif`]]

— добавляем в тег phx входное значение, следующим модификатором, например, можно обработать изображение.
Или

[[+phx:input=`/assets/img/photo.gif`:contains=`photo.gif`:then=`da`:else=`net`]]

проверить есть ли в пути определенная последовательность символов.

[[*id:is=`1`:and:if=`[[*id]]`:ne=`2`:then=`da`:else=`net`]]
[[*id:is=`1`:or:if=`[[*id]]`:is=`2`:then=`da`:else=`net`]]

— если id-ресурса = 1 или = 2, выводим «da», или же «net».

[[*id:is=`1`:and:if=`[[*id]]`:ne=`2`:then=`da`:else=`net`]]
[[*id:is=`1`:then=`da`:else=`net`]]
[[*id:ne=`1`:then=`da`:else=`net`]]
[[*id:ge=`1`:then=`da`:else=`net`]]
[[*id:gt=`1`:then=`da`:else=`net`]]
[[*id:el=`10`:then=`da`:else=`net`]]
[[*id:lt=`10`:then=`da`:else=`net`]]
[[+author:contains=`Сэ́мюэл Кле́менс`:then=`Марк Твен`]]
[[+author:containsnot=`Сэ́мюэл Кле́менс`:then=`Кто-нибудь еще`]]
[[*id:is=`10`:hide]]
[[*id:is=`10`:show]]
[[*id:is=`10`:then=`ept`]]
[[*id:is=`10`:then=`ept`:else=`nooo`]]
[[+controls]]
[[+controls:select=`0=ВЫКЛ2=ХЗ`:else=`Ошибка`]]
[[+controls]]
[[*template:in=`3,4`:then=`[[$myChank]]`:else=`пробел`]]
[[*template]]
(текущий шаблон) — равен «3» или «4», значит выводим
[[$myChank]]

Модификаторы строки

[[+num:cat=` раз`]]
[[*pagetitle:lcase]]
[[*pagetitle:ucase]]
[[*pagetitle:ucwords]]
[[*pagetitle:ucfirst]]
[[*pagetitle:htmlentities]]
[, ] и `
[[*content:esc]]
[[*content:strip]]
[[*pagetitle:stripString=`писька`]]
[[*pagetitle:replace=`писька==конфетка`]]
[[*longtitle:strip_tags=«]]
[[*longtitle:strlen]]
[[*longtitle:reverse]]
[[*pagetitle:wordwrap=`10`]]
[[*pagetitle:limit=`10`]]
[[*pagetitle:ellipsis=`10`]]
[[+showThis:tag]]
[[+num:incr]]
[[+num:add=`97`]]
[[+num:decr]]
[[+num:decr=`97`]]
[[+num:mpy]]
[[+num:mpy=`5`]]
[[+num:div]]
[[+num:div=`5`]]
[[+num:mod]]
[[+num:mod=`5`]]
[[*pagetitle:empty=`Пусто`]]
[[*pagetitle:!empty=`Не пусто!`]]
[[*pagetitle:nl2br]]
[[*pagetitle:nl2br]]
[[+birthyear:date=`%Y`]]
[[*createdon:strtotime]]
[[*createdon:fuzzydate]]
[[*createdon:ago]]
[[+password:md5]]
[[*pagetitle:cdata]]
[[+modx.user.id:userinfo=`username`]]
[[+modx.user.id:isloggedin]]
[[+modx.user.id:isnotloggedin]]
[[+number:toPlaceholder=`итого`]]
помещает содержимое
[[+number]]
в плейсхолдер
[[+итого]]
Можно усложнять запись добавляя в левую часть выражения любые другие модификаторы:
[[+number:is=`10`:then=`ровно 10`:else=`точно не 10!`:toPlaceholder=`итого`]]
[[+number]]
= 10, тогда выводим в плейсхолдер
[[+итого]]
[[+cssTV:cssToHead]]
[[+htmlTV:htmlToHead ]]
перед закрывающим тегом , регистрирует значение тега
[[+htmlTV]]
modX.regClientHTMLBlock
[[+htmlTV:htmlToBottom]]
перед закрывающим тегом регистрирует значение тега
[[+htmlTV]]
modX.regClientStartupScript
[[+jsTV:jsToHead]]
modX.regClientScript
[[+jsTV:jsToBottom]]
[[+stringi:urldecode]]
[[!+modx.user.id:userinfo=`internalKey`]]
[[!+modx.user.id:userinfo=`username`]]

Полное имя:
[[!+modx.user.id:userinfo=`fullname`]]
[[!+modx.user.id:userinfo=`role`]]
[[!+modx.user.id:userinfo=`email`]]
[[!+modx.user.id:userinfo=`phone`]]

Мобильный телефон:
[[!+modx.user.id:userinfo=`mobilephone`]]
[[!+modx.user.id:userinfo=`fax`]]

День рождения:
[[!+modx.user.id:userinfo=`dob`:date=`%Y-%m-%d`]]
[[!+modx.user.id:userinfo=`gender`]]
[[!+modx.user.id:userinfo=`country`]]
[[!+modx.user.id:userinfo=`state`]]
[[!+modx.user.id:userinfo=`zip`]]
[[!+modx.user.id:userinfo=`photo`]]

Комментарий:
[[!+modx.user.id:userinfo=`comment`]]

Дата последнего входа:
[[!+modx.user.id:userinfo=`lastlogin`:date=`%Y-%m-%d`]]

Количество входов:
[[!+modx.user.id:userinfo=`logincount`]]
[[!+modx.user.id]]
возвращает ID вошедшего в систему пользователя. Вы, конечно, можете заменить, его на
[[*createdby]]

или другое поле ресурса или любой плейсхолдер, который возвращает числовое представление ID пользователя.

Обратите внимание, что ID пользователя и его логин уже доступны по умолчанию в MODX, так что вам не нужно использовать модификатор User Info:

[[!+modx.user.id]]
— Выведет ID пользователя
[[!+modx.user.username]]
— Выведет логин пользователя

Особое внимание обращаем на восклицательный знак !

[[!+modx.user.id]]

Он позволяет НЕ кэшировать содержимое вывода. Лучше всего эти плейсхолдеры вызывать некешируемыми, чтобы избежать неожиданных результатов. Почему нужно не кешировать.

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

Добро пожаловать, [[!+modx.user.id:userinfo=`username`]]!

По задумке на этой странице, выводится приветственное сообщение пользователю. Так вот, если результат будет кешироваться, то при первом входе на эту страницу — сохранится имя пользователя который только что зашел — и всем остальным будет показываться не их имя, а имя того пользователя который вошел на эту страницу первым. Чтобы этого избежать — просто не кэшируем этот тэг, с помощью восклицательного знака перед вызовом !+modx.

Также фильтры можно использовать несколькими способами (что уменьшает время их выполнения)

Используем модификатор:

[[+title:lcase]]
[[+something:notempty=`Hello[[+name]]`]]

Используем сниппет:
[[lcase? subject=`something` subject=`title` subject=`something` meter=`Hello [[+name]]`]]

P.S: Не забываем включить кэширование тегов, где нужно. Чтобы это сделать — нужно ИЗБАВЛЯТЬСЯ от восклицательных знаков (!). Результаты большинства сниппетов вплоне себе могут работать из кэша.

Источник: seo-studio.pro

Оцените статью
Добавить комментарий