#########################################################
# #
# Ignore User Hack #
# Author: Steve Scrimpshire <admin@omarserenity.com> #
# #
# Translate & Modified #
# for Russian Ikonboard 4 Release Post Final #
# by: JESUS <jesus@tut.by> #
# #
#########################################################
Юзвери могут добавить 5 других участников в Игнор-Лист,
посты этих пользователей не будут видны.
Нельзя игнорить модеров и админов.
Игнор лист хранится в отдельном файле, именуемом
"theirmembername.dat" в директории "members".
Когда юзверь удаляется, файл Игнор-листа удаляется тоже.
#########################################################
# #
# НЕ ЗАБУДЬТЕ СДЕЛАТЬ КОПИИ!!! #
# #
#########################################################
Итак, .[B]profile.cgi.[/B]
Находим:
<br>############################## start profile modification<p>sub modify {<p> $helpurl = &helpfiles("Profile");<br> $helpurl = qq~$helpurl<img src="$imagesurl/images/help_b.gif" border=0></a>~;<p>&getmember("$inmembername");<br>
Сразу после этого добавляем:
<br>################### Игнор-Лист <p> $ignoremember = "$inmembername";<br> $ignoremember =~ s/ /\_/;<br> $filetoopen = "$ikondir" . "members/$ignoremember.dat";<br> if (-e $filetoopen) {<br> open(FILE,"$filetoopen");<br> $filedata = <FILE>;<br> close(FILE);<br> chomp($filedata);<br> ($ignore1, $ignore2, $ignore3, $ignore4, $ignore5) = split(/\|/,$filedata);<br> }<br>
Далее находим:
<br><td bgcolor=$miscbackone><input type=text size=20 name="newicqnumber" value="$icqnumber"></td><br>
И после этого вставляем:
<br></tr><tr><br><td bgcolor=$miscbackone><font face="$font" color=$fontcolormisc size=$dfontsize1><b>Игнор-лист</b> (до пяти ников):<br>Вы можете ввести ники участников, чьи посты не желаете видеть.<br><i>Примечание: Вы не можете игнорировать посты Администраторов и Модераторов!</i></td><br><td bgcolor=$miscbackone><input type=text size=20 name="newignore1" value="$ignore1"><br><br><input type=text size=20 name="newignore2" value="$ignore2"><br> <br><input type=text size=20 name="newignore3" value="$ignore3"><br> <br><input type=text size=20 name="newignore4" value="$ignore4"><br> <br><input type=text size=20 name="newignore5" value="$ignore5"></td><br>
Потом, в процедуре [B]sub savemodify[/B] находим:
<br>$inuseravatar = $query -> param('useravatar');<br>
и вставляем после этого следующее:
<br> $newignore1 = $query -> param('newignore1');<br> $newignore2 = $query -> param('newignore2');<br> $newignore3 = $query -> param('newignore3');<br> $newignore4 = $query -> param('newignore4');<br> $newignore5 = $query -> param('newignore5');<br>
Находим после этого:
<br> $filetomake = "$ikondir" . "members/$memberfiletitle.cgi";<br>open(FILE, ">$filetomake");<br>flock(FILE, 2);<br>print FILE "$inmembername|$newpassword|$membertitle|$membercode|$numberofposts|$newemailaddress|$newshowemail|$ipaddress|$newhomepage|$newaolname|$newicqnumber|$newlocation|$newinterests|$joineddate|$lastpostdate|$newsignature|$newtimedifference|$privateforums|$inuseravatar|$misc1|$misc2|$misc3|$newcustomavatar";<br> close(FILE);<p>
и добавляем код:
<br>$ignorefiletitle = $inmembername;<br> $ignorefiletitle =~ s/ /\_/isg;<br> $filetomake = "$ikondir" . "members/$ignorefiletitle.dat";<br> open(FILE, ">$filetomake");<br> flock(FILE, 2);<br> print FILE "$newignore1|$newignore2|$newignore3|$newignore4|$newignore5";<br> close(FILE);<br>
Сохраняем и закрываем файл profile.cgi
-------------------------------------
В файле [B]topic.cgi[/B] находим:
<br>$post =~ s/\(Отредактировано(.+?)\)/\<font size=$dfontsize1>\(Отредактировано$1\)\<\/font\>/isg;<br>
После чего добавляем:
<br> $showthispost = "yes"; <br> $filetoopen = "$ikondir" . "members/$inmembername.dat";<br> if (-e $filetoopen) {<br> open(FILE,"$filetoopen");<br> $ignoredata = <FILE>;<br> close(FILE);<br> chomp($ignoredata); <br> }<br> if ($ignoredata =~ /$membername/g){<br> $showthispost = "no";<br> }<br> <br> if ($showthispost eq "yes"){<p>
Затем немного ниже находим:
<br><tr><td class="bottomline" ><br><hr size=1 width=100% color=$tablebordercolor><br><font face=$font color=$postfontcolor size=$dfontsize1>Всего сообщений: <b>$numberofposts</b> | Присоединился: <b>$joineddate</b> | Отправлено: <b>$postdate</b> | <a href="$viewipprog?forum=$inforum&topic=$intopic&postno=$editpostnumber">IP</a><br></td></tr></table><br></td></tr><br>~;<br>
Добавляем после:
<br>}<br>if ($showthispost eq "no"){<br> $output .= qq~<br><tr><td bgcolor="$postbackcolor"><table width=100% cellpadding=4 cellspacing=0 bgcolor="$postbackcolor"><br><tr><td bgcolor="$postbackcolor" valign=top width=20% rowspan=2><br><font face="$font" color=$postfontcolor size=$dfontsize2>(Сообщение не показывается потому, что участник <a href="$boardurl/profile.cgi?action=show&member=$membername" target="_blank">$membername</a> у Вас в игноре. Чтобы прочитать это сообщение, удалите участника из Игнор-Листа в своем <a href="$profileprog" target="_blank">Профиле</a>.)</font></td></tr><br></table></td></tr><br> ~;<br> }<br>
Сохраняем и закрываем topic.cgi
-------------------------------------
В файле [B]setmembers.cgi[/B] в процедуре [B]sub deletemember[/B] находим:
<br> print qq~<br><tr><td bgcolor=#EEEEEE valign=middle align=center colspan=2><br><font face=verdana color=#333333 size=3><b>Участник удален из базы данных форума</b></td></tr><br> ~;<br>
И перед этим вставляем:
<br>$filetocheck = "$ikondir"."members/$inmember.dat";<br> if (-e $filetocheck){<br> $filetotrash = "$ikondir"."members/$inmember.dat";<br> unlink "$filetotrash";<br> print qq~<br><tr><td bgcolor=#EEEEEE valign=middle align=center colspan=2><br><font face=verdana color=#333333 size=3><b>Игнор-лист участника $inmember удален из базы данных форума</b></td></tr><br> ~;<br> } <br>
[B]Все....[/B]
Пришлось правда немного покулупацца в коде.... ибо хак в оригинале был немного под другую версию....
однако, фича довольно удобная.... Хотя и не знаю насколько нужная.... народ уже юзает у меня на форуме, судя по появившимся в папке участников файлам....