г. Санкт-Петербург
Войти
Логин
Пароль
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности
Заказать звонок
Логин
Пароль
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности
Логин
Пароль
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности

RSS
Вывод изображений в форуме вставляемых из буфера обмена, Как вывести изображения из буфера обмена в битрикс
 
Добавляем в init.php данные строки:
Код
AddEventHandler("main", "OnEndBufferContent", "OnEndBufferContentHandler");

function OnEndBufferContentHandler(&$content)
{
   $content = preg_replace("/\[img\](data:image.*?)\[\/img\]/i", '<img src="\\1" border="0" />', $content);
  
}

После чего как видите в этом форуме, изображения выводятся:



Однако при многократном добавлении картинок, упираемся в ограничения сообщений форума в 64000 символов






Цитата
Неприятно, копаем дальше...

Дальнейшие изменения рекомендуется делать только если вы не планируете держать форум "обновляемым"
или готовы впоследствии после каждого обновления приводить все к такому виду

Потребуется поменять размер SQL таблицы POST_MESSAGE с TEXT на MEDIUMTEXT

для этого можно воспользоваться инструкцией http://s-alpha.ru/forums/?PAGE_NAME=read&FID=4&TID=14&TITLE_SEO=14-ustanovka-phpmyadmin-na-bitrixvm

Код
ALTER TABLE `b_forum_message` CHANGE `POST_MESSAGE` `POST_MESSAGE` MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL;

и изменить скрипт ограничивающий это ./bitrix/components/bitrix/forum.post_form/templates/.default/script.js

учитывая что скрипт находится в пространстве имен bitrix рекомендуется сделать копию в свое пространство имен

потребуется поменять MessageMax = 64000;

на нужное вам значение например

MessageMax = 164000;
Код
validate : function() {
                                this.editor.SaveContent();
                                var errors = "",
                                        Message = this.editor.GetContent(),
                                        MessageLength = Message.length,
                                        MessageMax = 64000;
                                if (this.form.TITLE && (this.form.TITLE.value.length <= 0 ))
                                        errors += BX.message('no_topic_name');
                                if (MessageLength <= 0)
                                        errors += BX.message('no_message');
                                else if (MessageLength > MessageMax)
                                        errors += BX.message('max_len').replace(/#MAX_LENGTH#/gi, MessageMax).replace(/#LENGTH#/gi, MessageLength);

Более элегантного способа пока найти не удалось, т.к как поменять данную переменную не задев файла в скрипте пока не понятно, если кто найдет решение пишите
Изменено: Александр Борисов - 05.02.2020 16:18:40