Документация для разработчиков
Темная тема

Класс 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.
    * при этом $additionalParameters может быть пустым массивом.
    - возвращает значение пользовательского поля, установленное по умолчанию.


© «Битрикс», 2001-2024, «1С-Битрикс», 2024