PageViewCountプラグイン

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

  • 連続した同じIPアドレスはカウントしません。
  • データベースを使うので、ファイルを作成しません。
  • データベースの設定は、ユーザー認証のMySQLの設定を使うので、設定済みであれば設定不要。
  1. データベースにテーブルを作成しておく。
    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`)
    )
  2. 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)";
      }
    }
  3. 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');