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

Класс 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
Наверх