PageViewCountプラグイン

ページのアクセスをカウントします。

  • 連続した同じIPアドレスはカウントしません。
  • データベースを使うので、ファイルを作成しません。
  • データベースの設定は、ユーザー認証のMySQLの設定を使うので、設定済みであれば設定不要。
  • データベースにテーブルを作成しておく。<code mysql>

CREATE TABLE pageview ( id varchar(255) NOT NULL DEFAULT '', views int(15) unsigned NOT NULL DEFAULT '0', ip varchar(15) DEFAULT NULL, PRIMARY KEY (id) ) </code>

  • inc/pageviewcount.phpを新規に作成する<code 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)";

} } </code>

  • inc/template.phpを編集
    “function tpl_pageinfo”を検索し、下記のようにinclude行を挿入する。<code php>

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'); </code>