⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 topic.cgi

📁 绿叶网络小学校园网-完全适合小学的网站
💻 CGI
📖 第 1 页 / 共 2 页
字号:
#!/usr/bin/perl

#############################################################
# Ikonboard v2.1
# Copyright 2000 Ikondiscussion.com - All Rights Reserved
# Ikondiscussion is a trademark of Ikondiscussion.com
#
# Software Distributed by: Ikondiscussion.com
# Visit us online at http://www.ikondiscussion.com
# Email us on boards@ikondiscussion.com
#
# All files written by Matthew Mecham
#############################################################

#use CGI::Carp "fatalsToBrowser";
use CGI qw(:standard);
$CGI::POST_MAX=1024 * 150;
$CGI::DISABLE_UPLOADS = 1;

eval {
($0 =~ m,(.*)/[^/]+,)   && unshift (@INC, "$1");
($0 =~ m,(.*)\\[^\\]+,) && unshift (@INC, "$1");
require "data/progs.cgi";
require "data/boardinfo.cgi";
require "data/styles.cgi";
require "data/membertitles.cgi";
require "ikon.lib";
};
if ($@) {
    print header(-charset=>"gb2312"); print start_html(-title=>"ib2000 出错!");
    print "不能够找到文件:$@\n如果您使用的是 Windows 类操作系统,请在每一个程序中更改 require 的设置,填入绝对路径!";
    print end_html; exit;
    }

$|++;

#################--- Begin the program ---###################

$thisprog = "topic.cgi";

$query = new CGI;
$cookiepath     = $query->url(-absolute=>1);
$cookiepath     =~ s/$thisprog//sg;
$inforum        = $query -> param('forum');
$inforum        = &stripMETA("$inforum");
$intopic        = $query -> param('topic');
$intopic        = &stripMETA("$intopic");
$instart        = $query -> param('start');
$instart        = &stripMETA("$instart");
$jumpto         = $query -> param('jumpto');
$jumpto         = &stripMETA("$jumpto");

$inmembername   = cookie("amembernamecookie");
$inpassword     = cookie("apasswordcookie");



&forumjump;
if ($jumpto) {
    print redirect(-location=>"$jumpto"); exit;
    }
if (!$inmembername) {
    $inmembername = "客人";
    }
    else {
        &getmember("$inmembername");
        $membercodetemp = $membercode;
        if (($allowedentry{$inforum} eq "yes")||(($membercode eq "ad"))) { $allowed = "yes"; }
            else { $allowed  = "no"; }
        &getmemberstime("$inmembername");
        &getlastvisit;
        $forumlastvisit = $lastvisitinfo{$inforum};
        $currenttime = time;
        &setlastvisit("$inforum,$currenttime");
        }

    print header(-cookie=>[$tempvisitcookie, $permvisitcookie], -charset=>"gb2312");

    &getforum($inforum);

    if ($forumgraphic) { $forumgraphic = qq~<a href="$forumsprog?forum=$inforum"><img src="$imagesurl/images/$forumgraphic" border=0></a>~; }
        else { $forumgraphic = qq~<a href="$boardurl/$forumsummaryprog"><img src="$imagesurl/images/$boardlogo" border=0></a>~; }

    $filetoopen = "$ikondir" . "forum$inforum/list.cgi";
    $filetoopen = &stripMETA($filetoopen);
    if (-e $filetoopen) {
        open(FILE, "$filetoopen") or &error("打开文件&论坛的 $inforum/list.cgi 文件没有找到,请联系管理员修复!");
        flock (FILE, 2) if ($OS_USED eq "Unix");
        @allthreads = <FILE>;
        close(FILE);
    
        $totalthreadcount = @allthreads;
        $count = 0;
        open(FILE, ">$filetoopen");
        flock(FILE, 2) if ($OS_USED eq "Unix");
        foreach $line (@allthreads) { #start foreach @threads
            ($tempno, $trash) = split(/\|/, $line);
            chomp $line;
            push (@numbercounter, $tempno);
            if ($intopic eq $tempno) {
                ($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate, $posticon) = split(/\|/,$line);
                $threadviews++; $keepcounter = $count;
                $linetokeep = "$topicid|$topictitle|$topicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$lastpostdate|$posticon|";
                chomp $linetokeep;
                print FILE "$linetokeep\n";
                }
                else { print FILE "$line\n"; }
            $count++;
            }
        close(FILE);
        my $file = "$ikondir" . "forum$inforum/$intopic.pl";
        open(MSG, ">$file") or &error("打开主题&这个主题不存在!");
        flock(MSG, 2) if ($OS_USED eq "Unix");
        print MSG $linetokeep;
        close(MSG);
        }    
            
    $totalthreadcount = @numbercounter; $totalthreadcount--;

    if ($intopic eq $numbercounter[0]) { undef $nextlink; }
        else {
            $nexttopic = $keepcounter - 1;
            $threadnext = $numbercounter[$nexttopic];
            $nextlink = qq~&nbsp;&nbsp;<a href="$threadprog?forum=$inforum&topic=$threadnext"><img src="$imagesurl/images/nextthread.gif" border=0 alt="浏览下一篇主题" width=48 height=12></a>~;
            }
        
    if ($intopic eq $numbercounter[$totalthreadcount]) { undef $backlink; }
        else {
            $backtopic = $keepcounter + 1;
            $threadback = $numbercounter[$backtopic];
            $backlink = qq~<a href="$threadprog?forum=$inforum&topic=$threadback"><img src="$imagesurl/images/prethread.gif" border=0 alt="浏览上一篇主题" width=48 height=12></a>~;
            }
    
    $nexttopiclinks = "";
    $nexttopiclinks .= "$backlink" if $backlink;
    $nexttopiclinks .= qq~&nbsp;&nbsp;&nbsp;<a href="javascript:this.location.reload()"><img src="$imagesurl/images/refresh.gif" border=0 alt="刷新本主题" width=38 height=12></a>~;
    $nexttopiclinks .= "$nextlink" if $nextlink;
        
    &postings;
    &whosonline("$inmembername|<a href=\"$forumsprog?forum=$inforum\"><b>$forumname</b></a>|none|浏览<a href=\"$threadprog?forum=$inforum&topic=$intopic\"><b>$topictitle</b></a>|") if ($privateforum ne "yes");
    &whosonline("$inmembername|<a href=\"$forumsprog?forum=$inforum\"><b>$forumname</b></a>(密)|none|浏览保密贴子|") if ($privateforum eq "yes");
    &moderator;
    &title;

    $maxthreads = $maxtopics;

    $filetoopen = "$ikondir" . "forum$inforum/$intopic.thd";
    $filetoopen = &stripMETA($filetoopen);
        if (-e $filetoopen) {
        open(FILE, "$filetoopen") or &error("打开主题&这个主题不存在!");
        @threads = <FILE>;
        close(FILE);
        }
	else { unlink ("$ikondir" . "forum$inforum/$intopic.pl"); &error("打开主题&这个主题不存在!可能已经被删除!"); }
	
if (($sticky eq "on")) {
@threads = reverse(@threads);
$threadslast=pop(@threads);
unshift(@threads,$threadslast);
}
else { undef $sticky; }

    ($trash, $topictitle) = split(/\|/,$threads[0]);

    $numberofitems = @threads;
    $numberofpages = $numberofitems / $maxthreads;

    if ($numberofitems > $maxthreads) {
        $showmore = "yes";
        if ((!$instart) or ($instart < 0)) { $instart = 0; }
        if ($instart > 0) { $startarray = $instart; } else { $startarray = 0; }
        $endarray = $instart + $maxthreads - 1;
        if ($endarray < ($numberofitems - 1)) { $more = "yes"; }
        if (($endarray > ($maxthreads - 1)) and ($more ne "yes")) { $endarray = $numberofitems - 1; }
        }
        else {
             $showmore = "no";
             $startarray = 0;
             $pages = qq~<font face="$font" color=$menufontcolor>该主题只有一页</font>~;
             $endarray = $numberofitems - 1;
             }

     if ($showmore eq "yes") {
     if ($maxthreads < $numberofitems) {
        ($integer,$decimal) = split(/\./,$numberofpages);
        if ($decimal > 0) { $numberofpages = $integer + 1; }
            $pagestart = 0; $counter = 0;
            while ($numberofpages > $counter) {
                $counter++;
                if ($instart ne $pagestart) { $pages .= qq~<a href="$thisprog?forum=$inforum&topic=$intopic&start=$pagestart"><font face="$font" color=$menufontcolor><b>$counter</b></font></a> ~; }
                else { $pages .= qq~<font face="$font" color=$fonthighlight><b>$counter</b></font> ~; }
            $pagestart = $pagestart + $maxthreads;
            }
        }
     $pages = qq~<font face="$font" color=$menufontcolor><b>该主题含有多页</b> [ $pages ]~;
     } 

    if (("$privateforum" eq "yes" && "$allowed" ne "yes")) { &error("进入私有论坛&对不起,您没有权限进入该私有论坛!"); }
    $printpageicon = qq~<img src="$imagesurl/images/printpage.gif" border=0 width=16 height=16 alt="显示可打印的版本">&nbsp;<a href="$printpageprog?forum=$inforum&topic=$intopic">显示可打印的版本</a>~;
    $bookmarkpage  = qq~<IMG SRC="$imagesurl/images/fav_add.gif" BORDER="0" width=15 height=15 alt="把本贴加入收藏夹">&nbsp;<span style="CURSOR: hand" onClick="window.external.AddFavorite('$boardurl/topic.cgi?forum=$inforum&topic=$topicid', ' $boardname - $topictitle')">把本贴加入收藏夹</span>~;
    if ($privateforum ne "yes") { $sendtofriendicon = qq~<img src="$imagesurl/images/emailtofriend.gif" border=0 width=16 height=16 alt="发送本页面给朋友">&nbsp;<a href="$ikonfriendprog?forum=$inforum&topic=$intopic">发送本页面给朋友</a>~;}
        
        if ($badwords) {
            @pairs = split(/\&/,$badwords);
            foreach (@pairs) {
                ($bad, $good) = split(/=/,$_);
                chop $good;
                $topictitle =~ s/$bad/$good/isg;
                }
            }
        
$topictitletemp =$topictitle;
$topictitletemp =~s/ \(无内容\)$//;
if (length($topictitletemp)>34) {
	$topictitletemp1 = substr($topictitletemp,0,30) . " ...";
}
else { $topictitletemp1=$topictitletemp; }

#------- HTML

        $output .= qq~
        <!-- Cgi-bot Start top of topic page -->
        <table cellpadding=0 cellspacing=0 border=0 width=$tablewidth align=center>
            <tr><td width=30% rowspan=2 valign=top>$forumgraphic</td>
                    <td valign=middle align=top><font face="$font" color=$fontcolormisc>
                        <font face="$font" color=$fontcolormisc>
	                    &nbsp;&nbsp;<img src="$imagesurl/images/closedfold.gif" border=0>&nbsp;&nbsp;<a href="$forumsummaryprog">$boardname</a>
	                    <br>
                        &nbsp;&nbsp;<img src="$imagesurl/images/bar.gif" border=0 width=15 height=15><img src="$imagesurl/images/closedfold.gif" border=0>&nbsp;&nbsp;<a href="$forumsprog?forum=$inforum">$forumname</a>
                        <br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="$imagesurl/images/bar.gif" border=0 width=15 height=15><img src="$imagesurl/images/openfold.gif" border=0>&nbsp;&nbsp;$topictitletemp1
                    </td>
                $uservisitdata
                </tr>
        </table>
        <br>

        <table cellpadding=1 cellspacing=0 border=0 width=$tablewidth align=center>
        <!-- Cgi-Bot Announcements from $dateposted -->
        <tr>
            <td align=center width=2 valign=middle>
            </td>
            <td valign=bottom align=left width=160>
              $printpageicon
            </td>
            <td valign=bottom align=left width=160>
              $bookmarkpage
            </td>
            <td valign=bottom align=left width=160>
              $sendtofriendicon
            </td>
            <td align=center valign=bottom>
            </td>
            <td align=right valign=bottom width=165>
                <font face="$font" color=$forumfontcolor>
	        $nexttopiclinks
                </font>
            </td>
            <td align=center width=2 valign=middle>
            </td>
         </tr>
        </table>

            <table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center>
            <tr><td height=1>
		</td>
            </tr>
            </table>
            
            <table cellpadding=0 cellspacing=0 border=0 width=$tablewidth align=center>
              <tr>
                <td bgcolor=$tablebordercolor valign=middle width=1 height=24>
		</td>
                <td bgcolor=$titlecolor colspan=2 align="left" valign="middle" width=*>
                  <table cellpadding=0 cellspacing=1 border=0 width=100%>
                    <tr>
                      <td bgcolor=$titlecolor align="left" valign="middle">
                      &nbsp;<b>* 贴子主题</B>: $topictitletemp&nbsp;&nbsp;&nbsp;$replybutton
                     </td>
                      <td bgcolor=$titlecolor align="right" valign="middle">
                       <b>版主</b>: $modoutput&nbsp;
                     </td>
                   </tr>
                 </table>         
              </td>
                <td bgcolor=$tablebordercolor valign=middle width=1 height=24>
		</td>
            </tr>
            </table>

            <table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center>
            <tr><td height=1>
		</td>
            </tr>
            </table>

         <!-- Cgi-bot End top of topic page -->
         ~;

#------- END HTML

    $editpostnumber = $startarray; $editpostnumber++; $postcountnumber = 0;

   #### open onlinedata file
   $filetoopen = "$ikondir" . "data/onlinedata.dat";
   open(FILE, "$filetoopen" );
   @onlineusers = <FILE>;
   close(FILE);
    
    foreach (@threads[$startarray .. $endarray]) {

        ($membername, $topictitle, $postipaddress, $showemoticons, $showsignature, $postdate, $post, $posticon) = split(/\|/,$_);

       #### check if user is online
       foreach $user (@onlineusers) {
           @userdetail = split (/\|/, $user);
           chomp @userdetail;
           if ($userdetail[0] eq $membername) {$online = qq~<IMG SRC="$imagesurl/images/online1.gif" width=15 height=15 border=0 alt="该用户目前在线">~; last; }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -