ИМХО довольно штатная задача, причём в админке битрикса в сервисах эта возможность присутствует, но как оказалось, не всё так просто !
ИТАК:
Поменял я в админке стандартный смайл (был icon_smile.gif) на колобка — вроде всё путём, поменялось — захожу обратно на форум, делаю новый пост — всё ОК — смайл новый.
НО !!! смотрю старые записи — облом, колобок не появился.
А причина в том, что отображается в форуме b_forum_message.POST_MESSAGE_HTML которая получается преобразованием POST_MESSAGE (сообщение которое ввел юзер) в подготовленное для отображения. Т.е. все замены смайлов происходят в момент постинга.
Тут то и лежит наш
/bitrix/images/forum/smile/icon_smile.gif
а не новый
/bitrix/images/forum/smile/call_o_bog_smile.gif
Решения два — сложное — перепарсить заново все сообщения, либо простое 🙂 — записать новые смайлы прямо поверх старых (не редактированием смайла из админки, а файловой операцией — либо из админки, либо ftp, либо ssh и пр…)
Я выбрал второе. Правда пришлось потратить минут 10 на сопоставление смайлов и запись их под тем же именем, что и в Битриксе.
P.S.
Вообще, чё то они забросили развитие форума, жаль … Надеюсь реабилитируются, т.к. сквозная авторизация на портале — удобно, и прикручивать сторонний форум по этой причине совсем не хочется.
Либо нужно как то продумывать взаимную авторизацию «сторонний форум» <-> «битрикс».
P.P.S.
Ещё забыл момент — новые смайлы покрупнее и не по-формату.
В форуме вроде без проблем отобразились, а вот в админке — некоторые косовато.
В принципе пофиг, но я решил поправить —
/bitrix/modules/forum/admin/smile.php
поиск по «width»
в найдённой строчке убираем все упоминания «width» и «height»
вуаля
P.P.P.S.
после очередного битрикс обновления к смайлам начал добавлсяться width и height аттрибуты
пришлось убрать их тут
/bitrix/modules/main/classes/general/textparser.php
Один комментарий на «“Битрикс: замена смайликов в форуме”»
после очередного битрикс обновления к смайлам начал добавлсяться width и height аттрибуты
пришлось убрать их тут
/bitrix/modules/main/classes/general/textparser.php