Оглавление

Существует несколько встроенных типов ввода для TV. Классы этих типов можно посмотреть в исходниках.

URL

Это текстовое поле, в котором раскрывается список для выбора протокола:

Рядом с выбором протокола, есть поле для ввода URL строки. Проверка правильности структуры URL в этом TV поле, не выполняется.

Тип поля TV — URL

Авто-метка (autotag)

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

Тип поля TV — Авто-метка (autotag)

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

Сниппет 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"
}

Тип поля TV — Дата (date)

Изображение (image)

Создает форму загрузки изображения на сервер. Вы можете задать свой источник файлов для TV, учитывая контекст. Заранее этот источник файлов необходимо создать.

Тип поля TV — Изображение (image)

Переключатели (option)

Переключатели (они же radio-кнопки) — зачастую предназначены для предоставления списка опций. Вы можете управлять опцией по умолчанию с помощью полей «Возможные значения» и «Значение по умолчанию».

Чтобы получить несколько возможных значений, нужно в одноименном поле прописать их в следующем формате:

Опция 1==Значение1||Опция 2==Значение2

Или без опций, сразу значения:

#ffffff||#000000||#777777

В дальнейшем мы будем часто прибегать к такому формату, запомните его.

Примеры

Самый простой пример использования, перечисляем опции в возможных значениях:

Белый==#ffffff||Черный==#000000||Серый==#777777

Нужное значение по умолчанию прописываем в одноименном поле:

#ffffff

Тип поля TV — Переключатели (option)

Еще один хороший пример использования радио-переключателей, вывод содержимого чанков:

Возможные значения:

Стандартный==[[$standard_chunk]]||Контент==[[$sidebar_content]]||Twitter==[[$twitter_chunk]]

Значение по умолчанию:

[[$standard_chunk]]

Тип поля TV — Переключатели (option)

Содержимое чанков будет подставлено в месте вывода TV.

Опции ввода option

Все названия опций ввода, для использования в MIGX:

{
  "allowBlank": "true",
  "columns": "1"
}

Скрытое (hidden)

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

Список — множественный выбор (listbox-multiple)

Это поле выводит список значений. Так как данное TV может иметь несколько значений, в параметрах вывода лучше задать разделитель.

Возможные значения:

Яблоко||Манго||Киви

Тип поля TV — Список — множественный выбор (listbox-multiple)

Опции ввода 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. Вот пару примеров:

Опции ввода 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) изменится.

Тип поля TV — Текстовый редактор (richtext)

Файл (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)

Электронная почта - текстовое поле, имеющее собственную проверку. Будет принято только значение, в допустимом формате электронной почты.

Тип поля TV — Электронная почта (email). Не валидное значение.

Валидное значение электронной почты:

Тип поля TV — Электронная почта (email). Валидное значение.

Опции ввода email

Все названия опций ввода, для использования в MIGX:

{
  "allowBlank": "true",
  "maxLength": "",
  "minLength": ""
}