PageViewCountプラグイン
ページのアクセスをカウントします。
- 連続した同じIPアドレスはカウントしません。
- データベースを使うので、ファイルを作成しません。
- データベースの設定は、ユーザー認証のMySQLの設定を使うので、設定済みであれば設定不要。
- inc/pageviewcount.phpを新規に作成する
<?php global $ID; $pvc_server=$conf['auth']['mysql']['server']; $pvc_user=$conf['auth']['mysql']['user']; $pvc_password=$conf['auth']['mysql']['password']; $pvc_database=$conf['auth']['mysql']['database']; $pvc_table="pageview"; $pvc_ip = $_SERVER['REMOTE_ADDR']; $con = @mysql_connect ($pvc_server, $pvc_user, $pvc_password); if ($con) { $res=mysql_select_db($pvc_database, $con); if ($res) { $query = "SELECT views,ip FROM $pvc_table WHERE id = '$ID'"; $res = @mysql_query($query, $con); $row = @mysql_fetch_object($res); $views = intval($row->views); if (@mysql_num_rows($res) == 0) { $query = "INSERT INTO $pvc_table VALUES ('$ID','1', '$pvc_ip')"; $res2 = @mysql_query($query, $con); $views = 1; } else { if ($pvc_ip != $row->ip) { $views++; $query = "UPDATE $pvc_table SET ip='$pvc_ip', views='$views' WHERE id = '$ID'"; $res2 = @mysql_query($query, $con); } } $fn .= " ($views views)"; } }
- inc/template.phpを編集
“function tpl_pageinfo”を検索し、下記のようにinclude行を挿入する。function tpl_pageinfo(){ global $conf; global $lang; global $INFO; global $REV; // prepare date and path $fn = $INFO['filepath']; if(!$conf['fullpath']){ if($REV){ $fn = str_replace(realpath($conf['olddir']).DIRECTORY_SEPARATOR,'',$fn); }else{ $fn = str_replace(realpath($conf['datadir']).DIRECTORY_SEPARATOR,'',$fn); } } $fn = utf8_decodeFN($fn); $date = date($conf['dformat'],$INFO['lastmod']); include('pageviewcount.php');