Форум web-мастеров phpBB3

Модификации и расширения phpBB
Регистрация ·  Логин: Пароль: Запомнить   · Забыли пароль?




Ответить на тему
Пред. тема | След. тема 
Автор Сообщение
Местный тролль

Карма
0
Стаж: 4 года 11 месяцев
Сообщения: 12
Украина

Ответить с цитатой

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

adm/style/acp_words.html заменить

         <dd><input id="replacement" type="text" name="replacement" value="{REPLACEMENT}" maxlength="255" /></dd>


на

         <dd><textarea id="replacement" name="replacement">{REPLACEMENT}</textarea></dd>


includes/acp/acp_words.php после

            $word         = utf8_normalize_nfc(request_var('word', '', true));
            $replacement   = utf8_normalize_nfc(request_var('replacement', '', true));


добавить

            $replacement=utf8_substr($replacement, 0, 255);


includes/functions_content.php заменить

function censor_text($text)


на

function censor_text($text, $html=false)


заменить

   if (sizeof($censors))
   {
      return preg_replace($censors['match'], $censors['replace'], $text);
   }


на

   if (sizeof($censors))
   {
      if(!isset($censors['match_html']) && !isset($censors['match_nohtml']))
      {
         foreach($censors['replace'] as $k => $v)
         {
            if(preg_match('/&lt;\w+/', $v))
            {
               $censors['match_html'][$k]=$censors['match'][$k];
               $censors['replace_html'][$k]=htmlspecialchars_decode($v);
            }
            else
            {
               $censors['match_html'][$k]=$censors['match'][$k];
               $censors['replace_html'][$k]=$censors['replace'][$k];
               $censors['match_nohtml'][$k]=$censors['match'][$k];
               $censors['replace_nohtml'][$k]=$censors['replace'][$k];
            }
         }
      }
      if($html && isset($censors['match_html']) && sizeof($censors['match_html']))
      {
         return preg_replace($censors['match_html'], $censors['replace_html'], $text);
      }
      else if(isset($censors['match_nohtml']) && sizeof($censors['match_nohtml']))
      {
         return preg_replace($censors['match_nohtml'], $censors['replace_nohtml'], $text);
      }
      else
      {
         return $text;
      }
   }

   /*if (sizeof($censors))
   {
      if(!isset($censors['no_html']))
      {
         $censors['replace']=array_map('htmlspecialchars_decode', $censors['replace']);
         $censors['no_html']=array_map('strip_tags', $censors['replace']);
      }
      return preg_replace($censors['match'], ($html ? $censors['replace'] : $censors['no_html']), $text);
   }*/


viewtopic.php заменить
   // Parse the message and subject
   $message = censor_text($row['post_text']);


на

   // Parse the message and subject
   $message = censor_text($row['post_text'], true);


Скриншоты:
Адм. раздел
#281

#281

Оригинал сообщения
#281

Результат
#281

1. Ограничение на длину текста в замене - 255 символов
2. Замена с html кодом работает только на странице списка сообщений (и только в сообщениях)
3. Т.к. функция автоцензора отключаемая (настраивается в правах), необходимо включить её (запретить отключение) для нужных групп пользователей
Источник: ppkbb3cker.ru


Профиль  Отправить личное сообщение
Идеальный заработок для торрент-трекеров
Страница 1 из 1
Показать сообщения за:  Поле сортировки  
Ответить на тему

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron



Powered by phpBB, 9CaraTT.RU, 2012-2018.
Обратная связь
000webhost logo