通常、yomi-searchで【人気ランキングを初期化】 を実行すると、人気ランキングのみ初期化され、累計人気ランキング、アクセスランキング、累計アクセスランキングは初期化されません。
それを初期化できるようにします。
管理室から初期化するランキングを選び、希望のランキングだけ初期化することも可能です。



  • この改造はログファイルを直接書き換えます。改造を失敗した場合、最悪、データの破損もありえますので、ログファイル(log/ys4.cgi)のバックアップを必ずとってから作業してください。
    この改造による損害、被害等の責任は一切負いません。

 

 

使用ファイル

  • pl/temp.cgi
  • template/admin/rank_cfg.html

カスタマイズ

template/admin/rank_cfg.html

  • 106行目

    <ol>
    <font size=”+1″>【人気ランキングを初期化】</font>
    	<br><br><input type=submit value=”初期化する”>
    	[<input type=checkbox name=rank_format value=1>確認チェック] 
    </ol>
    

    を、全て削除し、下に変更

    <ol>
    <font size=”+1″>【ランキングの初期化】</font>
    	<br>※初期化するランキングにチェックをいれてください<br><br>
    	<input type=checkbox name=rank_format_rank value=rank>最新人気ランキング 
    	<input type=checkbox name=rank_format_rui_rank value=rui_rank>累計人気ランキング<br>
    	<input type=checkbox name=rank_format_r_rank value=r_rank>最新アクセスランキング 
    	<input type=checkbox name=rank_format_r_rui_rank value=r_rui_rank>累計アクセスランキング 
    	<br><br><input type=submit value="初期化する">
    	[<input type=checkbox name=rank_format value=1>確認チェック]
    </ol> 
    

pl/temp.cgi

  • 1823行あたり
    #$EST{log_path}$EST{logfile}を更新
    local(@log_lines,$line,@Slog);
    open(IN,"$EST{log_path}$EST{logfile}");
    	while($line=<IN>){
    		@Slog=split(/<>/,$line);
    		@pt=split(/_/,$Slog[13]);
    			$pt[0]=0;
    			$Slog[13]=join("_",@pt);
    

    この中の7行目を次に変更

    if($FORM{rank_format_rank}){$pt[0]=0;}
    if($FORM{rank_format_rui_rank}){$pt[1]=0;}
    if($FORM{rank_format_r_rank}){$pt[2]=0;}
    if($FORM{rank_format_r_rui_rank}){$pt[3]=0;} 
    

    修正後はこうなります

    #$EST{log_path}$EST{logfile}を更新
    local(@log_lines,$line,@Slog);
    open(IN,"$EST{log_path}$EST{logfile}");
    	while($line=<IN>){
    		@Slog=split(/<>/,$line);
    		@pt=split(/_/,$Slog[13]);
    			#修正箇所ここから
    			if($FORM{rank_format_rank}){$pt[0]=0;}
    			if($FORM{rank_format_rui_rank}){$pt[1]=0;}
    			if($FORM{rank_format_r_rank}){$pt[2]=0;}
    			if($FORM{rank_format_r_rui_rank}){$pt[3]=0;}
    			#修正箇所ここまで
    			$Slog[13]=join("_",@pt);
    
    

となります。

以上で完了です。

管理室の【人気ランキングの設定】→【人気ランキングを初期化】から利用できます。
初期化後は管理室から【ログファイルの更新処理】を行ってください。

重ねていいますが、必ずログデータのバックアップをとってから実行してください。

 

注意

  • 累計人気ランキングなど【ログファイルの更新処理】で更新できないものは、即時反映されません。それぞれのランキングの次回更新時までお待ちください。
    初期化されたかすぐ確認したい時は、ログファイル(log/ys4.cgi)を開き、各データの<>で区切られた14番目のところ(バナーURLの隣です)が「<>0_0_0_0<>」となどとなっていれば成功です。
    ちなみに最新人気ランキング数、累計人気ランキング数、最新アクセスランキング数、累計アクセスランキング数の順になります。チェックしたものだけが初期化されているか確認をしてください。