mirror of
https://github.com/e107inc/e107.git
synced 2025-08-02 20:57:26 +02:00
New Shortcode added to Stats plugin. Use {LOG_PAGECOUNTER} or {LOG_PAGECOUNTER=unique} in any frontend template to show the total hits for that URL/page.
This commit is contained in:
91
e107_plugins/log/e_shortcode.php
Normal file
91
e107_plugins/log/e_shortcode.php
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* Copyright (c) e107 Inc 2015 e107.org, Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt)
|
||||||
|
*
|
||||||
|
* Log Stats shortcode batch class - shortcodes available site-wide. ie. equivalent to multiple .sc files.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined('e107_INIT')) { exit; }
|
||||||
|
|
||||||
|
class log_shortcodes extends e_shortcode
|
||||||
|
{
|
||||||
|
|
||||||
|
private $dbPageInfo;
|
||||||
|
|
||||||
|
function __construct($order)
|
||||||
|
{
|
||||||
|
$sql = e107::getDB();
|
||||||
|
$logfile = e_LOG.'logp_'.date('z.Y', time()).'.php'; /* get today's logfile ... */
|
||||||
|
|
||||||
|
if(is_readable($logfile))
|
||||||
|
{
|
||||||
|
require($logfile);
|
||||||
|
}
|
||||||
|
|
||||||
|
$logfile = e_LOG.'logi_'.date('z.Y', time()).'.php'; // $logfile = e_PLUGIN.'log/logs/logi_'.date('z.Y', time()).'.php';
|
||||||
|
|
||||||
|
if(is_readable($logfile))
|
||||||
|
{
|
||||||
|
require($logfile);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if($sql->select('logstats', 'log_data', "log_id='pageTotal'")) /* get main stat info from database */
|
||||||
|
{
|
||||||
|
$row = $sql->fetch();
|
||||||
|
$this->dbPageInfo = unserialize($row['log_data']);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->dbPageInfo = array();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* temp consolidate today's info (if it exists)... */
|
||||||
|
if(is_array($pageInfo))
|
||||||
|
{
|
||||||
|
foreach($pageInfo as $key => $info)
|
||||||
|
{
|
||||||
|
$key = preg_replace("/\?.*/", "", $key);
|
||||||
|
if(array_key_exists($key, $this -> dbPageInfo))
|
||||||
|
{
|
||||||
|
$this -> dbPageInfo[$key]['ttlv'] += $info['ttl'];
|
||||||
|
$this -> dbPageInfo[$key]['unqv'] += $info['unq'];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this -> dbPageInfo[$key]['url'] = $info['url'];
|
||||||
|
$this -> dbPageInfo[$key]['ttlv'] = $info['ttl'];
|
||||||
|
$this -> dbPageInfo[$key]['unqv'] = $info['unq'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private function getKey($self)
|
||||||
|
{
|
||||||
|
$base = basename($self);
|
||||||
|
list($url,$qry) = explode(".",$base, 2);
|
||||||
|
return $url;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function sc_log_pagecounter($parm)
|
||||||
|
{
|
||||||
|
|
||||||
|
$id = $this->getKey(e_REQUEST_URL);
|
||||||
|
|
||||||
|
if(isset($this->dbPageInfo[$id]['url']) && ($this->dbPageInfo[$id]['url'] == e_REQUEST_URL))
|
||||||
|
{
|
||||||
|
return ($parm == 'unique') ? number_format($this->dbPageInfo[$id]['unqv']) : number_format($this->dbPageInfo[$id]['ttlv']);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
Reference in New Issue
Block a user