[pLog-svn] r4929 - plugins/branches/lifetype-1.2/unported/blogstatistics
jondaley at devel.lifetype.net
jondaley at devel.lifetype.net
Fri Mar 2 12:14:07 EST 2007
Author: jondaley
Date: 2007-03-02 12:14:06 -0500 (Fri, 02 Mar 2007)
New Revision: 4929
Modified:
plugins/branches/lifetype-1.2/unported/blogstatistics/pluginblogstatistics.class.php
Log:
just spacing and carriage return change
Modified: plugins/branches/lifetype-1.2/unported/blogstatistics/pluginblogstatistics.class.php
===================================================================
--- plugins/branches/lifetype-1.2/unported/blogstatistics/pluginblogstatistics.class.php 2007-03-02 17:13:12 UTC (rev 4928)
+++ plugins/branches/lifetype-1.2/unported/blogstatistics/pluginblogstatistics.class.php 2007-03-02 17:14:06 UTC (rev 4929)
@@ -1,479 +1,479 @@
-<?php
-//
-// blogstatistics - pLog Blog Statistics and Traffic Statistics
-//
-// Copyright 2004 by Minstrel Chiu. All rights reserved.
-//
-// Licensed under the GNU GPL License, Version 2.0 (the "License");
-// Everyone is permitted to copy and distribute verbatim copies
-// of this license document, but changing it is not allowed.
-// You may obtain a copy of the License at
-//
-// http://www.fsf.org/copyleft/gpl.html
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
- include_once( PLOG_CLASS_PATH."class/plugin/pluginbase.class.php" );
- include_once( PLOG_CLASS_PATH."class/plugin/pluginmanager.class.php" );
- include_once( PLOG_CLASS_PATH."class/dao/model.class.php" );
- include_once( PLOG_CLASS_PATH."class/data/Date.class.php" );
- include_once( PLOG_CLASS_PATH."class/net/client.class.php" );
- include_once( PLOG_CLASS_PATH."class/net/url.class.php" );
- include_once( PLOG_CLASS_PATH."class/net/httpvars.class.php" );
- include_once( PLOG_CLASS_PATH."class/data/timestamp.class.php" );
-
- class PluginBlogStatistics extends PluginBase
- {
- var $_prefix;
- var $_now;
- var $_date;
- var $_prevdate;
- var $_weekdate;
- var $_month;
- var $_onlinestamp;
-
- function PluginBlogStatistics()
- {
- $this->author = "Minstrel Chiu";
- $this->desc = "
- <p>This plugin offers a statistics of plog. Part of code is originally written by Mark Wu. And also thanks to Reic Wang.<br>
- Add the following code in header.template<br><br>
- <b>{\$blogstatistics->logStatistics()}</b><br>
- <br>
- Several functions are available:<br>
- 1. <b>Totoal Read Number</b>: <b><i>getTotalReadNumber()</i></b><br>
- 2. <b>Totoal Post Number</b>: <b><i>getTotalPostNumber()</i></b><br>
- 3. <b>Totoal Comment Number</b>: <b><i>getTotalCommentNumber()</i></b><br>
- 4. <b>Totoal Trackback Number</b>: <b><i>getTotalTrackbackNumber()</i></b><br>
- 5. <b>Total Referer Number</b>: <b><i>getTotalRefererNumber()</i></b><br>
- 6. <b>Today Visitor</b>: <b><i>getTodayVisitor()</i></b><br>
- 7. <b>Today Distinct Visitor</b>: <b><i>getTodayDistinctVisitor()</i></b><br>
- 8. <b>Yesterday Visitor</b>: <b><i>getYesterdayVisitor()</i></b><br>
- 9. <b>Yesterday Distinct Visitor</b>: <b><i>getYesterdayDistinctVisitor()</i></b><br>
- 10. <b>This Week Visitor</b>: <b><i>getThisWeekVisitor()</i></b><br>
- 11. <b>This Week Distinct Visitor</b>: <b><i>getThisWeekDistinctVisitor()</i></b><br>
- 12. <b>This Month Visitor</b>: <b><i>getThisMonthVisitor()</i></b><br>
- 13. <b>This Month Distinct Visitor</b>: <b><i>getThisMonthDistinctVisitor()</i></b><br>
- 14. <b>Total Visitor</b>: <b><i>getTotalVisitor()</i></b><br>
- 15. <b>Total Distinct Visitor</b>: <b><i>getTotalDistinctVisitor()</i></b><br>
- 16. <b>Current Online Visitor</b>: <b><i>getOnlineVisitor()</i></b><br>
- <br>
- All above function default return all site statistics. If wanna get particular blog statistics,<br>
- can pass <b>{\$blog->getId()}</b> in, to get the particular blog statistics data.<br>
- <br>
- Examples:<br>
- <br>
- <p><b>
- Total Read: {\$blogstatistics->getTotalReadNumber()} Times<br />
- Total Post: {\$blogstatistics->getTotalPostNumber(()} Posts<br />
- Total Comments: {\$blogstatistics->getTotalCommentNumber()} Comments<br />
- Total Trackbacks: {\$blogstatistics->getTotalTrackbackNumber()} Trackbacks<br />
- Total Referers: {\$blogstatistics->getTotalRefererNumber()} Referers<br />
- <br />
- Today Visitors: {\$blogstatistics->getTodayVisitor()}<br />
- Yesterday Visitors: {\$blogstatistics->getYesterdayVisitor()}<br />
- This Week Visitors: {\$blogstatistics->getThisWeekVisitor()}<br />
- This Month Visitors: {\$blogstatistics->getThisMonthVisitor()}<br />
- Total Visitors: {\$blogstatistics->getTotalVisitor()}<br />
- Online Visitors: {\$blogstatistics->getOnlineVisitor()}<br />
- </b></p>
- </p>";
-
- $config = new Config();
- $this->_prefix = $config->getValue('db_prefix');
-
- $this->_now = new Date();
-
- $prevday = $this->_now->getPrevDay();
-
- $this->_date = $this->_now->format("%Y%m%d");
- $this->_month = $this->_now->format("%Y%m");
- $this->_prevdate = $prevday->format("%Y%m%d");
-
- $weekdate = $this->_now;
- $weekday = $this->_now->getDayOfWeek();
-
- for($day=$weekday; $day>0; $day--)
- $weekdate = $weekdate->getPrevDay();
-
- $this->_weekdate = $weekdate->format("%Y%m%d");
-
- $online = $this->_now;
- $online->subtractSeconds(360);
-
- $this->_onlinestamp = $online->getDate(DATE_FORMAT_TIMESTAMP);
-
- $this->PluginBase();
- }
-
- function register()
- {
- $this->connectDb();
- $stat = new BlogStatistics();
- $stat->createTable();
- }
-
- function logStatistics()
- {
- $blog = $this->blogInfo->getId();
- $timestamp = $this->_now->getDate(DATE_FORMAT_TIMESTAMP);
- $clientip = Client::getIp();
- $refer = $_SERVER["HTTP_REFERER"];
- $ourHost = $_SERVER["HTTP_HOST"];
- $agent = $_SERVER["HTTP_USER_AGENT"];
-
- $refererUrl = new Url( $refer );
-
- if( $refererUrl->getHost() == $ourHost || $refererUrl->getHost() == "" )
- {
- $refer = "";
- }
-
- $params = HttpVars::getRequest();
- $articleId = $params["articleId"];
-
- if($articleId == "")
- $articleId = 0;
-
- $this->injectSql("(`blog_id`, `article_id`, `time`, `ip`, `refer`, `agent`) VALUES ('$blog', '$articleId', '$timestamp', '$clientip', '$refer', '$agent');");
- }
-
- function injectSql($dbqry)
- {
- $query = "INSERT INTO ".$this->_prefix."statistics $dbqry";
- $result = $this->db->Execute( $query );
- }
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- //
- //
- // Blog Static Statistics
- //
- //
- ////////////////////////////////////////////////////////////////////////////////////////////
-
- function getTotalPostNumber($blogId = -1)
- {
- $query = "SELECT * FROM ".$this->_prefix."articles WHERE status='published'";
-
- if( $blogId != -1 )
- $query .= " AND blog_id = ".$blogId;
-
- $query .= ";";
-
- $result = $this->db->Execute( $query );
-
- if( $result )
- $count = $result->RecordCount();
-
- return $count;
- }
-
- function getTotalCommentNumber($blogId = -1)
- {
- $query = "SELECT * FROM ".$this->_prefix."articles_comments,".$this->_prefix."articles WHERE ".$this->_prefix."articles_comments.article_id=".$this->_prefix."articles.id AND ".$this->_prefix."articles.status='published'";
-
- if( $blogId != -1 )
- $query .= " AND ".$this->_prefix."articles.blog_id=".$blogId;
-
- $query .= ";";
-
- $result = $this->db->Execute( $query );
-
- if( $result )
- $count = $result->RecordCount();
-
- return $count;
- }
-
- function getTotalReadNumber($blogId = -1)
- {
- $query = "SELECT SUM(num_reads) AS readNumber FROM ".$this->_prefix."articles WHERE status='published'";
-
- if( $blogId != -1 )
- $query .= " AND blog_id = ".$blogId;
-
- $query .= ";";
-
- $result = $this->db->Execute( $query );
-
- if( !$result )
- return false;
-
- $row = $result->FetchRow();
- return $row["readNumber"];
- }
-
- function getTotalRefererNumber($blogId = -1)
- {
- $query = "SELECT * FROM ".$this->_prefix."referers";
-
- if( $blogId != -1 )
- $query .= " WHERE blog_id = ".$blogId;
-
- $query .= ";";
-
- $result = $this->db->Execute( $query );
-
- if( $result )
- $count = $result->RecordCount();
-
- return $count;
- }
-
- function getTotalTrackbackNumber($blogId = -1)
- {
- $query = "SELECT * FROM ".$this->_prefix."trackbacks,".$this->_prefix."articles WHERE ".$this->_prefix."trackbacks.article_id=".$this->_prefix."articles.id AND ".$this->_prefix."articles.status='published'";
-
- if( $blogId != -1 )
- $query .= " AND ".$this->_prefix."articles.blog_id=".$blogId;
-
- $query .= ";";
-
- $result = $this->db->Execute( $query );
-
- if( $result )
- $count = $result->RecordCount();
-
- return $count;
- }
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- //
- //
- // Blog Dynamic Statistics
- //
- //
- ////////////////////////////////////////////////////////////////////////////////////////////
-
- function getOnlineVisitor($blogId = -1)
- {
- $query = "SELECT DISTINCT ip FROM ".$this->_prefix."statistics WHERE date_format(time, '%Y%m%d%H%i%S') >= ".$this->_onlinestamp;
-
- if( $blogId != -1 )
- $query .= " AND blog_id = ".$blogId;
-
- $query .= ";";
-
- $result = $this->db->Execute( $query );
-
- if( $result )
- $count = $result->RecordCount();
-
- return $count;
- }
-
- function getTotalVisitor($blogId = -1)
- {
- $query = "SELECT * FROM ".$this->_prefix."statistics";
-
- if( $blogId != -1 )
- $query .= " WHERE blog_id = ".$blogId;
-
- $query .= ";";
-
- $result = $this->db->Execute( $query );
-
- if( $result )
- $count = $result->RecordCount();
-
- return $count;
- }
-
- function getTotalDistinctVisitor($blogId = -1)
- {
- $query = "SELECT DISTINCT ip FROM ".$this->_prefix."statistics";
-
- if( $blogId != -1 )
- $query .= " WHERE blog_id = ".$blogId;
-
- $query .= ";";
-
- $result = $this->db->Execute( $query );
-
- if( $result )
- $count = $result->RecordCount();
-
- return $count;
- }
-
- function getTodayVisitor($blogId = -1)
- {
- $query = "SELECT * FROM ".$this->_prefix."statistics WHERE date_format(time, '%Y%m%d') = ".$this->_date;
-
- if( $blogId != -1 )
- $query .= " AND blog_id = ".$blogId;
-
- $query .= ";";
-
- $result = $this->db->Execute( $query );
-
- if( $result )
- $count = $result->RecordCount();
-
- return $count;
- }
-
- function getTodayDistinctVisitor($blogId = -1)
- {
- $query = "SELECT DISTINCT ip FROM ".$this->_prefix."statistics WHERE date_format(time, '%Y%m%d') = ".$this->_date;
-
- if( $blogId != -1 )
- $query .= " AND blog_id = ".$blogId;
-
- $query .= ";";
-
- $result = $this->db->Execute( $query );
-
- if( $result )
- $count = $result->RecordCount();
-
- return $count;
- }
-
- function getYesterdayVisitor($blogId = -1)
- {
- $query = "SELECT * FROM ".$this->_prefix."statistics WHERE date_format(`time`, '%Y%m%d' ) = ".$this->_prevdate;
- if( $blogId != -1 )
- $query .= " AND blog_id = ".$blogId;
-
- $query .= ";";
-
- $result = $this->db->Execute( $query );
-
- if( $result )
- $count = $result->RecordCount();
-
- return $count;
- }
-
- function getYesterdayDistinctVisitor($blogId = -1)
- {
- $query = "SELECT DISTINCT ip FROM ".$this->_prefix."statistics WHERE date_format(`time`, '%Y%m%d' ) =".$this->_prevdate;
-
- if( $blogId != -1 )
- $query .= " AND blog_id = ".$blogId;
-
- $query .= ";";
-
- $result = $this->db->Execute( $query );
-
- if( $result )
- $count = $result->RecordCount();
-
- return $count;
- }
-
- function getThisWeekVisitor($blogId = -1)
- {
- $query = "SELECT * FROM ".$this->_prefix."statistics WHERE (date_format(`time`, '%Y%m%d')) >= ".$this->_weekdate;
-
- if( $blogId != -1 )
- $query .= " AND blog_id = ".$blogId;
-
- $query .= ";";
-
- $result = $this->db->Execute( $query );
-
- if( $result )
- $count = $result->RecordCount();
-
- return $count;
- }
-
- function getThisWeekDistinctVisitor($blogId = -1)
- {
- $query = "SELECT DISTINCT ip FROM ".$this->_prefix."statistics WHERE (date_format(`time`, '%Y%m%d')) >= ".$this->_weekdate;
-
- if( $blogId != -1 )
- $query .= " AND blog_id = ".$blogId;
-
- $query .= ";";
-
- $result = $this->db->Execute( $query );
-
- if( $result )
- $count = $result->RecordCount();
-
- return $count;
- }
-
- function getThisMonthVisitor($blogId = -1)
- {
- $query = "SELECT * FROM ".$this->_prefix."statistics WHERE date_format(`time`, '%Y%m') = ".$this->_month;
-
- if( $blogId != -1 )
- $query .= " AND blog_id = ".$blogId;
-
- $query .= ";";
-
- $result = $this->db->Execute( $query );
-
- if( $result )
- $count = $result->RecordCount();
-
- return $count;
- }
-
- function getThisMonthDistinctVisitor($blogId = -1)
- {
- $query = "SELECT DISTINCT ip FROM ".$this->_prefix."statistics WHERE date_format(`time`, '%Y%m') = ".$this->_month;
-
- if( $blogId != -1 )
- $query .= " AND blog_id = ".$blogId;
-
- $query .= ";";
-
- $result = $this->db->Execute( $query );
-
- if( $result )
- $count = $result->RecordCount();
-
- return $count;
- }
- }
-
- class BlogStatistics extends Model
- {
- function BlogStatistics()
- {
- $this->Model();
- }
-
- function checkTable($table, $field)
- {
- $dbPrefix = $this->getPrefix();
- $tableName = $dbPrefix.$table;
-
- // create the data dictionary and create the table if necessary
- $dict = NewPDbDataDictionary( $this->_db );
- $sqlArray = $dict->ChangeTableSQL( $tableName, $field );
- $result = $dict->ExecuteSQLArray( $sqlArray );
-
- if( $result == 0 )
- $this->_desc = "There was an error initializing the tables.";
- }
-
- function createTable()
- {
- $table = "statistics";
- $field = "blog_id I(10) NOT NULL default '-1',
- article_id I(10) NOT NULL default '-1',
- time timestamp(14),
- ip varchar(15) default '0.0.0.0',
- refer text NOT NULL,
- agent text NOT NULL";
-
- $this->checkTable( $table, $field );
-
- return true;
- }
- }
-
- PluginManager::registerPlugin( "blogstatistics", "PluginBlogStatistics" );
-?>
+<?php
+//
+// blogstatistics - pLog Blog Statistics and Traffic Statistics
+//
+// Copyright 2004 by Minstrel Chiu. All rights reserved.
+//
+// Licensed under the GNU GPL License, Version 2.0 (the "License");
+// Everyone is permitted to copy and distribute verbatim copies
+// of this license document, but changing it is not allowed.
+// You may obtain a copy of the License at
+//
+// http://www.fsf.org/copyleft/gpl.html
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+include_once( PLOG_CLASS_PATH."class/plugin/pluginbase.class.php" );
+include_once( PLOG_CLASS_PATH."class/plugin/pluginmanager.class.php" );
+include_once( PLOG_CLASS_PATH."class/dao/model.class.php" );
+include_once( PLOG_CLASS_PATH."class/data/Date.class.php" );
+include_once( PLOG_CLASS_PATH."class/net/client.class.php" );
+include_once( PLOG_CLASS_PATH."class/net/url.class.php" );
+include_once( PLOG_CLASS_PATH."class/net/httpvars.class.php" );
+include_once( PLOG_CLASS_PATH."class/data/timestamp.class.php" );
+
+class PluginBlogStatistics extends PluginBase
+{
+ var $_prefix;
+ var $_now;
+ var $_date;
+ var $_prevdate;
+ var $_weekdate;
+ var $_month;
+ var $_onlinestamp;
+
+ function PluginBlogStatistics()
+ {
+ $this->author = "Minstrel Chiu";
+ $this->desc = "
+ <p>This plugin offers a statistics of plog. Part of code is originally written by Mark Wu. And also thanks to Reic Wang.<br>
+ Add the following code in header.template<br><br>
+ <b>{\$blogstatistics->logStatistics()}</b><br>
+ <br>
+ Several functions are available:<br>
+ 1. <b>Totoal Read Number</b>: <b><i>getTotalReadNumber()</i></b><br>
+ 2. <b>Totoal Post Number</b>: <b><i>getTotalPostNumber()</i></b><br>
+ 3. <b>Totoal Comment Number</b>: <b><i>getTotalCommentNumber()</i></b><br>
+ 4. <b>Totoal Trackback Number</b>: <b><i>getTotalTrackbackNumber()</i></b><br>
+ 5. <b>Total Referer Number</b>: <b><i>getTotalRefererNumber()</i></b><br>
+ 6. <b>Today Visitor</b>: <b><i>getTodayVisitor()</i></b><br>
+ 7. <b>Today Distinct Visitor</b>: <b><i>getTodayDistinctVisitor()</i></b><br>
+ 8. <b>Yesterday Visitor</b>: <b><i>getYesterdayVisitor()</i></b><br>
+ 9. <b>Yesterday Distinct Visitor</b>: <b><i>getYesterdayDistinctVisitor()</i></b><br>
+ 10. <b>This Week Visitor</b>: <b><i>getThisWeekVisitor()</i></b><br>
+ 11. <b>This Week Distinct Visitor</b>: <b><i>getThisWeekDistinctVisitor()</i></b><br>
+ 12. <b>This Month Visitor</b>: <b><i>getThisMonthVisitor()</i></b><br>
+ 13. <b>This Month Distinct Visitor</b>: <b><i>getThisMonthDistinctVisitor()</i></b><br>
+ 14. <b>Total Visitor</b>: <b><i>getTotalVisitor()</i></b><br>
+ 15. <b>Total Distinct Visitor</b>: <b><i>getTotalDistinctVisitor()</i></b><br>
+ 16. <b>Current Online Visitor</b>: <b><i>getOnlineVisitor()</i></b><br>
+ <br>
+ All above function default return all site statistics. If wanna get particular blog statistics,<br>
+ can pass <b>{\$blog->getId()}</b> in, to get the particular blog statistics data.<br>
+ <br>
+ Examples:<br>
+ <br>
+ <p><b>
+ Total Read: {\$blogstatistics->getTotalReadNumber()} Times<br />
+ Total Post: {\$blogstatistics->getTotalPostNumber(()} Posts<br />
+ Total Comments: {\$blogstatistics->getTotalCommentNumber()} Comments<br />
+ Total Trackbacks: {\$blogstatistics->getTotalTrackbackNumber()} Trackbacks<br />
+ Total Referers: {\$blogstatistics->getTotalRefererNumber()} Referers<br />
+ <br />
+ Today Visitors: {\$blogstatistics->getTodayVisitor()}<br />
+ Yesterday Visitors: {\$blogstatistics->getYesterdayVisitor()}<br />
+ This Week Visitors: {\$blogstatistics->getThisWeekVisitor()}<br />
+ This Month Visitors: {\$blogstatistics->getThisMonthVisitor()}<br />
+ Total Visitors: {\$blogstatistics->getTotalVisitor()}<br />
+ Online Visitors: {\$blogstatistics->getOnlineVisitor()}<br />
+ </b></p>
+ </p>";
+
+ $config = new Config();
+ $this->_prefix = $config->getValue('db_prefix');
+
+ $this->_now = new Date();
+
+ $prevday = $this->_now->getPrevDay();
+
+ $this->_date = $this->_now->format("%Y%m%d");
+ $this->_month = $this->_now->format("%Y%m");
+ $this->_prevdate = $prevday->format("%Y%m%d");
+
+ $weekdate = $this->_now;
+ $weekday = $this->_now->getDayOfWeek();
+
+ for($day=$weekday; $day>0; $day--)
+ $weekdate = $weekdate->getPrevDay();
+
+ $this->_weekdate = $weekdate->format("%Y%m%d");
+
+ $online = $this->_now;
+ $online->subtractSeconds(360);
+
+ $this->_onlinestamp = $online->getDate(DATE_FORMAT_TIMESTAMP);
+
+ $this->PluginBase();
+ }
+
+ function register()
+ {
+ $this->connectDb();
+ $stat = new BlogStatistics();
+ $stat->createTable();
+ }
+
+ function logStatistics()
+ {
+ $blog = $this->blogInfo->getId();
+ $timestamp = $this->_now->getDate(DATE_FORMAT_TIMESTAMP);
+ $clientip = Client::getIp();
+ $refer = $_SERVER["HTTP_REFERER"];
+ $ourHost = $_SERVER["HTTP_HOST"];
+ $agent = $_SERVER["HTTP_USER_AGENT"];
+
+ $refererUrl = new Url( $refer );
+
+ if( $refererUrl->getHost() == $ourHost || $refererUrl->getHost() == "" )
+ {
+ $refer = "";
+ }
+
+ $params = HttpVars::getRequest();
+ $articleId = $params["articleId"];
+
+ if($articleId == "")
+ $articleId = 0;
+
+ $this->injectSql("(`blog_id`, `article_id`, `time`, `ip`, `refer`, `agent`) VALUES ('$blog', '$articleId', '$timestamp', '$clientip', '$refer', '$agent');");
+ }
+
+ function injectSql($dbqry)
+ {
+ $query = "INSERT INTO ".$this->_prefix."statistics $dbqry";
+ $result = $this->db->Execute( $query );
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////////////////
+ //
+ //
+ // Blog Static Statistics
+ //
+ //
+ ////////////////////////////////////////////////////////////////////////////////////////////
+
+ function getTotalPostNumber($blogId = -1)
+ {
+ $query = "SELECT * FROM ".$this->_prefix."articles WHERE status='published'";
+
+ if( $blogId != -1 )
+ $query .= " AND blog_id = ".$blogId;
+
+ $query .= ";";
+
+ $result = $this->db->Execute( $query );
+
+ if( $result )
+ $count = $result->RecordCount();
+
+ return $count;
+ }
+
+ function getTotalCommentNumber($blogId = -1)
+ {
+ $query = "SELECT * FROM ".$this->_prefix."articles_comments,".$this->_prefix."articles WHERE ".$this->_prefix."articles_comments.article_id=".$this->_prefix."articles.id AND ".$this->_prefix."articles.status='published'";
+
+ if( $blogId != -1 )
+ $query .= " AND ".$this->_prefix."articles.blog_id=".$blogId;
+
+ $query .= ";";
+
+ $result = $this->db->Execute( $query );
+
+ if( $result )
+ $count = $result->RecordCount();
+
+ return $count;
+ }
+
+ function getTotalReadNumber($blogId = -1)
+ {
+ $query = "SELECT SUM(num_reads) AS readNumber FROM ".$this->_prefix."articles WHERE status='published'";
+
+ if( $blogId != -1 )
+ $query .= " AND blog_id = ".$blogId;
+
+ $query .= ";";
+
+ $result = $this->db->Execute( $query );
+
+ if( !$result )
+ return false;
+
+ $row = $result->FetchRow();
+ return $row["readNumber"];
+ }
+
+ function getTotalRefererNumber($blogId = -1)
+ {
+ $query = "SELECT * FROM ".$this->_prefix."referers";
+
+ if( $blogId != -1 )
+ $query .= " WHERE blog_id = ".$blogId;
+
+ $query .= ";";
+
+ $result = $this->db->Execute( $query );
+
+ if( $result )
+ $count = $result->RecordCount();
+
+ return $count;
+ }
+
+ function getTotalTrackbackNumber($blogId = -1)
+ {
+ $query = "SELECT * FROM ".$this->_prefix."trackbacks,".$this->_prefix."articles WHERE ".$this->_prefix."trackbacks.article_id=".$this->_prefix."articles.id AND ".$this->_prefix."articles.status='published'";
+
+ if( $blogId != -1 )
+ $query .= " AND ".$this->_prefix."articles.blog_id=".$blogId;
+
+ $query .= ";";
+
+ $result = $this->db->Execute( $query );
+
+ if( $result )
+ $count = $result->RecordCount();
+
+ return $count;
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////////////////
+ //
+ //
+ // Blog Dynamic Statistics
+ //
+ //
+ ////////////////////////////////////////////////////////////////////////////////////////////
+
+ function getOnlineVisitor($blogId = -1)
+ {
+ $query = "SELECT DISTINCT ip FROM ".$this->_prefix."statistics WHERE date_format(time, '%Y%m%d%H%i%S') >= ".$this->_onlinestamp;
+
+ if( $blogId != -1 )
+ $query .= " AND blog_id = ".$blogId;
+
+ $query .= ";";
+
+ $result = $this->db->Execute( $query );
+
+ if( $result )
+ $count = $result->RecordCount();
+
+ return $count;
+ }
+
+ function getTotalVisitor($blogId = -1)
+ {
+ $query = "SELECT * FROM ".$this->_prefix."statistics";
+
+ if( $blogId != -1 )
+ $query .= " WHERE blog_id = ".$blogId;
+
+ $query .= ";";
+
+ $result = $this->db->Execute( $query );
+
+ if( $result )
+ $count = $result->RecordCount();
+
+ return $count;
+ }
+
+ function getTotalDistinctVisitor($blogId = -1)
+ {
+ $query = "SELECT DISTINCT ip FROM ".$this->_prefix."statistics";
+
+ if( $blogId != -1 )
+ $query .= " WHERE blog_id = ".$blogId;
+
+ $query .= ";";
+
+ $result = $this->db->Execute( $query );
+
+ if( $result )
+ $count = $result->RecordCount();
+
+ return $count;
+ }
+
+ function getTodayVisitor($blogId = -1)
+ {
+ $query = "SELECT * FROM ".$this->_prefix."statistics WHERE date_format(time, '%Y%m%d') = ".$this->_date;
+
+ if( $blogId != -1 )
+ $query .= " AND blog_id = ".$blogId;
+
+ $query .= ";";
+
+ $result = $this->db->Execute( $query );
+
+ if( $result )
+ $count = $result->RecordCount();
+
+ return $count;
+ }
+
+ function getTodayDistinctVisitor($blogId = -1)
+ {
+ $query = "SELECT DISTINCT ip FROM ".$this->_prefix."statistics WHERE date_format(time, '%Y%m%d') = ".$this->_date;
+
+ if( $blogId != -1 )
+ $query .= " AND blog_id = ".$blogId;
+
+ $query .= ";";
+
+ $result = $this->db->Execute( $query );
+
+ if( $result )
+ $count = $result->RecordCount();
+
+ return $count;
+ }
+
+ function getYesterdayVisitor($blogId = -1)
+ {
+ $query = "SELECT * FROM ".$this->_prefix."statistics WHERE date_format(`time`, '%Y%m%d' ) = ".$this->_prevdate;
+ if( $blogId != -1 )
+ $query .= " AND blog_id = ".$blogId;
+
+ $query .= ";";
+
+ $result = $this->db->Execute( $query );
+
+ if( $result )
+ $count = $result->RecordCount();
+
+ return $count;
+ }
+
+ function getYesterdayDistinctVisitor($blogId = -1)
+ {
+ $query = "SELECT DISTINCT ip FROM ".$this->_prefix."statistics WHERE date_format(`time`, '%Y%m%d' ) =".$this->_prevdate;
+
+ if( $blogId != -1 )
+ $query .= " AND blog_id = ".$blogId;
+
+ $query .= ";";
+
+ $result = $this->db->Execute( $query );
+
+ if( $result )
+ $count = $result->RecordCount();
+
+ return $count;
+ }
+
+ function getThisWeekVisitor($blogId = -1)
+ {
+ $query = "SELECT * FROM ".$this->_prefix."statistics WHERE (date_format(`time`, '%Y%m%d')) >= ".$this->_weekdate;
+
+ if( $blogId != -1 )
+ $query .= " AND blog_id = ".$blogId;
+
+ $query .= ";";
+
+ $result = $this->db->Execute( $query );
+
+ if( $result )
+ $count = $result->RecordCount();
+
+ return $count;
+ }
+
+ function getThisWeekDistinctVisitor($blogId = -1)
+ {
+ $query = "SELECT DISTINCT ip FROM ".$this->_prefix."statistics WHERE (date_format(`time`, '%Y%m%d')) >= ".$this->_weekdate;
+
+ if( $blogId != -1 )
+ $query .= " AND blog_id = ".$blogId;
+
+ $query .= ";";
+
+ $result = $this->db->Execute( $query );
+
+ if( $result )
+ $count = $result->RecordCount();
+
+ return $count;
+ }
+
+ function getThisMonthVisitor($blogId = -1)
+ {
+ $query = "SELECT * FROM ".$this->_prefix."statistics WHERE date_format(`time`, '%Y%m') = ".$this->_month;
+
+ if( $blogId != -1 )
+ $query .= " AND blog_id = ".$blogId;
+
+ $query .= ";";
+
+ $result = $this->db->Execute( $query );
+
+ if( $result )
+ $count = $result->RecordCount();
+
+ return $count;
+ }
+
+ function getThisMonthDistinctVisitor($blogId = -1)
+ {
+ $query = "SELECT DISTINCT ip FROM ".$this->_prefix."statistics WHERE date_format(`time`, '%Y%m') = ".$this->_month;
+
+ if( $blogId != -1 )
+ $query .= " AND blog_id = ".$blogId;
+
+ $query .= ";";
+
+ $result = $this->db->Execute( $query );
+
+ if( $result )
+ $count = $result->RecordCount();
+
+ return $count;
+ }
+}
+
+class BlogStatistics extends Model
+{
+ function BlogStatistics()
+ {
+ $this->Model();
+ }
+
+ function checkTable($table, $field)
+ {
+ $dbPrefix = $this->getPrefix();
+ $tableName = $dbPrefix.$table;
+
+ // create the data dictionary and create the table if necessary
+ $dict = NewPDbDataDictionary( $this->_db );
+ $sqlArray = $dict->ChangeTableSQL( $tableName, $field );
+ $result = $dict->ExecuteSQLArray( $sqlArray );
+
+ if( $result == 0 )
+ $this->_desc = "There was an error initializing the tables.";
+ }
+
+ function createTable()
+ {
+ $table = "statistics";
+ $field = "blog_id I(10) NOT NULL default '-1',
+ article_id I(10) NOT NULL default '-1',
+ time timestamp(14),
+ ip varchar(15) default '0.0.0.0',
+ refer text NOT NULL,
+ agent text NOT NULL";
+
+ $this->checkTable( $table, $field );
+
+ return true;
+ }
+}
+
+PluginManager::registerPlugin( "blogstatistics", "PluginBlogStatistics" );
+?>
More information about the pLog-svn
mailing list