Класс UF-поля
Все uf-классы должны являться наследниками класса BaseType и располагаться по пути <modulename>/lib/usefield/types/<classname>/
соответствующего модуля, например, /main/lib/userfield/types/stringtype
.
Для регистрации нового типа пользовательского поля необходимо зарегистрировать его в b_module_to_modules:
RegisterModuleDependences("main", "OnUserTypeBuildList", "testmodule", '\testmodule\lib\usefield\types\customstring\CustomString', 'GetUserTypeDescription');
или через файл init.php:
use Bitrix\Main; $eventManager = Main\EventManager::getInstance(); //Вешаем обработчик на событие создания списка пользовательских свойств OnUserTypeBuildList $eventManager->addEventHandler('main', 'OnUserTypeBuildList', ['\testmodule\lib\usefield\types\customstring\CustomString', 'GetUserTypeDescription']);
Обязательные константы:
USER_TYPE_ID
- уникальный идентификатор пользовательского типа;RENDER_COMPONENT
- имя компонента, который будет использован для отрисовки.
Обязательные методы:
- getDescription - метод должен вернуть ассоциативный массив с человекопонятным именем типа поля (
DESCRIPTION
) и базовым типом (BASE_TYPE
); - getDbColumnType - метод возвращает MySQL тип колонки, в которой будет храниться значение одиночного поля. Множественные поля всегда хранятся как
text
.
Остальные методы:
- prepareSettings - подготавливает и возвращает массив настроек экземпляра пользовательского типа;
- getFilterData - возвращает массив для использования в новом фильтре в административном разделе;
- checkFields - валидатор, возвращает ассоциативный массив вида
['id'=> 'FIELD_NAME', 'text' => 'erorr message']
или пустой массив в случае отсутствия ошибок валидации; - onSearchIndex - возвращает значение поля для поиска;
- onBeforeSave - вызывается перед сохранением значения uf-поля;
-
getDefaultValue
Метод доступен с версии 20.5.500.
Параметры метода:Параметр Описание $userField Массив метаинформации пользовательского поля. Может быть получен методом GetUserFields класса CUserTypeManager. $additionalParameters Массив, который содержит необходимые настройки в зависимости от шаблона, которым выводится контрол. В частности в этом массиве передаются следующие элементы: - mode - имя шаблона компонента;
- mediaType - имя страницы шаблона (на текущий момент или .default, или mobile). Пустое значение эквивалентно .default.
© «Битрикс», 2001-2024, «1С-Битрикс», 2024