$fields — параметры полей

Основная часть параметров шаблона находится в массиве $params. Те же параметры, которые относятся непосредственно к полям, вынесены в отдельный массив $fields.

Для чего это сделано? Что касается специальных типов данных, то их параметры заданы прямо в определении соответствующего данного в массиве $types, и, в принципе, можно обойтись без дополнительного массива. В стандартных же типах данных мы не можем вмешиваться в определения MySQL, и без дополнительного массива здесь не обойтись.

Структура массива $fields

$fields = [
    поле => [
        'параметр' => значение,
        'параметр' => значение,
    ],
    поле => [...],
    ...
];

Пример:

$fields[1]['balance-tags'] = true;

  • "поле" — номер поля;
  • "параметр" — строка с наименованием параметра;
  • "значение" — смешанный тип данных (булевы данные, строка, массив);

Параметры

ПараметрЗначениеПримечания
'readonly'trueПоле отображается в окне редактирования, но оно недоступно для редактирования
'hidden'trueПоле не видимо в окне редактирования
'secret'trueПоле не только скрыто в окне редактирования — его невозможно ни узнать, ни изменить другими способами
'nullable'trueПоле с возможностью использования в окне редактирования значения null
'none'trueПоле не будет вообще извлекаться из базы данных. Обычно применяется для программной блокировки полей типа block.

Параметры для обработки текстовых полей

При упоминании в приведенной ниже таблице типа данного text, имеются в виду также типы: tinytext, mediumtext, longtext.

ПараметрЗначениеПримечания
'balance-tags'trueБалансировать теги, то есть, обеспечить парность открывающих и закрывающих тегов. Имеется аналогичный метод Text::balanceTags().
'remove-attributes'trueУдалять атрибуты html-элементов. Имеется аналогичный метод Text::removeAttributes().

Используется также в целях безопасности.

'remove-elements'$tags

Перечень тегов, в одной из двух форм: 'script|style' или [script','style']

Удалять элементы с заданными тегами (вместе с содержимым). Имеется аналогичный метод Text::removeElements().

Используется также в целях безопасности.

'strip-tags'true или $options

Подробности о массиве $options см. в описании метода Text::stripTags()

Удалять html-теги в полях типа text и varchar (содержимое тегов остается). Визуальный текстовый редактор отключается.

Используется также в целях безопасности.

'dont-check-tags'trueНе проверять непарность тегов. По умолчанию в полях типа text парность тегов проверяется всегда, и в случае нарушения баланса, выводится предупреждение.
'convert-url'trueПреобразовывать ссылки в ЧПУ при сохранении данных (касается только полей типа varchar)
'dont-convert-url'trueОтменить автоматическое преобразование ссылок в ЧПУ (при сохранении) в полях типа text. По умолчанию в полях типа text всегда происходит автоматическое преобразование.
'reconvert-url'trueХранить ссылки в параметрическом виде (и в таком виде показывать в окне редактирования), но выводить на сайте в виде ЧПУ (для полей varchar и text)
'no-text-editor'trueПоле типа text, у которого нужно отключить визуальный текстовый редактор.
'no-text-editor-file-upload'trueПолей типа text, в котором отключена возможность загружать файлы через кнопку "Изображение".

Используется также в целях безопасности.

Короткая форма записи массива $fields для булевых параметров

  1. Перечисление параметров

    Когда одно поле имеет несколько булевых параметров, можно просто перечислять параметры для этого поля:

    Основной вид
    $fields[5] = [
        'balance-tags' => true,
        'remove-attributes' => true,
    ];
    
    Сокращенный вид
    $fields[5] = [
        'balance-tags',
        'remove-attributes'
    ];
    
  2. Перечисление полей

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

    Основной вид
    $fields[4]['balance-tags'] = true;
    $fields[5]['balance-tags'] = true;
    
    Сокращенный вид
    $fields['balance-tags'] = [4, 5];
    
  3. Заключение

    Таким образом, параметры полей с помощью массива $fields можно задавать в трех видах:

    $fields[1]['balance-tags'] = true; # Задание значения (основной вид)
    $fields[1] = ['balance-tags'];     # Перечисление параметров
    $fields['balance-tags'] = [1];     # Перечисление полей


См. также