| 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>
сохраняете файл и пробуете, должно работать. Поиск будет доступен только Модераторам и Администраторам форума. |