#!/usr/bin/perl
use CGI;
use HTML::Template;
$tmplfile = "index0.html";
$tpl = HTML::Template->new( filename => $tmplfile,
loop_context_vars =>1,
die_on_bad_params=>0);
$cgi=new CGI;
$pagecount=$cgi->param('text');
$page=$cgi->param('page');
$offset=$cgi->param('offset');
$set=$cgi->param('set');
$searchtext=$cgi->param('searchtext');
$class=$cgi->param('class');
$typ=$cgi->param('typ');
$search_typ=$cgi->param('search_typ');
$cpage=$cgi->param('cpage');
$submitgo=$cgi->param('submitgo');
$mode=$cgi->param('mode');
$typ=$cgi->param('typ');
$cat=$typ;
$da=time()+1036800;
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime($da);
$year2=$year+1900;
$mon2=$mon+1;
$mday2=$mday;
$searchtext=~ s/^\s+//;
$searchtext=~ s/\s+$//;
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
$year=$year+1900;
$month=$mon+1;
$day=$mday;
$month=sprintf("%02d",$month);
$day=sprintf("%02d",$day);
$showday=60;
$showday=600 if($searchtext);
open (data,"data.txt");
@datas=;
close(data);
$total=@datas;
$typ = "最新消息";
if($typ ne ""){
for ($k=$total-1;$k>-1;$k--){
$row=@datas[$k];
@fields=split(/\|/,$row);
if($row=~ m/$searchtext/i&&@fields[0] eq $typ) {
$row=@datas[$k];
$y=substr(@fields[3],0,4);
$m=substr(@fields[3],4,2);
$d=substr(@fields[3],6,2);
$newday=$year*12*30+$month*30+$day-($y*12*30+$m*30+$d);
#next if($newday>$showday);
push(@new,$row);
push (@no,$k);
}
}
}
else {
for ($k=$total-1;$k>-1;$k--){
$row=@datas[$k];
@fields=split(/\|/,$row);
if($row=~ m/$searchtext/i) {
$row=@datas[$k];
$y=substr(@fields[3],0,4);
$m=substr(@fields[3],4,2);
$d=substr(@fields[3],6,2);
$newday=$year*12*30+$month*30+$day-($y*12*30+$m*30+$d);
next if($newday>$showday);
push(@new,$row);
push (@no,$k);
}else{
push(@new,$row);
push (@no,$k);
}
}
}
$total2=@new;
if ($page eq "") {
$page=1;
}
$pagecount=10;
$pk=5;
$offset=($page-1)*$pagecount;
if ($offset eq "") {
$offset=0;
}
if ($submitgo eq "go")
{
if ($cpage<=0)
{$cpage=1;}
$offset=($cpage-1)*$pagecount;
$set=int($cpage/$pk);
}
$nr=$total2;
$pages=int($nr/$pagecount)+1; #$pages变量现在包含所需的页数
if ($nr%$pagecount==0) {
$pages=int($nr/$pagecount); }
$kk=int(($pages)/$pk);
if ($pages%$pk==0){
$kk=int($pages/$pk)-1;
}
if ($set eq "")
{
$set=0;
}
$show=$offset+$pagecount;
if($show>$nr)
{
$show=$nr;}
$from=$offset+1;
$currpage=$offset/$pagecount+1;
if ($pages==0){
$currpage=0;
$from=0;
}
@fields=('cat','title','author','form_data','content');
@tpltitle = ();
for ($j=$offset;$j<($offset+$pagecount);$j++){
if ($nr>$j){
$row2=@new[$j];
@field=split(/\|/,$row2);
for($i=0;$i<@field;$i++){
$fff=@fields[$i];
$$fff=$field[$i];
}
my %temp = ();
$temp{lineno} = @no[$j];
$temp{title} = $title;
push(@tpltitle,\%temp);
}
}
$tpl->param(news_loop=>\@tpltitle);
my $hd = *STDOUT;
print $hd "Content-type: text/html\n\n";
$tpl->output(print_to=>$hd);
sub selectindex {
local($select_name,$selected)=@_;
open(SE,"$select_name.txt");
@sel=;
close(SE);
undef $result;
foreach $info (@sel) {
chop($info);
if($info eq $selected)
{
$result.="\n";}
else
{
$result.="\n";}
}
return $result;
}
sub showcat {
local($txt)=@_;
open(SE,"$txt");
@sel=;
close(SE);
my $j=8;
$result="";
for($i=0;$i<@sel;$i=$i+$j){
$result.="";
for($jj=0;$jj<$j;$jj++)
{
chop(@sel[$i+$jj]);
$result.="@sel[$i+$jj] | ";
}
$result.="
";
}
$result.="
";
return $result;
}