Автоцензор в phpBB3 - использование html кода

Небольшие моды и хаки для форума phpBB3
Правила форума
При размещении мода/статьи взятой с другого форума/сайта обязательно необходимо указывать первоисточник сообщения.
 • Просмотры: 3588
Аватара пользователя
PPK
Администратор
Благодарил (а): 82 раза
Поблагодарили: 1621 раз
Сообщения: 10284
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

Автоцензор в phpBB3 - использование html кода

07 мар 2017, 11:11

Посмотрел - никаких событий нет для реализации этого :pardon:
Be
Beer
Благодарил (а): 9 раз
Поблагодарили: 2 раза
Сообщения: 36
Зарегистрирован: 04 янв 2017, 17:38
Сообщение

Автоцензор в phpBB3 - использование html кода

07 мар 2017, 12:24

Смайл должен быть такой - :?
Все ведь идет по плану, кроме последней правки.

Код: Выделить всё

	$parse_flags = ($row['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES;
	$message = generate_text_for_display($row['post_text'], $row['bbcode_uid'], $row['bbcode_bitfield'], $parse_flags, true);
Заменить на это не совсем правильный результат имеем:

Код: Выделить всё

$message = censor_text($row['post_text'], true);
Аватара пользователя
Dotins
Сообщения: 1
Зарегистрирован: 03 фев 2019, 00:09
Сообщение

Автоцензор в phpBB3 - использование html кода

03 фев 2019, 00:22

Очень требуется такая штука, никто не видел реализацию под 3.2 ??? Или вариант размещённый здесь будет работать под 3.Х?
LC
LCFSC
Сообщения: 3
Зарегистрирован: 19 ноя 2019, 06:37
Сообщение

Автоцензор в phpBB3 - использование html кода

19 ноя 2019, 06:56

Подскажите, а как заставить цензор заменять исходный HTML на нужный HTML ?

Точнее "на нужный" уже готово, а как заставить "исходный"?

То есть к примеру:

Код: Выделить всё

https://s6.dpic.me
:

заменять на:

Код: Выделить всё

http://s6.dpic.me
У депика "плохой" сертификат - и половина пользователей не видит картики (не отображаются через https).
Этих картинок пару десятков тысячь - не вариант вручную заменять...

Тем более, что это можно сделать цензором. Но как7
Аватара пользователя
PPK
Администратор
Благодарил (а): 82 раза
Поблагодарили: 1621 раз
Сообщения: 10284
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

Автоцензор в phpBB3 - использование html кода

19 ноя 2019, 09:21

Это проще сделать через phpmyadmin запросом к базе данных (бэкап phpbb_posts сделайте)

Код: Выделить всё

UPDATE `phpbb_posts` SET `post_text` = replace(post_text, 'https://s6.dpic.me', 'http://s6.dpic.me')
LC
LCFSC
Сообщения: 3
Зарегистрирован: 19 ноя 2019, 06:37
Сообщение

Автоцензор в phpBB3 - использование html кода

20 ноя 2019, 11:03

PPK писал(а):Это проще сделать через phpmyadmin
Не - не проще, т.к. постоянно этим придётся заниматься и проблема "недоступности" не устраняется.

А так в цензор добавил проблемные https'ы и всё.

Постфактум - не решение. Нужно "на лету"...
Аватара пользователя
PPK
Администратор
Благодарил (а): 82 раза
Поблагодарили: 1621 раз
Сообщения: 10284
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

Автоцензор в phpBB3 - использование html кода

01 дек 2019, 09:52

Вообще самый простой способ это принудительно добавить код для замены этой ссылки, потому-что цензор меняет только отдельные слова, а не части текста в слове, а ссылка этим и является
/includes/functions_content.php после

Код: Выделить всё

		else
		{
			$censors = $cache->obtain_word_list();
		}
	}
добавить

Код: Выделить всё

	$str_from = array('<', '>', '[', ']', '.', ':');
	$str_to = array('&lt;', '&gt;', '&#91;', '&#93;', '&#46;', '&#58;');
	$str_replace_from=str_replace($str_from, $str_to, 'https://s6.dpic.me');
	$str_replace_to=str_replace($str_from, $str_to, 'http://s6.dpic.me');
	$text=str_replace($str_replace_from, $str_replace_to, $text);
LC
LCFSC
Сообщения: 3
Зарегистрирован: 19 ноя 2019, 06:37
Сообщение

Автоцензор в phpBB3 - использование html кода

07 дек 2019, 11:42

Вообще самый простой способ это принудительно добавить код для замены этой ссылки, потому-что цензор меняет только отдельные слова, а не части текста в слове, а ссылка этим и является
PPK, спасибо огромное!

Но всё равно это костыль получается: в каждом таком случае придётся скачивать файл и стрингреплейсом заменять каждый "случай", после чего обратно заливать...

Эффективней цензора "научить" любой "текст" заменять. Только я не знаю как...

Как я думаю (возможно ошибаюсь), чтобы "научить" цензора, нужно упростить его функцию - чтобы он тупо любой текст менял на любой текст (как в DLE к примеру). И возможно придётся поднять его в очереди выполнения (чтоб он был перед выполнением тегов и всяких манипуляций с ссылками).

Вернуться в «Минимоды и хаки для phpBB3»