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

Компонент для отрисовки UF-поля

Класс компонента

Класс должен быть наследником BaseUfComponent и реализовывать метод getUserTypeId, в котором возвращается уникальный идентификатор типа поля, с которым работает конкретный компонент.


Название компонента

Название компонентов формируется по следующему принципу:

<moduleName>.field.<componentName>

Например, main.field.string.


Особенности работы компонента

  • На текущий момент есть два возможных варианта отрисовки поля:
    • десктоп
    • мобильное устройство (планшет, телефон и т.д.)

    В терминологии компонента это называется MEDIA_TYPE (имя вида внутри шаблона). Соответственно, его можно установить либо в шаблон .default, либо в mobile. В случае необходимости можно добавить дополнительные MEDIA_TYPE. Если MEDIA_TYPE не указан, то будет использован вид по умолчанию .default.php.

  • Также можно указать значение MODE (имя шаблона). Либо будет использоваться шаблон по умолчанию .default, если MODE не указан или шаблон с таким именем отсутствует в конкретном компоненте. Т.е. теперь нет необходимости создавать шаблон для всех типов полей, а можно ограничиться лишь необходимыми типами полей. Во всех остальных типах будет задействован шаблон по умолчанию. Можно передать массив желаемых шаблонов в порядке их приоритета, и компонент сам выберет ближайший существующий шаблон.
  • То же самое справедливо для MEDIA_TYPE (вида) внутри MODE (шаблона). При отсутствии указанного вида будет использован вид по умолчанию, а именно .default.php. Если он тоже отсутствует, и при этом сам шаблон физически существует, то будет отдана стандартная ошибка, например, Cannot find 'main.view' template with page '.default'.

Схема выбора шаблона

Схема справедлива при указании одного шаблона. В случае передачи массива шаблонов будет найден первый подходящий шаблон из массива. В случае отсутствия подходящих шаблонов будет дополнительно проверен шаблон .default согласно схеме.

Основные шаблоны существующих uf полей

  • .default
  • main.view - отрисовка значения поля, в частности применяется в сущностях CRM;
  • main.edit - отрисовка контрола поля в режиме редактирования, в частности применяется в сущностях CRM;
  • main.public_text - получение печатного значения поля, например, для подстановки в шаблонах писем;
  • main.filter_html - отрисовка контрола для старого фильтра в административном разделе;
  • main.edit_form - редактирование поля в административном разделе;
  • main.admin_settings - блок настроек поля;
  • main.admin_list_edit_html - отрисовка поля в режиме редактирования в гридах административного раздела;
  • main.admin_list_view_html - отрисовка поля в режиме показа в гридах административного раздела;
  • crm.field.element - привязка к элементам CRM;
  • crm.field.status - привязка к справочникам CRM;
  • intranet.field.employee - привязка к пользователю;
  • fileman.field.address - адрес.


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