<?php
include("header.php");
//$xoopsOption['show_rblock'] =0;
//include(XOOPS_ROOT_PATH."/header.php");
//OpenTable();
//include_once(XOOPS_ROOT_PATH."/class/xoopsformloader.php");

require 'pl/cfg.php';
require 'pl/temp.php';

##目次##
#(1)リンクジャンプ処理(link)
#(1.1)アクセスジャンプ処理(r_link)
#(2)キーワードランキング表示画面(PR_keyrank)
#(3)アクセス(IN)ランキング表示画面(PR_rev)
#(4)人気(OUT)ランキング表示画面(PR_rank)

if(!$_GET[page]){$_GET[page]=1;}

#(1)リンクジャンプ処理(link)
if($_GET[mode] == "link"){
	$_GET[id]=preg_replace("/\D/", "", $_GET[id]);
	if($_GET[id]){
		#refererチェック
		if(!$_SERVER['HTTP_REFERER']){$fl=1;} #refererが無いときにカウントしない場合にはこの行を削除
		$ref_list=explode(",",$EST[rank_ref]);
		if(!$EST[rank_ref]){$fl=1;}
		else{
			foreach($ref_list as $tmp){
				if(strstr($_SERVER['HTTP_REFERER'],$tmp)){$fl=1;}
			}
		}
		if($fl){
			$time=time();
			$query="SELECT id FROM $EST[sqltb]rank WHERE id='$_GET[id]' AND ip='$_SERVER[REMOTE_ADDR]' AND time > ".($time-$EST[rank_time]*3600);
			$result=$xoopsDB->query($query) or die("Query failed rank32 $query");
			$tmp = mysql_fetch_row($result);
			if(!$tmp) {
				$query="INSERT INTO $EST[sqltb]rank (id,time,ip) VALUES ('$_GET[id]', '$time' ,'$_SERVER[REMOTE_ADDR]');";
				$result=$xoopsDB->queryF($query) or die("Query failed rank36 $query");
			}
			//mysql_close($link);
		}
	}
	if($_GET[url]){location($_GET[url]);}
}

#(1.1)アクセスジャンプ処理(&r_link)
elseif($_GET[mode] == "r_link"){
	if($EST[rev_fl]){
		$_GET[id]=preg_replace("/\D/", "", $_GET[id]);
		if($_GET[id]){
			$query="SELECT id FROM $EST[sqltb]log WHERE id='$_GET[id]'";
			$result=$xoopsDB->query($query) or die("Query failed rank54 $query");
			$tmp = mysql_fetch_row($result);
			if ($tmp) { //IDが存在する場合のみ処理する
				$time=time();
				$_GET[id]=str_replace("\n", "", $_GET[id]);
				$query="SELECT id FROM $EST[sqltb]rev WHERE id='$_GET[id]' AND ip='$_SERVER[REMOTE_ADDR]' AND time > ".($time-$EST[rank_time]*3600);
				$result=$xoopsDB->query($query) or die("Query failed rank54 $query");
				$tmp = mysql_fetch_row($result);
				if(!$tmp) {
					$query="INSERT INTO $EST[sqltb]rev (id,time,ip) VALUES ('$_GET[id]', '$time' ,'$_SERVER[REMOTE_ADDR]')";
					$result=$xoopsDB->queryF($query) or die("Query failed rank58 $query");
				}
				//mysql_close($link);
			}
		}
	}
	//$EST[location]=0; #refreshジャンプにする
	location($EST[rev_url]);
}

#(2)キーワードランキング表示画面(&PR_keyrank)
elseif($_GET[mode] == "keyrank"){
	require "$EST[temp_path]keyrank.html";
	exit;
}

#(3)アクセス(IN)ランキング表示画面(&PR_rev)
elseif($_GET[mode] == "rev" || $_GET[mode] == "rev_bf" || $_GET[mode] == "rev_rui"){
	if(!$EST[rev_fl]){mes("アクセスランキングは実施しない設定になっています","エラー","java");}
	require "$EST[temp_path]rev_rank.html";
}

#(4)人気ランキング表示画面
if(!$EST[rank_fl]){mes("人気ランキングは実施しない設定になっています","エラー","java");}
if(!$_GET[mode]){$_GET[mode]="rank";}
require "$EST[temp_path]rank.html";
exit;

#(t1)メッセージ画面出力(mes)
#書式:mes($arg1,$arg2,$arg3);
#機能:メッセージ画面を出力する
#引数:$arg1=>表示するメッセージ
#     $arg2=>ページのタイトル(省略時は「メッセージ画面」)
#     $arg3=>・JavaScriptによる「戻る」ボタン表示=java
#            ・$ENV{'HTTP_REFERER'}を使う場合=env
#            ・管理室へのボタン=kanri
#            ・通常のURL又はパスを指定する場合にはそのURL又はパスを記入
#            ・省略時は非表示
#戻り値:なし
function mes($MES,$TITLE,$arg3){
	global $EST;
	global $xoopsOption,$xoopsConfig,$xoopsLogger,$xoopsTpl;
	global $x_ver,$ver;
	if(!$TITLE){$TITLE="メッセージ画面";}
	if($arg3 == "java"){
		$BACK_URL='<form><input type=button value="&nbsp;&nbsp;&nbsp;&nbsp;戻る&nbsp;&nbsp;&nbsp;&nbsp;" onClick="history.back()"></form>';
	}
	elseif($arg3 == "env"){
		$BACK_URL="【<a href=\"$_SERVER[HTTP_REFERER]\">戻る</a>】";
	}
	elseif(!$arg3){$BACK_URL="";}
	else{$BACK_URL="【<a href=\"$arg3\">戻る</a>】";}
	require "$EST[temp_path]mes.html";
	exit;
}

?>