Перейти к контенту

Выделяем посты "шутников"


Рекомендуемые сообщения

Иногда пользователи "шутят", регистрируют ники, похожие на ники других пользователей, отличающиеся на одну-две буквы "Аdmin" с русской буквой "А" и т.п.

 

Сделал простенький скриптик, красящий нелатинские буквы в зеленый цвет. Если все буквы нелатинские - не красит. Понимает цифры и метасимволы.

 

skin_topic.php

Найти, где ник выводится переменной

{$author['name']}

Заменить на:

<script type="text/javascript">
str="{$author['name']}".split('_').join('&#95;')
strm=str.split(/&.{2,5};/).join('')
strn=strm.split(/[\d]/).join('')
strc=strn.split(/[\w]/).join('')
if(strc!=''&&strc!=strn){strk=''
tz=true
for(i=0;i<str.length;i++){
if(str.substring(i,i+1)=='&')tz=false
if(tz&&str.substring(i,i+1).split(/[\w]/).join('')!=''){
strk+='<span style="color:Green">'+str.substring(i,i+1)+'</span>'
}
else{
strk+=str.substring(i,i+1)
}
if(str.substring(i,i+1)==';')tz=true
}
str=strk
}
document.write(str)
</script>

 

Пример действия скрипта можно посмотреть в топике первоапрельской шутки - в никах шутников появились зеленые буквы :D

Ссылка на комментарий
Поделиться на других сайтах

Нужный мод! Респект тебе ;) Вот теперь смеху то будет :D а то у меня столько было шутников
Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...

Я тоже думаю что лучше банить :D Или запрещать мешать латиницу и кирилицу при регистрации. (вроде был такой мод)

 

А то если каждый {$author['name']} будет заменяться этим скриптом, страничка станет значительно больше. (у меня на каждой стр. 60 автор-неймов)

Ссылка на комментарий
Поделиться на других сайтах

А то если каждый {$author['name']} будет заменяться этим скриптом, страничка станет значительно больше. (у меня на каждой стр. 60 автор-неймов)

При включенном ГЗИП-е разница в трафике меньше килобайта...

 

 

Как бороться символами?

Без падежов мою твоё не понимать.

Ссылка на комментарий
Поделиться на других сайтах

Как бороться символами?

Без падежов мою твоё не понимать.

Включите файл. Если не понимаете , то незачем отвечать и не выделяться .

Символы вам не встречались при регистрации на пример :

 ***,<>?,<=, <p&m,

И т.д. У меня такой шутник был регился два раза под символами .

Изменено пользователем Roman Borisovich
Ссылка на комментарий
Поделиться на других сайтах

Символы вам не встречались при регистрации на пример :
 ***,<>?,<=, <p&m,

И т.д. У меня такой шутник был регился два раза под символами .

Встречались.

Я сам на ряде форумов зареген ником >^..^<

 

Я писал хак, чтобы высветить шутников, подделывающих чужие ники. Хак подсвечивает нелатинские буквы, похожие по написанию на латинские.

А в символах что и зачем подсвечивать?

Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...

Почему-то не сработало, вылезает кусок HTML кода из ссылки на профайл пользователя и в нем все символы кроме букв оказываются подсвечены.

 

Мне кажется, что это из-за того что {$author['name']} содержит не только имя, но и линк на профайл и линк почему-то не разбирается скриптом так, как надо.

Ссылка на комментарий
Поделиться на других сайтах

Почему-то не сработало, вылезает кусок HTML кода из ссылки на профайл пользователя и в нем все символы кроме букв оказываются подсвечены.

 

Мне кажется, что это из-за того что {$author['name']} содержит не только имя, но и линк на профайл и линк почему-то не разбирается скриптом так, как надо.

1.х?

Легко подправить.

 

Topics.php

Найти:

$poster['name'] = "<a href='{$this->base_url}showuser={$poster['id']}'>{$poster['name']}</a>";

и удалить (закомментировать) или заменить на

$poster['name']=str_replace(" ", " ", $poster['name']);

для замены простого пробела неразрывным.

 

skin_topic.php

Найти:

{$author['name']}

Заменить на:

<a href='{$ibforums->base_url}showuser={$author['member_number']}><script type="text/javascript">
str="{$author['name']}".split('_').join('&#95;')
strm=str.split(/&.{2,5};/).join('')
strn=strm.split(/[\d]/).join('')
strc=strn.split(/[\w]/).join('')
if(strc!=''&&strc!=strn){strk=''
tz=true
for(i=0;i<str.length;i++){
if(str.substring(i,i+1)=='&')tz=false
if(tz&&str.substring(i,i+1).split(/[\w]/).join('')!=''){
strk+='<span style="color:Green">'+str.substring(i,i+1)+'</span>'
}
else{
strk+=str.substring(i,i+1)
}
if(str.substring(i,i+1)==';')tz=true
}
str=strk
}
document.write(str)
</script></a>

Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...
  • 4 недели спустя...
А как на счёт 2.1? Метод Архара не работает.

Не пиши скрипт через админку, вынеси скрипт в js-файл, а через админку только прилинкуй.

При вставке джаваскриптов через админку они криво ребилдятся в файлы кеша. Очередной привет "двушкам".

Ссылка на комментарий
Поделиться на других сайтах

FatCat, то есть, загоняем скрипт Архара в .js файл, заливаем в корень форума и заменяем в рендере

{$author['members_display_name']} на <script language="javascript" src="*.js"></script>?

Ссылка на комментарий
Поделиться на других сайтах

FatCat, то есть, загоняем скрипт Архара в .js файл, заливаем в корень форума и заменяем в рендере

{$author['members_display_name']} на <script language="javascript" src="*.js"></script>?

Ни в коем случае.

 

Делай раз: из моего скрипта делаем функцию, и ее запихиваем в JS-файл, например shutka.js:

function replace_name(val){
str=val.split('_').join('_')
strm=str.split(/&.{2,5};/).join('')
strn=strm.split(/[\d]/).join('')
strc=strn.split(/[\w]/).join('')
if(strc!=''&&strc!=strn){strk=''
tz=true
for(i=0;i<str.length;i++){
if(str.substring(i,i+1)=='&')tz=false
if(tz&&str.substring(i,i+1).split(/[\w]/).join('')!=''){
strk+='<span style="color:Green">'+str.substring(i,i+1)+'</span>'
}
else{
strk+=str.substring(i,i+1)
}
if(str.substring(i,i+1)==';')tz=true
}
str=strk
}
document.write(str)
}

 

 

Делай два:

Где-то в админке можно прилинковывать js-файлы. Прилинковать.

 

 

Делаем три:

для 21 ПРЕДПОЛОЖИТЕЛЬНО следующее решение

админка -- внешний вид -- skin_topic -- RenderRow

найти

<td valign="middle" class="row2" width="1%"><a name="entry{$post['pid']}"></a><span class="{$post['name_css']}">{$author['members_display_name']}</span></td>

здесь сомнительно, но попробуйте в этом отрезке заменить

{$author['members_display_name']}

на

Заменяем на

<script type="text/javascript">replace_name("{$author['members_display_name']}")</script>

 

 

Вроде бы так. Но двушки под рукой нет, не могу попробовать.

Ссылка на комментарий
Поделиться на других сайтах

FatCat, прошерстил всю админку. В упор не вижу опции, связанной с линкованием. Хотя, может, просто не там искал...

Двушки так и нет под рукой.

Поискал как это сделано в других модах.

По идее вот как:

Далее, идем в ВНЕШНИЙ ВИД - Изменить общий шаблон форума:

Находим:

<% JAVASCRIPT %> 
</head>

Заменяем на:

<% JAVASCRIPT %> 
<script type="text/javascript" src='адрес_до_скриптов/скрипт.js'></script>
</head>

Ссылка на комментарий
Поделиться на других сайтах

FatCat, ага, самому на глаза только что попалась эта штука. Значит, для 2.1 делаем так:

 

1. Создаём JS-файл с таким содержанием:

function replace_name(val){
str=val.split('_').join('_')
strm=str.split(/&.{2,5};/).join('')
strn=strm.split(/[\d]/).join('')
strc=strn.split(/[\w]/).join('')
if(strc!=''&&strc!=strn){strk=''
tz=true
for(i=0;i<str.length;i++){
if(str.substring(i,i+1)=='&')tz=false
if(tz&&str.substring(i,i+1).split(/[\w]/).join('')!=''){
strk+='<span style="color:Green">'+str.substring(i,i+1)+'</span>'
}
else{
strk+=str.substring(i,i+1)
}
if(str.substring(i,i+1)==';')tz=true
}
str=strk
}
document.write(str)
}

Например, text.js

 

2. Заходим в АЦ --- Внешний Вид --- *Нужный Скин* --- Изменить общий шаблон форума:

Там находим:

<% JAVASCRIPT %>

Ставим после, заменяя путь:

<script type="text/javascript" src='адрес_до_скриптов/скрипт.js'></script>

 

3. Радуемся и идём проверять.

 

Так?

Ссылка на комментарий
Поделиться на других сайтах

админка -- внешний вид -- skin_topic -- RenderRow

Если Архар не ошибся, то именно там надо вставить вызов функции.

Ссылка на комментарий
Поделиться на других сайтах

Идей очень занятная. Но поставить не получилось. Правда

Иногда люди пишут Адмиn

В текущем варианте все слово кроме последней буквы будет зеленым. Как переделать, чтобы меньшинство букв красилось зеленым?

 

Для 1.3 тоже надо отдельным файлом выносить скрипт на ЯС?

Ссылка на комментарий
Поделиться на других сайтах

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

Переделать весь джаваскрипт.

 

 

 

Для 1.3 тоже надо отдельным файлом выносить скрипт на ЯС?

Я не выносил в отдельный файл. Оно правильнее, но лень было. В 1.3 и в скин неплохо вставляется.

Ссылка на комментарий
Поделиться на других сайтах

Заменил {$author['name']} на приведеный код. Теерь во всех топиках ник перестал выводиться вовсе.

 

Попробовал упорядочить код - не помогло.

 

Заменил <script type="text/javascript"> на <script type="javascript">

Тоже не помогло.

Ссылка на комментарий
Поделиться на других сайтах

Заменил <script type="text/javascript"> на <script type="javascript">

Тоже не помогло.

Машина не заводится... Фары протер - все равно не заводится. Колесо попинал - опять не заводится.

Кончай файерволить.

function RenderRow в студию.

 

Если движок не от Игорька, в Topik.php проверить есть ли строка

$poster['name'] = "<a href='{$this->base_url}showuser={$poster['id']}'>{$poster['name']}</a>";

Ссылка на комментарий
Поделиться на других сайтах

function RenderRow($post, $author) {
global $ibforums;
return <<<EOF


<!--Begin Msg Number {$post['pid']}-->
   <table width='100%' border='0' cellspacing='1' cellpadding='3'>
   <tr>
     <td align='center' valign='middle' class='row4' width="1%"><a name='entry{$post['pid']}'></a><span class='{$post['name_css']}'>{$author['name']}</span></td>
       <td class='row4' valign='top' width="99%">

       <!-- POSTED DATE DIV -->

       <div align='left' class='row4' style='float:left;padding-top:4px;padding-bottom:4px'>
{$post['post_icon']}<span class='postdetails'><b><script type="text/javascript">
if(location.href.split('st=')!=location.href)post_number_cor=location.href.split('st=')[1].split('&')[0]
else post_number_cor=0
document.write("<a href='{$ibforums->base_url}act=Print&client=printer&f={$ibforums->input[f]}&t={$ibforums->input[t]}&limin="+(post_number_str+(post_number_cor*1))+"& limit=1' target='_blank' title='Ioe?uou yoi niiauaiea a iiaii ieia'>{$ibforums->lang['posted_on']}</a> ")
post_number_str++
</script></b>{$post['post_date']}</span>
       </div>

       <!-- REPORT / DELETE / EDIT / QUOTE DIV -->

       <div align='right'>
       {$post['report_link']}{$post['delete_button']}{$post['edit_button']}<a href='{$ibforums->base_url}act=Post&CODE=06&f={$ibforums->input[f]}&t={$ibforums->input[t]}&p={$post['pid']}'><{P_QUOTE}></a>
     </div>

     </td>
   </tr>
   <tr>
     <td align='center' valign='top' class='{$post['post_css']}'>
       <span class='postdetails'>{$author['member_status']}<br /><br />{$author['avatar']}<br /><br />
       {$author['title']}<br />
       {$author['member_rank_img']}<br /><br />
       {$author['profile']}<br />
       {$author['member_group']}<br />
	{$author['member_posts']}<br />
	{$author['award']}<br /><br />
{$author['rep']} {$post['rep_options']}<br />
       {$author['files']}<br />
       {$author['downloads']}<br /><br />
       {$author['warn_text']} {$author['warn_minus']}{$author['warn_img']}{$author['warn_add']}</span><br />
       <!--$ author[field_1]-->
       <img src='{$ibforums->vars['img_url']}/spacer.gif' alt='' width='160' height='1' /><br /> 
     </td>
     <td width='100%' valign='top' class='{$post['post_css']}'>
       <!-- THE POST {$post['pid']} -->
               <div class='postcolor'>{$post['post']} <!--IBF.ATTACHMENT_{$post['pid']}--></div>
       {$post['signature']}
       <!-- THE POST -->
     </td>
   </tr>
   <tr>
     <td class='darkrow3' align='left'><b>{$post['ip_address']}</b></td>
     <td class='darkrow3' nowrap="nowrap" align='left'>

       <!-- PM / EMAIL / WWW / MSGR -->

       <div align='left' class='darkrow3' style='float:left;width:auto'>
       {$author['addresscard']}{$author['message_icon']}{$author['email_icon']}{$author['website_icon']}{$author['integ_icon']}{$author['icq_icon']}{$author['aol_icon']}{$author['yahoo_icon']}{$author['msn_icon']}
       </div>

       <!-- REPORT / UP -->

       <div align='right'>

	<b>{$author['editprofile']}</b> 


        <a href='java script:scroll(0,0);'><img src='{$ibforums->vars['img_url']}/p_up.gif' alt='Top' border='0' /></a>
       </div>
     </td>
   </tr>
   </table>
   <div class='darkrow1' style='height:5px'><!-- --></div>


EOF;
}

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.