Типы пользовательских полей и их настройки
В ядре есть основной набор базовых типов полей. В некоторых модулях есть дополнительные типы полей.
-
string
- строка; -
integer
- целое число; -
double
- число; -
date
- дата; -
datetime
- дата со временем; -
boolean
- Да / Нет; -
file
- файл; -
enumeration
- список; -
url
- ссылка; -
address
- адрес; -
iblock_section
- раздел инфоблока; -
iblock_element
- элемент инфоблока; -
employee
- сотрудник; -
crm
- элемент CRM; -
crm_status
- привязка к справочнику CRM.
Сообщение не промодерировано, возможны ошибки и неточности.
|
||
Собрал вроде как полный список стандартных на данный момент:
| ||
Сообщение не промодерировано, возможны ошибки и неточности.
|
||
А тут еще парочка типов написана:
| ||
Сообщение не промодерировано, возможны ошибки и неточности.
|
При очередном обновлении, видимо следую новой политике "no legacy" (без наследования), пропал пользовательский тип "HTML/Визуальный редактор". Соответственно при экспорте/импорте данных из инфоблока в XML появится ошибка. Ну или, возможно, кому-то всё таки один и столпов ООП "наследование" не по боку ...
Решение - идём в /bitrix/php_interface/init.php и добавляем AddEventHandler('main', 'OnUserTypeBuildList', array('CUserTypeSectionsHtmlField', 'GetUserTypeDescription'), 5000); class CUserTypeSectionsHtmlField { public static function GetUserTypeDescription() { return array( // уникальный идентификатор 'USER_TYPE_ID' => 'customhtml', // имя класса, методы которого формируют поведение типа 'CLASS_NAME' => 'CUserTypeSectionsHtmlField', // название для показа в списке типов пользовательских свойств 'DESCRIPTION' => 'HTML/Визуальный редактор', // базовый тип на котором будут основаны операции фильтра 'BASE_TYPE' => 'string', ); } public static function GetDBColumnType($arUserField) { switch (strtolower($GLOBALS['DB']->type)) { case 'mysql': return 'text'; break; } } public static function GetSettingsHTML($arUserField = false, $arHtmlControl, $bVarsFromForm) { $result = ''; return $result; } public static function CheckFields($arUserField, $value) { $aMsg = array(); return $aMsg; } public static function GetEditFormHTML($arUserField, $arHtmlControl) { if ($arUserField["ENTITY_VALUE_ID"] < 1 && strlen($arUserField["SETTINGS"]["DEFAULT_VALUE"]) > 0) $arHtmlControl["VALUE"] = htmlspecialchars($arUserField["SETTINGS"]["DEFAULT_VALUE"]); ob_start(); CFileMan::AddHTMLEditorFrame($arHtmlControl["NAME"], $arHtmlControl["VALUE"], "html", "html", 200, "N", 0, "", "", "s1"); $b = ob_get_clean(); return $b; } public static function GetEditFormHTMLMulty($arUserField, $arHtmlControl) { $html = 'Поле не может быть множественным!'; return $html; } public static function GetFilterHTML($arUserField, $arHtmlControl) { $sVal = intval($arHtmlControl['VALUE']); $sVal = $sVal > 0 ? $sVal : ''; return CUserTypeSectionsHtmlField::GetEditFormHTML($arUserField, $arHtmlControl); } public static function GetAdminListViewHTML($arUserField, $arHtmlControl) { return ''; } public static function GetAdminListViewHTMLMulty($arUserField, $arHtmlControl) { return ''; } public static function GetAdminListEditHTML($arUserField, $arHtmlControl) { return ''; } public static function GetAdminListEditHTMLMulty($arUserField, $arHtmlControl) { return ''; } public static function onsearchIndex($arUserField) { return ''; } public static function OnBeforeSave($arUserField, $value) { return $value; } } Постскриптум. Перенос конкретно в нашем случае был связан с обновлением версии битрикса, стандартное обновление вешало сайт, разбираться и переписываться с поддержкой желания не было, поэтому - раскатали новый битрикс и перенесли всё в него - файлы, шаблоны, инфоблоки плюс ручная настройка. |
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.