Компонент для отрисовки 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 - адрес.