FreeBSD/PHP-STATS

PHP-STATS

xoops asGroupwareにて日本語化が行われているPHP-STATS 1.9.1インストール。
ビジュアルはスマートでとってもいい感じです。さすがはイタリア製かな
こちらのサイトでもインストール方法を掲載してますよ。

  1. 環境
  2. インストール
  3. DB変更時のスクリプト変更点(PHP-STATS 1.9.1)
  4. 日本語化したページ一番下の文字が文字化け
  5. 昨日の訪問者数・昨日のヒット数を表示する。

環境

FreeBSD 5.4
PHP-4.40
PHP-STATS 1.9.1
MySQL-4.0.26

※注意:MySQLのバージョンが4.10以上だとXoopsと一緒で文字化けしてしまいます。
Xoopsと同じように、MySQLに渡す時に文字コードを指定すればいいはずですが、 該当場所が解明できませんでした。

インストール

■ソースをダウンロード
本家サイトが移動したようで、ここにあります。
http://www.phpstats.net/

日本語化パッチをダウンロード
下の2つの日本語化パッチをダウンロードし、本家サイトからダウンロードしたもの(解凍するとstatsフォルダ)に コピーして上書きする。
Php-Stats_0.1.9_j.zip (ver. 0.43)
Php-Stats_0191_jp_sabun.zip (ver. 0.1)

■config.phpの編集

$option['host']='MySQLサーバーのIPアドレスかサーバー名';
$option['database']='データベース名を記入'; 
$option['database']='ユーザー名を記入';
$option['user_db']='パスワードを記入';
$option['script_url']='Php-Statsの設置ディレクトリをフルパスで記入'; 
$option['script_url']='password'; // Password
$option['prefix']='php_stats';データベーステーブルの接頭語
$option['check_new_version']=0;本サイトに新しいバージョンをチェックしにいくかどうか
0はしないです。


■サイトにアップ
ftpなどで、statsフォルダごとアップします。
パーミッションは以下のように設定します。

777アップロードしたディレクトリ
option
666config.php
766admin.php、click.php、download.php、escludi.php、php-stats.php
php-stats.recjs.php、php-stats.recphp.php、tracking.php、view_stats.js.php


■オンラインでの設定
ラウザで,http:/設置先のURL/setup.php をアクセス。
後はウィザードに沿って進んでいけば、大体わかると思います。

DB変更時のスクリプト変更点(PHP-STATS 1.9.1)

このファイルのDBサーバの個所を書き換えます。

config.php:25:

$option['host']='DBサーバ';                     // Indirizzo server MySQL o IP

option/php-stats-options.php:6:

'host'=>'DBサーバ',

日本語化したページ一番下の文字が文字化け

このファイルをEUCに変換すると正常表示されます。

templates/default/admin.tpl

昨日の訪問者数・昨日のヒット数を表示する。

「カウンタを表示させるスクリプトの生成」という項目があり、
「オンラインユーザー数」「今日の訪問者数」「本日のヒット数」「合計訪問者数」「合計ヒット数」を
表示するコードについては簡単に生成できます。
これに「昨日の訪問者数」「昨日のヒット数」を表示できるようにしてみます。

◇/stats/view_stats.js.php 107行目あたり

case '4':
list($hits)=@mysql_fetch_row(sql_query("SELECT hits FROM $option[prefix]_counters LIMIT 1"));
$toshow=$hits+$option['starthits'];
break;
//昨日の訪問者数
case '5':
$tmp1=0;
$tmp2=0;
$data_oggi=date("Y-m-d",mktime(date("G")-$option['timezone'],date("i"),0,date("m"),date("d")-1,date("Y")));
$result=sql_query("SELECT visits FROM $option[prefix]_daily WHERE data='$data_oggi' LIMIT 1");
list($tmp1)=@mysql_fetch_row($result);
$result=sql_query("SELECT SUM(visits) FROM $option[prefix]_cache WHERE giorno='$data_oggi' LIMIT 1");
list($tmp2)=@mysql_fetch_row($result);
$toshow=$tmp1+$tmp2;
break;

◇続いて、以下のソースを挿入します。

//昨日のページビュー数
case '6':
$tmp1=0;
$tmp2=0;
$data_oggi=date("Y-m-d",mktime(date("G")-$option['timezone'],date("i"),0,date("m"),date("d")-1,date("Y")));
$result=sql_query("SELECT hits FROM $option[prefix]_daily WHERE data='$data_oggi' LIMIT 1");
list($tmp1)=@mysql_fetch_row($result);
$result=sql_query("SELECT SUM(hits) FROM $option[prefix]_cache WHERE giorno='$data_oggi' LIMIT 1");
list($tmp2)=@mysql_fetch_row($result);
$toshow=$tmp1+$tmp2;
break;

//--今月の訪問者数----
case '7':
$tmp1=0;
$tmp2=0;
$data_oggi=date("Y-m-",mktime(date("G")-$option['timezone'],date("i"),0,date("m"),date("d"),date("Y")));
$result=sql_query("SELECT SUM(visits) FROM $option[prefix]_daily WHERE data like '$data_oggi%' LIMIT 1");
list($tmp1)=@mysql_fetch_row($result);
$result=sql_query("SELECT SUM(visits) FROM $option[prefix]_cache WHERE giorno like '$data_oggi%' LIMIT 1");
list($tmp2)=@mysql_fetch_row($result);
$toshow=$tmp1+$tmp2;
break;
//--------------------

//--先月のページビュー数---
case '10':
$tmp1=0;
$tmp2=0;
$data_oggi=date("Y-m-",mktime(date("G")-$option['timezone'],date("i"),0,date("m")-1,date("d"),date("Y")));
$result=sql_query("SELECT SUM(hits) FROM $option[prefix]_daily WHERE data like '$data_oggi%' LIMIT 1");
list($tmp1)=@mysql_fetch_row($result);
$result=sql_query("SELECT SUM(hits) FROM $option[prefix]_cache WHERE giorno like '$data_oggi%' LIMIT 1");
list($tmp2)=@mysql_fetch_row($result);
$toshow=$tmp1+$tmp2;
break;
//--------------------

//--今年のページビュー数---
case '11':
$tmp1=0;
$tmp2=0;
$data_oggi=date("Y-",mktime(date("G")-$option['timezone'],date("i"),0,date("m"),date("d"),date("Y")));
$result=sql_query("SELECT SUM(hits) FROM $option[prefix]_daily WHERE data like '$data_oggi%' LIMIT 1");
list($tmp1)=@mysql_fetch_row($result);
$result=sql_query("SELECT SUM(hits) FROM $option[prefix]_cache WHERE giorno like '$data_oggi%' LIMIT 1");
list($tmp2)=@mysql_fetch_row($result);
$toshow=$tmp1+$tmp2;
break;

//--最高訪問者(ページビュー)数---
case '12':
$tmp1=0;
$result=sql_query("SELECT MAX(hits) FROM $option[prefix]_daily WHERE data like '%' LIMIT 1");
list($tmp1)=@mysql_fetch_row($result);
$toshow=$tmp1;
break;

//--訪問者(ページビュー)の平均数---
case '13':
$tmp1=0;
$result=sql_query("SELECT round(avg(hits),0) FROM $option[prefix]_daily WHERE data like '%' LIMIT 1");
list($tmp1)=@mysql_fetch_row($result);
$toshow=$tmp1;
break;

//--直近の日〜土の7日間の訪問者(ページビュー)数---
case '14':
$tmp1=0;
$week=date("w",mktime(date("G")-$option['timezone'],date("i"),0,date("m"),date("d"),date("Y")));
$data_oggi=date("Y-m-d",mktime(date("G")-$option['timezone'],date("i"),0,date("m"),date("d"),date("Y")));
$data_7dayago=date("Y-m-d",mktime(date("G")-$option['timezone'],date("i"),0,date("m"),date("d")-$week,date("Y")));
$result=sql_query("SELECT SUM(hits) FROM $option[prefix]_daily WHERE data between '$data_7dayago' and '$data_oggi'");
list($tmp1)=@mysql_fetch_row($result);
$toshow=$tmp1;
break;

・オンラインユーザー数

*/stats/view_stats.js.php?mode=0&style=8&digits=4

・本日の訪問者数

*/stats/view_stats.js.php?mode=1&style=8&digits=4

・本日のヒット数

*/stats/view_stats.js.php?mode=2&style=8&digits=4

・合計訪問者数

*/stats/view_stats.js.php?mode=3&style=8&digits=5

・合計ヒット数

*/stats/view_stats.js.php?mode=4&style=8&digits=5

・昨日の訪問者数

*/stats/view_stats.js.php?mode=5&style=8&digits=4

・昨日のヒット数

*/stats/view_stats.js.php?mode=6&style=8&digits=4

・今月の訪問者数

*/stats/view_stats.js.php?mode=7&style=8&digits=4

・先月のページビュー数

*/stats/view_stats.js.php?mode=10&style=8&digits=4

・今年のページビュー数

*/stats/view_stats.js.php?mode=11&style=8&digits=4

・最高訪問者(ページビュー)数

*/stats/view_stats.js.php?mode=12&style=8&digits=4

・訪問者(ページビュー)の平均数

*/stats/view_stats.js.php?mode=13&style=8&digits=4

・直近の日〜土の7日間の訪問者(ページビュー)数

*/stats/view_stats.js.php?mode=14&style=8&digits=4