- Форум
- Центр поддержки
- Продукты
- Управление сайтом
- Битрикс24
- Интернет-магазин + CRM
- Решения
- Для интернет-магазинов
- Каталог готовых решений
- Внедрение
- Выбрать партнера
- Проверить партнера
- Стать партнером
- Bitrix пользовательское поле html
- Пользовательское свойcтво тип HTML + множественное
- Описание
- Другие решения разработчика
- Решение добавлено в корзину
- Готовые решения
- Все решения
- Для Битрикс24
- О маркетплейсе
- Как установить
- Контакты
- Авторы
- Блоги разработчиков
- Для разработчиков
- Добавить свое решение
- Стать партнером
- Тип пользовательского свойства — HTML/Визуальный редактор
- Описание
Форум
Всем доброго времени суток.
Вот такой вопрос возник: можно ли сделать так, чтобы в пользовательском поле воспринимались html-теги? Сейчас в настройках полей не вижу такого свойства, и при заполнении пользовательского поля (Строка) текст появляется без форматирования. И теги к нему никакие применить не могу — они просто не работают.
Покурил поиск по форуму, вроде что-то нашел, но довольно неутешительное.
Насколько я понимаю, это настройки для элемента. А мне нужно сделать так, чтобы строку с описанием разделов , в которых хранятся эти элементы, можно было редактировать с помощью hmtl-кодов. Сейчас там можно вставить только текст, коды не читаются.
Путь к настройкам вот такой: Рабочий стол — Настройки — Настройки продукта — Пользовательские поля
Нет, такого типа нет, но вы можете его дописать, взяв за основу text/html для элементов (файл /bitrix/modules/iblock/classes/general/prop_html.php)
Пример можно посмотреть тут
http://dev.1c-bitrix.ru/community/webdev/group/78/blog/2193/
Да, как я и думал. Плохо то, что я совсем не программист и не писатель кодов Что ж, спасибо за ответ, учтем на будущее.
Вывести содержимое в формате html можно добавив тильду в вызове, у меня так:
$ar_result=CIBlockSection::GetList(Array(«SORT»=>»ASC»), Array(«IBLOCK_ID»=>82, «ID»=>$arResult[‘SECTION’][‘ID’]),false, Array(«UF_KR_SEOTEXT»)); if($res=$ar_result->GetNext())
Правда мне это не помогло, тип «строка» накладывает ограничение на количество символов.
Возникла аналогичная задача: надо вывести пользовательское поле раздела типа html. Попытка преобразовать пример http://dev.1c-bitrix.ru/community/webdev/group/78/blog/2193/ результатов не дала. Может потому что есть какие-то изменения в 12-й версии? Может ли кто подкинуть более детальный пример?
Центр поддержки
Продукты
Управление сайтом
Битрикс24
Интернет-магазин + CRM
Решения
Для интернет-магазинов
Каталог готовых решений
Внедрение
Выбрать партнера
Проверить партнера
Стать партнером
1С-Битрикс http://www.1c-bitrix.ru Общие вопросы info@1c-bitrix.ru Приобретение и лицензирование продуктов : sales@1c-bitrix.ru Маркетинг/мероприятия/PR marketing@1c-bitrix.ru Партнерская программа partners@1c-bitrix.ru Мы работаем с 10:00 до 19:00 по московскому времени. Офис в Москве 127287 Россия Московская область Москва 2-я Хуторская улица дом 38А строение 9 Офис в Калининграде +7 (4012) 51-05-64 Офис в Калининграде 236001 Россия Калининградская область Калининград Московский проспект 261 Офис в Киеве ukraine@1c-bitrix.ru Телефон в Киеве +3 (8044)221-55-33 Офис в Киеве 01033 Украина Калининградская область Киев улица Шота Руставели 39/41 офис 1507
© 2001-2023 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом. Политика конфиденциальности
Bitrix пользовательское поле html
До сих пор в Битриксе нет пользовательского свойства с HTML кодом (визуальным редактором). Устраняем это досадное недоразумение.
На просторах интернета быстро нашлось решение, правда сильно устаревшее, немного пришлось допилить напильником, и теперь всё работает.
Результат в вашем разделе будет выглядеть примерно так:
Данный код необходимо вставить в init.php вашего сайта на Битриксе. Решение поддерживает PHP8.
//выводим пользовательское 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; >>
Теперь в пользовательских типах у вас появится Text/Html
Пользовательское свойcтво тип HTML + множественное
Опубликовано: 11.01.2016 Обновлено: 27.01.2016 Версия: 1.0.3 Установлено: Более 1000 раз Подходящие редакции: «Первый сайт», «Старт», «Стандарт», «Малый бизнес», «Бизнес», «Корпоративный портал», «Энтерпрайз» Адаптивность: Да Поддержка Композита: Да Совместимо с Сайты24 Нет Совместимо с PHP 8.1 Нет
Описание
Поддерживается множественность поля!
Модуль расширяет стандартные возможности для редактирования контента в разделах.
После установки решения, появится новый тип пользовательского свойства HTML. Создайте свойство для раздела инфоблока и используйте все возможности визуального редактора.
Почему отзывы не публикуете? Модуль не работает на PHP8.1, и существующие поля ни удалить, ни редактировать нет возможности. И что теперь с этим делать не понятно.
Техподдержка модуля вообще не отвечает, хоть бы написали что не могут помочь.
Для PHP 8:
1) в файле /bitrix/modules/d2mg.ufhtml/install/index.php заменить function d2mg_ufhtml на function __construct
2) в файле /bitrix/modules/d2mg.ufhtml/classes/general/customtypehtml.php сделать несколько замен:
— extends CUserTypeString на extends \Bitrix\Main\UserField\Types\StringType
— function GetUserTypeDescription() на public static function GetUserTypeDescription():array
— function GetEditFormHTML($arUserField, $arHtmlControl) на public static function GetEditFormHTML(array $arUserField, ?array $arHtmlControl): string
— function OnBeforeSave($arUserField, $value) на public static function OnBeforeSave($arUserField, $value)
На php 8.x модуль не работает (поле не появляется в админке), смена класса на CUserTypeStringFormatted и добавление static к его методам не помогает.
1.0.3 (27.01.2015) | Исправления для множественности поля |
1.0.1 (13.01.2015) | Исправлена высота текстового поля по умолчанию. Если поле не пустое, то по умолчанию отображается визуальный редактор. |
Решение устанавливается и удаляется стандартными средствами.
Высота поля настраивается в параметре «Количество строчек поля ввода». Указанное количество умножается на 10px
Техническая поддержка решения осуществляется по адресу d2mg@yandex.ru
Модуль предоставляется «AS IS» («Как есть»). Срок реакции на обращения до 5 рабочих дней.
- Обрезается текст до определенного количества символов при сохранении
Решение: надо увеличить настройку PHP max_input_vars - Вывести содержимое в формате html (теги выводятся как текст)
Решение: использовать знак ~ (тильда) в названии поля
Другие решения разработчика
Решение добавлено в корзину
Готовые решения
Все решения
Для Битрикс24
О маркетплейсе
Как установить
Контакты
Авторы
Блоги разработчиков
Для разработчиков
Добавить свое решение
Стать партнером
1С-Битрикс http://www.1c-bitrix.ru Общие вопросы info@1c-bitrix.ru Приобретение и лицензирование продуктов : sales@1c-bitrix.ru Маркетинг/мероприятия/PR marketing@1c-bitrix.ru Партнерская программа partners@1c-bitrix.ru Мы работаем с 10:00 до 19:00 по московскому времени. Офис в Москве 127287 Россия Московская область Москва 2-я Хуторская улица дом 38А строение 9 Офис в Калининграде +7 (4012) 51-05-64 Офис в Калининграде 236001 Россия Калининградская область Калининград Московский проспект 261 Офис в Киеве ukraine@1c-bitrix.ru Телефон в Киеве +3 (8044)221-55-33 Офис в Киеве 01033 Украина Калининградская область Киев улица Шота Руставели 39/41 офис 1507
© 2001-2023 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом. 16+
Тип пользовательского свойства — HTML/Визуальный редактор
Опубликовано: 19.09.2019 Обновлено: 14.06.2023 Версия: 1.0.7 Установлено: 500 — 999 раз Подходящие редакции: «Корпоративный портал», «Энтерпрайз», «Интернет-магазин + CRM» Адаптивность: Нет Поддержка Композита: Нет Совместимо с Сайты24 Нет Совместимо с PHP 8.1 Да
Описание
Модуль добавляет новый тип пользовательского поля — «HTML/Визуальный редактор».
С помощью данного модуля вы можете создавать пользовательские поля нового типа — « HTML/Визуальный редактор ». Вносить данные в такое поле можно как в административном разделе, так и публичном.
Рассмотрим на примере добавление пользовательского поля для карточки пользователя на портале (см. скриншоты).
Создаём новое пользовательское поле, выбираем тип данных « HTML/Визуальный редактор », объект USER. В настройках отображения полей в карточке пользователя добавляем вновь созданное поле, сохраняем и заполняем данные.
Свойство может быть множественным.
Модуль после установки вызвал следующее:
«Фатальная ошибка: Невозможно сделать статический метод CUserTypeString :: GetUserTypeDescription () не статичным в классе CmcartUserFieldHtml in /home/bitrix/www/bitrix/modules/mcart.ufhtml/classes/general/cmcartuserfieldhtml.php на линии 6
[ErrorException] E_COMPILE_ERROR Не удается создать статический метод CUserTypeString :: GetUserTypeDescription () не статично в классе CmcartUserFieldHtml (0) /home/bitrix/www/bitrix/modules/mcartes/general/cmc»
Эта ошибка выдается на экране вместо формы для авторизации для входа в административную часть сайта, в результате обратился к хостерам, чтобы они помогли войти в админку. Пока вопрос не решен я обращаюсь к вам.
(«1С-Битрикс: Корпоративный портал 21.400.300», редакция «1С-Битрикс24: Интернет-магазин + CRM», PHP 7.4.22, MySQL 8.0.25-15, Apache 2.4.6, NGINX 1.18.0)