Всем привет! Сначала не стал здесь писать о новом своем решении в маркетплейсе, но Антон заинтересовался технической реализацией и я подумал что и другим будет интересно. Тем более решение мне пришло в голову не сразу. [spoiler] Тем кто не видел - Описание модуля и картинки
Задача: Выводить между сообщениями пользователей своё сообщение с рекламой, но без лишних ссылок (цитата, имя и т.п.).
Требования: Т.к. ЦА решения простые вебмастера без навыков программирования, то нужно было сделать всё максимально просто для них. Работа решения должна быть поверх стандартного форума, ничего не ломать, и не мешать обновлениям.
Решение: Первое. Как сделать так чтобы не трогать шаблон? Обработчики. Вешаем на добавление сообщения юзера обработчик и следом пишем ещё одно сообщение с рекламой. Знаете, я даже реализовал это, но понял что это жесть. Куча костылей и лишний мусор в базе и работает это только для новых записей. Мне даже стало стыдно за такое глупое решение
Второе. Тут я всё же решил немного подлезть к шаблону через result_modifier.php модифицируя массив сообщений.
Но как же шаблон? Вдруг result_modifier.php уже что-то содержит? Я проверяю существует ли result_modifier.php, вызов своего модуля пишу в конец result_modifier.php, при удалении я ищу свой вызов модуля и удаляю только его, после каждой операции с result_modifier.php я пишу в логи модуля содержимое этого файла для возможности восстановления. Провел больше десятка тестов - всё ok!
Как убрать ссылки "цитата" в рекламных сообщениях ведь они в шаблоне? Добавляем к POST_MESSAGE_TEXT строку со своими правилами для id каждого рекламного объявления и вуаля!
Осталось функцией glob отыскать все шаблоны темы форума в системе.
Итог мне кажется отличный. База свободна, шаблоны целы, реклама работает
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».