Подняться наверх

Drupal модуль-антимат - реализация фильтра

You are here

Как часто пользователи на вашем сайте употребляют ненормативную лексику в своих выражениях? Чуть облегчить нелегкий труд модератора возможно поможет использование данного ниже решения, пусть и неидеального.

Модули для Drupal 7 - фильтр мата

Коротко пройдусь по принципу работы. Использую готовый Anti Mate Class от кодера под ником «s1ayer», который и прикручиваю к «движку». Единственное замечание: заменил несколько вызовов устаревших функций типа eregi_replace на актуальные для PHP 5.x preg_replace. В основе, как вы уже наверное догадались, лежит активное применение регулярных выражений.

Всё содержимое модуля здесь приводить я не буду. Остановлюсь лишь на ключевых моментах написания кода фильтра.

/**
 * Реализация нужного хука.
 */
function filter_antimat_filter_info() {
  $filters['filter_time'] = array(
    'title' => 'Антимат',
    'description' => 'Заменяет мат в тексте высказываний на <font color=red>[цензура]</font>.',
    'process callback' => '_filter_antimat_filter_antimat_process',
  );
  return $filters;
}
 
/**
 * Чего будем делать с неприятным контентом
 */
function _filter_antimat_filter_antimat_process($text, $filter) {
  $anti_mate = new anti_mate(); //создаю новый экземпляр
  return $anti_mate->filter($text); //возвращаю результат выполнения метода
}

Фильтр-антимат для Drupal

Во избежание будущих недоразумений хочу заранее подчеркнуть, что модуль является всего лишь хорошим примером написания собственного фильтра в Drupal 7, не более того.

К статье прилагаю: 
AttachmentSize
filter_antimat.zip2.39 KB

Опрос

Что хотим видеть
Яндекс.Метрика

Использовано памяти на 4.824mb