Rand
Новичок
Всего сообщений: 2 Рейтинг пользователя: 0
Дата регистрации на форуме: 5 окт. 2005
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 5 октября 2005 13:53 Сообщение отредактировано: 5 октября 2005 13:58
Версия форума: IkonBoard 2.1.9. Release 4 Post Final
Правим:
Файл search2.cgi
после строки 52:
---------
&getmember($inmembername);
добавляем:
&moderator;
---------
после строки 59:
---------
elsif ($action eq "search_msg") { &search_msg(); }
добавляем
elsif ($action eq "search_ip") { &search_ip(); }
---------
строка 169-170:
</tr>
</table>
заменяем:
</tr>~;
if (($membercode eq "ad") && ($inmembmod eq "yes")) {
$output.=qq~<tr>
<form action="$thisprog" method=POST name="form3">
<td bgcolor=$miscbacktwo valign=middle width=30%><font face="$font" color=$fontcolormisc size=1><b>Маска IP для поиска:</b></font></td>
<td bgcolor=$miscbacktwo valign=middle><input type=text size=20 maxlength=15 name="ipad"></td>
</tr><tr>
<td bgcolor=$miscbacktwo valign=middle><font face="$font" color=$fontcolormisc size=1><b>На форуме:</b></td>
<td bgcolor=$miscbacktwo valign=middle><font face="$font" color=$fontcolormisc size=1>$forumselect
</tr><tr>
<td bgcolor=$miscbacktwo valign=middle><font face="$font" color=$fontcolormisc size=1><b>Выводить только одно сообщение для темы:</b></td>
<td bgcolor=$miscbacktwo valign=middle><font face="$font" color=$fontcolormisc size=1><input type=radio name=onlyonce3 value="yes" checked> Да <input type=radio name=onlyonce3 value="no"> Нет</td>
</tr><tr>
<td bgcolor=$miscbacktwo valign=middle><font face="$font" color=$fontcolormisc size=1><b>Время отправки сообщения:</b><br>(дд.мм.гггг)</td>
<td bgcolor=$miscbacktwo valign=middle><font face="$font" color=$fontcolormisc size=1>от
<input type=text size=2 maxlength=2 name=startday value=01>.<input type=text size=2 name=startmonth value=01>.<input type=text size=4 maxlength=4 name=startyear value=1970> до
<input type=text size=2 maxlength=2 name=endday value=$day>.<input type=text size=2 name=endmonth value=$month>.<input type=text size=4 maxlength=4 name=endyear value=$year></td>
</tr><tr>
<td bgcolor=$miscbackone valign=middle colspan=2 align=center>
<font face="$font" color=$fontcolormisc size=1>
<input type=hidden name=action value="search_ip">
<input type=submit name=submit value="Начать поиск по IP отправителя"></td>
</form>
</tr>
~;
}
$output.=qq~</table>
далее:
в строках:
251, 256, 313, 398
должны идти:
$results.="$forumid|$topicid|$topictitle|$topicdescription|$startedby|$startedpostdate|$lastposter|$lastpostdate|0|||\n";
изменяете:
$results.="$forumid|$topicid|$topictitle|$topicdescription|$startedby|$startedpostdate|$lastposter|$lastpostdate|0||||\n";
строку 286, 428 правите:
$results.="$forumid|$topicid|$topictitle|$topicdescription|$startedby|$startedpostdate|$lastposter|$lastpostdate|$postnumber|$post|$membername|$postdate\n";
на:
$results.="$forumid|$topicid|$topictitle|$topicdescription|$startedby|$startedpostdate|$lastposter|$lastpostdate|$postnumber|$post|$membername|$postipaddress|$postdate\n";
Перед строкой 447 вставляете :
sub search_ip {
$startmonth--;
$startyear = $startyear-1900;
$startdate = timelocal(0,0,0,$startday,$startmonth,$startyear);
$endmonth--;
$endyear = $endyear-1900;
$enddate = timelocal(59,59,23,$endday,$endmonth,$endyear);
if (!$ipad) { $ipad = "*.*.*.*"; }
($test1,$test2,$test3,$test4)=split(/\./,$ipad);
print header(-charset=>$forumcharset);
&title;
$output .= qq~
<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth align=center>
<tr>
<td width=30% rowspan=2> </td>
<td align=left valign=top><font face="$font" color=$fontcolormisc size=$dfontsize2>
<font face="$font" color=$fontcolormisc size=$dfontsize2> <img src="$imagesurl/images/closedfold.gif" border=0><a href="$forumsummaryprog"> $boardname</a><br>
<img src="$imagesurl/images/bar.gif" border=0><img src="$imagesurl/images/openfold.gif" border=0> Поиск на форуме</td>
</tr>
</tr>
</table>
<br>
~;
$resnumber=time;
while (-e "$ikondir"."search/$resnumber") { $resnumber++; }
open(RESULT,">$ikondir"."search/$resnumber");
$relocurl=$thisprog."?action=showresult&resnumber=$resnumber&where=$where&start=0";
$output .= qq~
<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center>
<tr>
<td>
<table cellpadding=6 cellspacing=1 border=0 width=100%>
<tr>
<td bgcolor=$miscbacktwo valign=middle align=center><font face="$font" color=$fontcolormisc size=$dfontsize2><b>Пожалуйста подождите. Идет поиск.</b></font></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc size=$dfontsize1><br>
<br>Если ваш броузер не перейдет автоматически на страницу с результатами поиска, <a href=$relocurl>нажмите сюда</a>.<br>
<br>
</tr>
</td>
</table>
</td></tr></table>
<meta http-equiv="refresh" content="2; url=$relocurl">
~;
foreach $curforum (@forumlist) {
($forumid, $category, $categoryplace, $forumname, $forumdescription, $forummoderator ,$htmlstate ,$idmbcodestate ,$privateforum, $startnewthreads ,$lastposter ,$lastposttime, $threads, $posts, $forumgraphic, $pollstate) = split(/\|/,$curforum);
if ($forumid ne $forum && $forum ne "all") { next; }
if ($privateforum eq "yes" && $allowedentry{$forumid} ne "yes") { next; }
if ($privateforum eq "noguest" && $inmembername eq "Guest") { next; }
opendir(DIR,"$ikondir"."forum$forumid");
@files=readdir(DIR);
closedir(DIR);
@files=grep(/.thd/,@files);
@files=grep(s/.thd//,@files);
foreach $curtopic (@files) {
open(FILE,"<$ikondir"."forum$forumid/$curtopic.thd");
@messages=<FILE>;
close(FILE);
$postnumber=0;
$found=0;
foreach $curmsg (@messages) {
($membername, $topictitle, $postipaddress, $showemoticons, $showsignature, $postdate, $post) = split(/\|/,$curmsg);
if ($startdate <= $postdate && $enddate >= $postdate) {
chomp($post);
($ip1,$ip2,$ip3,$ip4)=split(/\./,$postipaddress);
if (($test1 eq "*" || $test1 eq $ip1) && ($test2 eq "*" || $test2 eq $ip2) && ($test3 eq "*" || $test3 eq $ip3) && ($test4 eq "*" || $test4 eq $ip4)) {
open(FILE,"<$ikondir"."forum$forumid/$curtopic.pl");
$buffer = <FILE>;
chomp($buffer);
close(FILE);
($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate, $sticky) = split(/\|/,$buffer);
$results.="$forumid|$topicid|$topictitle|$topicdescription|$startedby|$startedpostdate|$lastposter|$lastpostdate|$postnumber|$post|$membername|$postipaddress|$postdate\n";
$found=1;
}
$postnumber++;
if ($found && $onlyonce3 eq "yes") { last; }
}
}
}
}
print RESULT ($results);
close(RESULT);
&output(
-Title => "$boardname - Поиск на форуме",
-ToPrint => $output,
-Version => $versionnumber
);
}
в строке 552-553:
foreach $entry (@entries[$startarray..$endarray]) {
($forumid,$topicid,$topictitle,$topicdescription,$startedby,$startedpostdate,$lastposter,$lastpostdate,$postnumber,$post,$membername,$postdate)=split(/\|/,$entry);
исправляете:
&moderator;
foreach $entry (@entries[$startarray..$endarray]) {
($forumid,$topicid,$topictitle,$topicdescription,$startedby,$startedpostdate,$lastposter,$lastpostdate,$postnumber,$post,$membername,$ipad,$postdate)=split(/\|/,$entry);
и в конце, строка 611-612:
<font face="$font" color=$fontcolormisc size=1><a href="$profileprog?action=show&member=$profilename3"><b>$membername</b></a></font><br>
<font face="$font" color=$fontcolormisc size=1>$postdatemsg</font>
изменяете:
<font face="$font" color=$fontcolormisc size=1><a href="$profileprog?action=show&member=$profilename3"><b>$membername</b></a><br>~;
if ($membercode eq "ad" || $inmembmod eq "yes") {$output.= qq~IP: $ipad~;}
$output.= qq~<br>$postdatemsg</font>
сохраняете файл и пробуете, должно работать.
Поиск будет доступен только Модераторам и Администраторам форума. |