Параметры

Общие параметры

Эти параметры обрабатываются базовым классом FormLister. В контроллерах некоторые общие параметры могут иметь другое назначение.

Настройки

controller

Задает класс для обработки данных.

Возможные значения - имя php-файла с классом без расширения.

Значение по умолчанию - Form.

dir

Папка в которой находится класс контроллера.

Значение по умолчанию - assets/snippets/FormLister/core/controller/

formid

Имя формы, обязательный параметр.

В шаблоне формы обязательно должно быть скрытое поле с именем formid и значением, указанным в параметре. Форма считается отправленной, если в массиве $_REQUEST присутствует ключ с именем параметра, а его значение соответствует значению параметра.

formMethod

Возможные значения - post, get или request.

Значение по умолчанию - post.

config

Загрузка параметров в формате json из файла.

Возможные значения - имяфайла:папка, несколько значений разделяются точкой с запятой.

Пример

myparams:core - загрузить параметры из файла assets/snippets/FormLister/config/core/myparams.json; myparams - загрузить параметры из файла assets/snippets/FormLister/config/custom/myparams.json; myparams:/assets/myfolder - загрузить параметры из файла assets/myfolder/myparams.json.

Значение по умолчанию - пусто.

api

Определяет, в каком виде будут выводиться данные.

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

  • 0: только html;
  • 1: json-массив с данными формы;
  • 2: json-массив с данными формы и html.

debug

Режим отладки. Вывод записывается в лог MODX.

Возможные значения - 0, 1.

Значение по умолчанию - 0.

saveObject

Сохраняет объект класса FormLister в плейсхолдер, который можно использовать в других сниппетах. Объект сохраняется только при успешной обработке формы.

Возможные значения - имя плейсхолдера.

Значение по умолчанию - пусто.

removeGpc

Убирает экранирование данных, которое выполняет MODX для символов {{, [[ и т.д. При этом экранируются тэги MODX при выводе.

Возножные значения - 0, 1 или имена полей через запятую.

Значение по умолчанию - 0.

Источники данных

defaultsSources

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

Возможные значения: список источников, разделенных точкой с запятой. Загрузка данных производится в том порядке, в котором они указаны в списке.

Источник может задаваться в формате "имя:ключ:префикс". Префикс, если указан, добавляется c точкой к имени поля - например, config.site_name.

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

  • array: json или php-массив, значения задаются параметром defaults;
  • param:имя параметра:префикс - значения задаются значением параметра из вызова сниппета (аналогично array, только значение задается не параметром defaults, а произвольным, также можно указать префикс);
  • session:ключ массива:префикс - значения загружаются из массива $_SESSION;
  • plh:ключи через запятую:префикс - загружаются значения из массива $modx->placeholders;
  • aplh:имя плейсхолдера:префикс - загружаются значения из плейсхолдера, содержащего массив;
  • config:префикс - загружаются значения из конфигурации MODX;
  • cookie:ключи через запятую:префикс - загружаются значения из массива $_COOKIE;
  • имя класса MODxAPI:ключ:префикс - ключ является аргументом метода edit(), класс должен быть заранее загружен;
  • document:префикс - загружает данные из модели modResource для документа, в котором вызван сниппет. Ключ не указывается;
  • user:ключ:префикс - загружает данные из модели modUsers для авторизованного пользователя. Тип пользователя уточняется в ключе (web или mgr).

Значение по умолчанию - array.

defaults

Данные для источника array.

Возможные значения: массив значений по умолчанию, в формате json или php.

keepDefaults

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

Возможные значения: 1, 0, имена полей, разделенные запятой.

Значение по умолчанию - 0.

allowEmptyFields

Разрешает задавать поля с пустыми значениями.

Возможные значения - 0 или 1.

Значение по умолчанию - 1.

Элементы управления

formControls

Список полей с управляющими элементами формы (списки, чекбоксы, радио-кнопки). Необходимо для отслеживания состояния элементов.

Возможные значения - имена полей, разделенные запятой.

Значение по умолчанию - пусто.

emptyFormControls

Этот параметр позволяет решить проблему неотмеченных чекбоксов, которые не включаются в массив полей при отправке формы: если в $_REQUEST отсутствует нужный элемент, то он создается согласно данному параметру. Необходимость в таком параметре возникла в связи с тем, что MODxAPI требует явно указывать изменяемые поля в методе fromArray(). Но можно использовать и в обычных формах, чтобы подставить в шаблон значение неотмеченного чекбокса.

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

&emptyFormControls=`{
    "mycheckbox" : "Нет",
    "published" : 0
}`

Обработка данных

prepare, prepareProcess, prepareAfterProcess

Аналогично параметру prepare в DocLister.

Сниппеты из параметра prepare выполняются после загрузки данных в форму, сниппеты из параметра prepareProcess - после прохождения валидации, сниппеты из параметра prepareAfterProcess - после успешного выполнения обработки. В сниппетах через переменную $FormLister доступен объект контроллера, а через массив $data - значения полей формы. Также доступна переменная $name, которая задержит имя параметра из которого взят сниппет (prepare, prepareProcess и т.д.); это позволяет использовать один и тот же сниппет для разных случаев. Для изменения данных следует использовать в prepare-сниппетах методы контроллера (setField, setFields и т.д.)

Возможные значения - имена сниппетов, анонимные функции, статические методы загруженных классов.

Значение по умолчанию - пусто.

Валидация

validator

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

Значение по умолчанию - \FormLister\Validator.

rules

Массив с правилами валидации.

Значение по умолчанию - пусто.

Шаблоны

formTpl

Шаблон формы. В шаблоне формы обязательно должно быть поле с именем formid и значением, указанным в параметре formid.

Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.

Значение по умолчанию - пусто.

arraySplitter

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

Значение по умолчанию - точка с запятой.

{field}.arraySplitter

Разделитель для преобразования массивов в строку, но для отдельного поля {field}. Например: groups.arraySplitter - разделитель для массива из поля groups.

Если не задано, то используется значение параметра arraySplitter.

errorTpl

Шаблон для вывода сообщений валидатора.

Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.

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

@CODE:<div class="error">[+message+]</div>

requiredClass, errorClass

Имена классов для обозначения незаполненных (required) и неверно заполенных (error) полей.

Значение по умолчанию - required и error соответственно.

{field}.requiredClass, {field}.errorClass

Позволяет задавать указанные выше классы для конкретных полей.

По умолчанию используются значения параметров requiredClass и errorClass.

messagesTpl

Шаблон сообщений обработчика формы. В шаблоне выводятся группы сообщений (messages, required, error).

Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.

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

@CODE:<div class="form-messages">[+messages+]</div>

messagesOuterTpl

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

Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.

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

@CODE: [+messages+]

messagesRequiredOuterTpl

Шаблон-обертка для группы сообщений о незаполненных полях.

Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.

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

@CODE: [+messages+]

messagesErrorOuterTpl

Шаблон-обертка для группы сообщений о неверно заполненных полях.

Возможные значения - имя шаблона, указанное по правилам задания шаблонов в DocLister.

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

@CODE: [+messages+]

messagesSplitter, messagesRequiredSplitter, messagesErrorSplitter

Разделитель сообщений в группе.

Возможные значения - произвольная строка.

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

<br>

removeEmptyPlaceholders

Удаляет из шаблонов незаполненные прейслхолдеры.

Возможные значения - 0 или 1.

Значение по умолчанию - 0.

parseDocumentSource

Обрабатывает чанки MODX-парсером.

Возможные значения - 0 или 1.

Значение по умолчанию - 0.

rewriteUrls

Если параметр parseDocumentSource отключен, то парсит ссылки в шаблонах.

Возможные значения - 0 или 1.

Значение по умолчанию - 0.

skipPrerender

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

Возможные значения - 0 или 1.

Значение по умолчанию - 0.

templatePath, templateExtension

Путь к папке с файлами шаблонов и расширение файлов шаблонов. Эти параметры необходимо задавать при использовании плагина EvoTwig.

Значение по умолчанию - пусто.

Перенаправление после обработки

redirectTo

Id страницы, на которую нужно выполнить перенаправление после успешной обработки формы. В api-режиме перенаправление не выполняется, но в массиве данных формы сохраняется абсолютная ссылка на целевую страницу (поле "redirectTo").

Вместо числа можно указывать массив:

&redirectTo=`{
    "page":10,
    "query":{
        "foo":"bar"
    },
    "header":"HTTP/1.1 307 Temporary Redirect"
}`

Ключ page задает id станицы, в массиве query можно передать дополнительные get-параметры, значением ключа header может быть текст заголовка для перенаправления.

Возможные значения - число или массив.

Значение по умолчанию - пусто.

Mem: 3.75 mb, MySQL: 0.0021 s, 2 req., PHP: 0.0288 s, all: 0.0308 s, cache.