sub print_rank{ #$FORM{xx}→$LC_xxに変換 local( $LC_kt=$_[0], #$FORM{kt} $LC_mode=$_[1], #$FORM{mode} $LC_page=$_[2], #$FORM{page} $Stitle, #タイトル ); if($LC_mode eq "rank"){$Stitle="人気ランキング";} elsif($LC_mode eq "rank_bf"){$Stitle="前回の人気ランキング";} else{$Stitle="人気ランキング(累計)";} if($LC_kt){$Stitle.=" - " . $ganes{$LC_kt};} local($Eref=$ENV{HTTP_REFERER}); $Eref=&url_en($Eref); print<<""; $EST{search_name} - $Stitle ホーム > $Stitle
if($LC_kt){print "■カテゴリ:$ganes{$LC_kt} > ";} if($LC_mode eq "rank"){print "■前回のランキング
累計のランキング
";} elsif($LC_mode eq "rank_bf"){print "■現在のランキング
累計のランキング
";} else{print "■現在のランキング
前回のランキング
";} print<<"";
#ヘッダスペース &head_sp_i; print<<"";

local($str_no,$end_no,$i=1,$rank_z=1,$rank=1,@Slog); @log_lines=(); $Clog=0; $bf_pt=0; $pre_pt=""; $pre_rank=$pre_rank_z=""; $pre_pt_fl=1; $end_no=$LC_page*$EST{hyouji}; $str_no=$end_no-$EST{hyouji}+1; if($LC_mode eq "rank"){open(IN,"$EST{log_path}rank_ys.cgi");} elsif($LC_mode eq "rank_bf"){open(IN,"$EST{log_path}rank_ys_bf.cgi");} else{ open(IN,"$EST{log_path}rank_rui.cgi"); $last_time=; $last_time=~s/\n//g; if(time() - $last_time>3600*$EST{rank_time}){&make_rank_rui;} } while(){ @Slog=split(/<>/,$_); local(@pt,$kt_fl=0,$kt,$pt); @pt=split(/_/,$Slog[13]); if($LC_mode eq "rank_rui"){$pt=$pt[1];}else{$pt=$pt[0];} if(!$LC_kt){$kt_fl=1;} #カテゴリ指定なし else{ local(@kt); @kt=split(/&/,$Slog[10]); foreach $kt(@kt){ if($kt eq $LC_kt){$kt_fl=1; last;} } } if($kt_fl){ if($pt ne $bf_pt){$rank=$rank_z;} if($str_no<=$i && $i<=$end_no){ if($pre_pt_fl){$pre_pt=$bf_pt; $pre_rank=$rank; $pre_rank_z=$rank_z; $pre_pt_fl=0;} push(@log_lines,$_); } $i++;$Clog++; $rank_z++; $bf_pt=$pt; } } close(IN); if($Clog){ ##ページ説明を表示 &gane_guide; print $KTEX{$LC_mode}; undef(%KTEX); {local($sec,$min,$hour,$mday,$mon,$year,$wday); if($LC_mode eq "rank"){ ($sec,$min,$hour,$mday,$mon,$year,$wday)=localtime((stat("$EST{log_path}rank_ys.cgi"))[9]); } elsif($LC_mode eq "rank_bf"){ ($sec,$min,$hour,$mday,$mon,$year,$wday)=localtime((stat("$EST{log_path}rank_ys_bf.cgi"))[9]); } else{ ($sec,$min,$hour,$mday,$mon,$year,$wday)=localtime((stat("$EST{log_path}rank_rui.cgi"))[9]); } $mon++; $year+=1900; $youbi=('Sun','Mon','Tue','Wed','Thu','Fri','Sat')[$wday]; $last_mod=sprintf("%04d/%02d/%02d($youbi) %02d:%02d", $year,$mon,$mday,$hour,$min,); } print<<"";
最終更新:$last_mod
$PRmokuji=&mokuji_i($LC_page,$Clog,$EST{hyouji},"&mode=$LC_mode&kt=$LC_kt","$EST{cgi_path_url}$EST{rank}"); print<<"";
$PRmokuji if($LC_page eq "1"){$pre_rank=1;} $rank=$pre_rank; foreach $line(@log_lines){ @Slog=split(/<>/,$line); @pt=split(/_/,$Slog[13]); if($LC_mode eq "rank_rui"){$pt=$pt[1];}else{$pt=$pt[0];} if($pt ne $pre_pt){$rank=$pre_rank_z;} &PRlog; $pre_rank_z++; $pre_pt=$pt; } print<<"";
$PRmokuji } else{ if(!$LC_kt){print "
ランキング集計中

";} else{print "
このカテゴリのサイトはランクインしていません

";} } print<<"";
[ページTOPへ]

#&gane_st; #&PR_other_kt(); #フッタスペース &foot_sp_i; &cr; print<<""; } # ログ表示関数。 sub PRlog{ local($jump_url); if($EST{rank_fl}){ #$jump_url=$Slog[2]; #$jump_url=~s/(\W)/'%' . unpack('H2',$1)/eg; #$jump_url="$EST{cgi_path_url}$EST{rank}?mode=link&id=$Slog[0]&url=$jump_url"; $jump_url=$Slog[2]; #ランキング画面からもアクセスを集計する場合は上の行の先頭の「#」を取り除き、この行の先頭に「#」を追加する } if ($Slog[16] =~ /[^\s]/s) { $jump_url=$Slog[16]; } else{$jump_url=$Slog[2];} print<<"";
} 1;