Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Веб Форумы » VBulletin 2.x.x » Хаки от Netadmin или "Сделай сам" » Хак для Censor Words
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
Afina
Участник+

Зарегистрирован: Sep 2002
Место проживания:
Публикаций: 106
Статус: Afina в оф-лайне
Хак для Censor Words [сообщение #69184]

попросили меня сделать хак который бы заменял одни слова на другие.
я подумал и решил что такая функция вроде бы есть просто немного не доделанная. функцию зовут "censortext" (/admin/functions.php). ее и хакнем

code:

function censortext($text) {
  global  $enablecensor,$censorwords,$censorword,$censorchar
;
  if ($enablecensor==1 and $censorwords!="") {
    if (!isset($censorword)) {
      $censorword = array();
      $censorwords = preg_quote($censorwords);
      $censorwords = str_replace('/', '\\/', $censorwords);
      $censorwords = str_replace('\=', '=', $censorwords);
      $cwords=explode(",",$censorwords);
      foreach ($cwords as $cw) {
        list($word1, $word2)=explode("=",$cw);
        $word1 = trim($word1); $word2 = trim($word2);
        if (empty($word2)) $word2 = repeatchar($censorchar,strlen($word1));
        $censorword[$word1] = $word2;
      }
    } else {
      reset($censorword);
    }
    foreach ($censorword as $key=>$val) {
      if (substr($key,0,2)=="\\{") {
        $key=substr($key,2,-2);
        $text=trim(preg_replace("/([^A-Za-z])".$key."(?=[^A-Za-z])/si","\\1".$val," $text "));
      } else {
        $text=trim(preg_replace("/$key/si",$val," $text "));
     }
    }
  }
  $text = str_replace(chr(173), '_', $text);
  $text = str_replace(chr(160), '_', $text);
  return $text;
}



теперь формат ввода слов для автоцензора " слово=замена,слово=замена,с
лово=замена"
если у слова нет замены, то есть между запятыми. то оно заменится на $censorchar

получается старые варианты будут работать и дальше как работали, и модно добавлять новые пункты со знаком равенства

еще приятная фишечка это преобразования поля для ввода нецензорных слов в textarea. необходимо выполнить этот SQL запрос:

code:
UPDATE setting SET setting.description = 'word=word,word=word or word,word=word,word', setting.optioncode = 'textarea' WHERE setting.title = 'Words to censor'



теперь можно идти в админ панель и заполнять список нецензорных слов

Сообщение было отредактировано Afina 22-07-2004 в 13:56

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 22-07-2004 13:53
Нажмите сюда для просмотра профайла Afina Отправить Персональное сообщение Afina Посетить домашнию страничку Afina! Найти сообщения от Afina Добавить Afina в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя



Формат времени GMT. Текущее время 00:03.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 0.00838399 seconds (31.00% PHP - 69.00% MySQL) with 22 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.