Bitrix24 и свой тип полей для списка

185
08 сентября 2021, 04:00

Вообщем такая проблема я тут для одной задачи, в битрикс24 создаю свой тип полей в списках, все что нужно в init прописал, но вот вопрос как свой тип отобразить во фронтенде, т.е. когда нажимаешь добавить поле, я в выборе типа полей должен увидеть помимо стандартных типов свой тип, но в документации об этом не слова, кто знает как их добавить в этот список?

Answer 1

Сам недавно делал свое поле, но только для админки, а для пубичной части не пробовал, но вот такой функционал стоит испоьлзовать для пробы пера:

Итак нужно отнаследоваться от класса CUserTypeString (bitrix/modules/main/classes/general/usertypestr.php) и после переопределить метод:

/**
 * Эта функция вызывается при выводе значений свойства в публичной части сайта.
 *
 * <p>Возвращает html.</p>
 * <p>Если класс не предоставляет такую функцию,
 * то менеджер типов вызовет компонент указанный в метаданных свойства или системный bitrix:system.field.view</p>
 * @param array $arUserField Массив описывающий поле.
 * @param array $arAdditionalParameters Дополнительные параметры (например context).
 * @return string HTML для вывода.
 * @static
 */
public static function GetPublicView($arUserField, $arAdditionalParameters = array())

и это если надо:

/**
 * Эта функция вызывается при редактировании значений свойства в публичной части сайта.
 *
 * <p>Возвращает html.</p>
 * <p>Если класс не предоставляет такую функцию,
 * то менеджер типов вызовет компонент указанный в метаданных свойства или системный bitrix:system.field.edit</p>
 * @param array $arUserField Массив описывающий поле.
 * @param array $arAdditionalParameters Дополнительные параметры (например context или bVarsFromForm).
 * @return string HTML для вывода.
 * @static
 */
public static function GetPublicEdit($arUserField, $arAdditionalParameters = array())
{

Повторюсь сам не пробовал, переопределял только методы для работы с полями в админке

Answer 2

Регистрация нового типа поля: https://dev.1c-bitrix.ru/rest_help/application_embedding/user_field/index.php

READ ALSO
Как сделать вывод данных из массива?

Как сделать вывод данных из массива?

Как вывести данные displayname и l ?

126
DeleteMapping Spring Boot Freemarker, не получается удалить

DeleteMapping Spring Boot Freemarker, не получается удалить

Есть на странице лист объектов, хочу добавить кнопку удалитьНахожу объект по айди(хотя вопрос зачем, я же кнопку жму по тому объекту, который...

206
Переписать через getOrDefault

Переписать через getOrDefault

Помогите реализовать addToMap с помощью gefOrDefault

169