Типы ввода TV полей
Список и описание типов ввода TV полей в CMS MODx Revolution.
Оглавление
Существует несколько встроенных типов ввода для TV. Классы этих типов можно посмотреть в исходниках.
URL
Это текстовое поле, в котором раскрывается список для выбора протокола:
http://
https://
ftp://
mailto:
Рядом с выбором протокола, есть поле для ввода URL строки. Проверка правильности структуры URL в этом TV поле, не выполняется.
Авто-метка (autotag)
Автоматическая метка — на мой взгляд не совсем корректно переведено на русский. Скорее это авто-тег, удобное TV поле для ведения блога и структурирования статей с помощью тегов. Каждый раз когда вы создаете или редактируете ресурс у которого есть доступ к этому TV, вы увидите все теги, которые использовались в других статьях. Кликнув на тег, вы либо присвоите его ресурсу, либо наоборот уберете. После назначения меток нужно обязательно сохранить ресурс.
Допустим вы хотите сделать страницу, на которой будете выводить статьи по тегам, для этого вам необходимо написать сниппет и использовать его в качестве фильтра вывода:
Сниппет example:
<?php
// В случае если TV поле пустое
if ($input == '') {
return;
}
// Разбираем строку с тегами в массив, основываясь на разделителе ','
$tags = explode(',', $input);
// Перебираем теги
foreach ($tags as $key => $value) {
// Формируем выходной массив со ссылкой на ресурс с идентификатором 9 и параметром GET.
$output[] = '<a href="' . $modx->makeurl(9, '', array('tag' => $value)) . '">' . $value . '</a>';
}
// Объединяем элементы массива в строку с разделителем ', ' и выводим
return implode(', ', $output);
Вывод TV:
[[*testTV:example]]
В результате получите список тегов в виде ссылок, которые будут ссылаться с параметром GET в адресной строке на страницу с идентификатором 9, а уже там вам нужно будет прописать логику вывода статей по идентификатору.
Опции ввода autotag
Все названия опций ввода, для использования в MIGX:
{
"allowBlank": "true",
"parent_resources": ""
}
Дата (date)
Данный тип ввода позволяет устанавливать дату и время в TV. Для установки дат по умолчанию, можете воспользоваться значениями из таблицы ниже, их нужно вставить в поле TV «Значение по умолчанию»:
Значение по умолчанию | Функция |
yesterday | Отображение вчерашней даты (в 12-часовом формате исчисления времени, до 12:00pm) |
today | Отображение сегодняшней даты (в 12-часовом формате исчисления времени, до 12:00pm) |
now | Отображает текущую дату, текущее время. |
+X | X количество часов НАЗАД от текущего времени, например +72 означает «3 дня назад». |
-X | X количество часов в БУДУЩЕМ от текущего времени, например -72 означает «через 3 дня». |
Опции ввода date
Все названия опций ввода, для использования в MIGX:
{
"allowBlank": "true",
"disabledDates": "",
"disabledDays": "",
"minDateValue": "",
"minTimeValue": "",
"maxDateValue": "",
"maxTimeValue": "",
"startDay": "",
"timeIncrement": "",
"hideTime": "false"
}
Изображение (image)
Создает форму загрузки изображения на сервер. Вы можете задать свой источник файлов для TV, учитывая контекст. Заранее этот источник файлов необходимо создать.
Переключатели (option)
Переключатели (они же radio-кнопки) — зачастую предназначены для предоставления списка опций. Вы можете управлять опцией по умолчанию с помощью полей «Возможные значения» и «Значение по умолчанию».
Чтобы получить несколько возможных значений, нужно в одноименном поле прописать их в следующем формате:
Опция 1==Значение1||Опция 2==Значение2
Или без опций, сразу значения:
#ffffff||#000000||#777777
В дальнейшем мы будем часто прибегать к такому формату, запомните его.
Примеры
Самый простой пример использования, перечисляем опции в возможных значениях:
Белый==#ffffff||Черный==#000000||Серый==#777777
Нужное значение по умолчанию прописываем в одноименном поле:
#ffffff
Еще один хороший пример использования радио-переключателей, вывод содержимого чанков:
Возможные значения:
Стандартный==[[$standard_chunk]]||Контент==[[$sidebar_content]]||Twitter==[[$twitter_chunk]]
Значение по умолчанию:
[[$standard_chunk]]
Содержимое чанков будет подставлено в месте вывода TV.
Опции ввода option
Все названия опций ввода, для использования в MIGX:
{
"allowBlank": "true",
"columns": "1"
}
Скрытое (hidden)
Данный тип TV скрыт в админке, но в него можно записать значение по умолчанию, которое и будет выведено. Например, можно записать название того же чанка.
Список — множественный выбор (listbox-multiple)
Это поле выводит список значений. Так как данное TV может иметь несколько значений, в параметрах вывода лучше задать разделитель.
Возможные значения:
Яблоко||Манго||Киви
Опции ввода listbox-multiple
Все названия опций ввода, для использования в MIGX:
{
"allowBlank": "true",
"listWidth": "",
"title": "",
"typeAhead": "",
"typeAheadDelay": "250",
"listEmptyText": "",
"stackItems": "false"
}
Список — одиночный выбор (listbox)
Данный тип TV имеет аналогичный функционал, что и «Список — множественный выбор», единственным отличием является невозможность выбора более одного значения.
Список ресурсов (resourcelist)
Данный тип TV выводит список ресурсов по критериям, которые вы укажите в дополнительных опциях параметров ввода. Результатом значения выбранного ресурса, будет его идентификатор.
Чтобы результат вывода формировал ссылку на страницу, в параметрах вывода нужно выбрать значение URL. Если по каким-то причинам вас не устраивает вывод URL, вы можете задать вывод самостоятельно, для этого укажите в параметрах вывода «По умолчанию», а в месте вывода TV, укажите приблизительно следующее:
/* modParser with pdoField */
<a href="[[~[[*tvName]]]]">[[#[[*tvName]].longtitle]]</a>
/* pdoParser, clear Fenom */
<a href="{$_modx->makeUrl($_modx->resource.tvName)}">{$_modx->resource.tvName | resource : 'longtitle'}</a>
Условия where
Для выборки нужных вам ресурсов, вы можете задать JSON массив условий в поле «Параметров ввода» — where. Вот пару примеров:
[{"pagetitle:=":"Главная"}]
— Показать ресурсы, в котором значение pagetitle равно «Главная».[{"pagetitle:!=":"Главная"}]
— Показать ресурсы, в котором значение pagetitle не равно «Главная».[{"template:=":"1"}]
— Показать ресурсы с шаблоном, чей идентификатор равен 1.[{"parent:IN": [5,10]}]
— Показать ресурсы, у которых идентификатор родителя равен 5 и 10.[{"parent:NOT IN": [5,10]}]
— Показать ресурсы, у которых идентификатор родителя не равен 5 и 10.[{"published:=":true,"isfolder:=":false}]
— Показать только опубликованные и не являющиеся контейнером ресурсы.- и т. д.
Опции ввода resourcelist
Все названия опций ввода, для использования в MIGX:
{
"allowBlank": "true",
"showNone": "true",
"parents": "",
"depth": "10",
"includeParent": "true",
"limitRelatedContext": "false",
"where": "[{\"isfolder: = \":\"1\"},{\"hidemenu\":\"0\",\"OR:hidemenu:=\":\"1\"}]",
"limit": "0"
}
Тег (tag)
Несколько тегов, разделенных символом «,
». Является простой версией TV типа Авто-метка.
Опции ввода tag
Все названия опций ввода, для использования в MIGX:
{
"allowBlank": "true"
}
Текст (text)
Это обычное текстовое поле. Вы можете задать проверку максимальной/минимальной длинны, а так же указать регулярное выражение, которое будет проверять правильность заполненных данных.
Опции ввода text
Все названия опций ввода, для использования в MIGX:
{
"allowBlank": "true",
"minLength": "",
"maxLength": "",
"regex": "",
"regexText": ""
}
Текстовая область (textarea)
Это стандартное текстовое поле, оно имеет тот же размер, что и поля textarea в HTML.
Опции ввода textarea
Все названия опций ввода, для использования в MIGX:
{
"allowBlank": "true"
}
Текстовый редактор (richtext)
Текстовое поле со встроенным текстовым редактором (WYSIWYG). Подгружается тот визуальный редактор, который используется в MODx.
Fix для TinyMCE RTE
Редактор TinyMCE Rich Text Editor имеет неприятный баг, высота текстового редактора будет очень маленькой, приходится постоянно растягивать редактор мышкой. Данный плагин решает эту проблему:
<?php
switch($modx->event->name) {
case 'OnDocFormPrerender':
$modx->regClientStartupHTMLBlock('
<style>
.mce-container iframe {
min-height: 250px;
}
</style>');
break;
}
Создайте плагин, например с именем fixRichTextHeight и повесьте его на событие OnDocFormPrerender. Значение min-height: 250px;
измените на свое усмотрение. После этого, изначальная высота текстовых редакторов (в том числе и в MIGX) изменится.
Файл (file)
Тип поля File — очень похож на тип «Изображение (image)». Предназначен для загрузки файлов на сервер. Можно объявить файл по умолчанию, указав к нему путь в параметре ввода «Значение по умолчанию». При использовании дружественных URL-адресов, обратите особое внимание на относительные пути к файлам.
Флажки (checkbox)
Флажок или чекбокс — данный тип TV предназначен для выбора нескольких значений с помощью чекбоксов. Вы можете управлять опцией по умолчанию с помощью полей «Возможные значения» и «Значение по умолчанию».
Возможные значения:
Белый==#ffffff||Черный==#000000||Серый==#777777
Значение по умолчанию:
#ffffff
Для установки нескольких значений по умолчанию, используйте специальный разделитель «||
».
Опции ввода checkbox
Все названия опций ввода, для использования в MIGX:
{
"allowBlank": "true",
"columns": "1"
}
Число (number)
Число — текстовое поле в котором вы не сможете набрать ничего кроме цифр, знака минус минус и десятичной точки (точку можно заменить в параметрах ввод TV, изменив значение «Разделитель»). Если вы вводете более одной десятичной точки или знак минус, валидатор выдаст ошибку.
Обратите внимание, что конечные нули обрезаются, например, 4,50 обрезается до 4,5, это может сделать этот тип ввода неподходящим для, например, полей валюты.
Опции ввода number
Все названия опций ввода, для использования в MIGX:
{
"allowBlank": "true",
"allowDecimals": "true",
"allowNegative": "true",
"decimalPrecision": "2",
"decimalSeparator": ".",
"maxValue": "",
"minValue": ""
}
Электронная почта (email)
Электронная почта - текстовое поле, имеющее собственную проверку. Будет принято только значение, в допустимом формате электронной почты.
Валидное значение электронной почты:
Опции ввода email
Все названия опций ввода, для использования в MIGX:
{
"allowBlank": "true",
"maxLength": "",
"minLength": ""
}
Время запросов: 0,1162 s
Количество запросов: 27
Источник: cache