Сделан на основе плагина от Вордпресс и имеет в составе фильтр и плагин. Фильтр предназначен для отлова нежелательных выражений в статьях и модулях. Плагин более функционален и отслеживает:
- добавление(редактирование) записи в блоге,
- добавление(редактирование) объявления,
- добавление(редактирование) записи в каталоге,
- добавление(редактирование) комментария,
- добавление(редактирование) записи на форуме,
- добавление записи на стене,
- добавление записи в ленту активности.
Если этого окажется слишком много, то достаточно просто зайти в настройки плагина и отключить все лишнее, прописав напротив нужного пункта 0.
Примечание:
1. Русский язык слишком богат поэтому иногда некоторые словечки проскакивают. Если хотите можете открыть файл плагина и самостоятельно дополнить массив регулярных выражений по которым производится поиск, комментарии я оставил.
2. Фильтрация происходит на этапе записи данных в БД поэтому на те записи, которые уже существуют это никак не повлияет.
3. Ввиду специфики обработки данных выделить слово "[цензура]" каким либо цветом без бубна нельзя.
4. Для разработки и тестирования использована система обновленная до набора 1267. Я не проверял, но возможно что в более ранних версиях некоторые функции плагина у вас могут не работать. Ничего страшного в этом нет, просто дождитесь официального обновления системы или обновитесь с бранча самостоятельно.
5. Из-за особенностей вывода отредактированный комментарий хоть и фильтруется, но до обновления странички показывается как есть. Это совсем не критично потому как мат виден только самодовольному автору писанины. Во время тестирования просто не обращайте на это внимания.
Установка:
1. Залить папку "f_antimat" в папку "filters" в корне сайта.
2. При необходимости скорректируйте префикс у таблицы "cms_filters" и выполните запрос:
INSERT INTO `cms_filters` (`id`, `title`, `description`, `link`, `published`) VALUES (null, 'Антимат', 'Ищет в тексте мат и заменяет его на [цензура]', 'f_antimat', 1);
3. Установка плагина стандартная. Скопируйте "p_antimat" в папку "plugins" системы и установите его в админке.
4. Известно, что комментарии можно не только писать, но и редактировать. Для фильтрации таких комментариев в метод updateComment (/components/comments/model.php) Нужно добавить эвент:
$comment = cmsCore::callEvent('UPGRADE_COMMENT', $comment);
5. Все вышесказанное относится и к редактированию поста в форуме, но тут все еще хуже. В версии 1.10+ присутствует функция склейки постов. То есть если пользователь в течении 20 минут решил написать в некой теме еще одно сообщение, а предудущее сообщение было написано тоже им, то такие сообщения будут объединены. Так вот. Чтобы они тоже фильтровались в метод updatePost (/components/forum/model.php) нужно добавить эвент:
$post = cmsCore::callEvent('UPGRADE_FORUM_POST', $post);
6. И наконец чтобы полностью фильтровались записи, выводящиеся в ленту активности требуется хак метода updateLog (core/classes/actions_class.php). В этот файл нужно добавить эвент:
$params = cmsCore::callEvent('UPGRADE_LOG', $params);
Ссылка на скачивание:
Теги: анти мат instantcms 1.10-1.10.3