Создание сайтов на 1С-Битрикс

Пользовательское свойство TEXT/HTML для разделов в 1С-Битрикс

Да, у разделов есть возможность добавить описание в режиме визуального редактора. Но что делать если нужно еще одно, для английской версии например? До сих пор в Битриксе нет такой возможности.
Однако нужно просто добавить следующий код в init.php вашего сайта — и готово. Теперь при добавлении пользовательского свойства для раздела вы сможете выбрать Text/Html.

Пользовательское свойство TEXT/HTML для разделов в 1С-Битрикс Да, у разделов есть возможность добавить описание в режиме визуального редактора. Но что делать если нужно еще одно, для английской версии например? До сих пор в Битриксе нет такой возможности.<br>
Однако нужно просто добавить следующий код в init.php вашего сайта — и готово. Теперь при добавлении пользовательского свойства для раздела вы сможете выбрать Text/Html.
Решение поддерживает PHP 8. Добавить код в init.php.

// Выводим пользовательское HTML поле в свойствах разделов
AddEventHandler('main', 'OnUserTypeBuildList', array('CUserTypeSectionsHtmlField', 'GetUserTypeDescription'), 5000);
class CUserTypeSectionsHtmlField {

    public static function GetUserTypeDescription() {
        return array(
            // уникальный идентификатор
            'USER_TYPE_ID' => 'sections_html_field',
            // имя класса, методы которого формируют поведение типа
            'CLASS_NAME' => 'CUserTypeSectionsHtmlField',
            // название для показа в списке типов пользовательских свойств
            'DESCRIPTION' => 'HTML/text',
            // базовый тип на котором будут основаны операции фильтра
            '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;
    }
}


Логотип SiteBERG
Изменено: 13.08.2024 01:14

Источник: https://bfdev.ru/39-dobavljaem-polzovatelskoe-pole-text-html-v-1s-bitriks.html

Статьи

Что нужно сделать?