* @copyright 2007-2012 PrestaShop SA * @version Release: $Revision: 7307 $ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ if (!defined('_PS_VERSION_')) exit; class StatsOrigin extends ModuleGraph { private $_html; public function __construct() { $this->name = 'statsorigin'; $this->tab = 'analytics_stats'; $this->version = 1.0; $this->author = 'PrestaShop'; $this->need_instance = 0; parent::__construct(); $this->displayName = $this->l('Visitors origin'); $this->description = $this->l('Display the websites your visitors come from.'); } public function install() { return (parent::install() && $this->registerHook('AdminStatsModules')); } private function getOrigins($dateBetween) { $directLink = $this->l('Direct link'); $sql = 'SELECT http_referer FROM '._DB_PREFIX_.'connections WHERE 1 '.Shop::addSqlRestriction().' AND date_add BETWEEN '.$dateBetween; $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->query($sql); $websites = array($directLink => 0); while ($row = Db::getInstance(_PS_USE_SQL_SLAVE_)->nextRow($result)) { if (!isset($row['http_referer']) || empty($row['http_referer'])) ++$websites[$directLink]; else { $website = preg_replace('/^www./', '', parse_url($row['http_referer'], PHP_URL_HOST)); if (!isset($websites[$website])) $websites[$website] = 1; else ++$websites[$website]; } } arsort($websites); return $websites; } public function hookAdminStatsModules() { $websites = $this->getOrigins(ModuleGraph::getDateBetween()); if (Tools::getValue('export')) if (Tools::getValue('exportType') == 'top') $this->csvExport(array('type' => 'pie')); $this->_html = '
'.$this->l('Here is the percentage of the 10 most popular referrer websites by which visitors went through to get to your shop.').'
| '.$this->l('Origin').' | '.$this->l('Total').' |
|---|---|
| '.(!strstr($website, ' ') ? '' : '').$website.(!strstr($website, ' ') ? '' : '').' | '.$total.' |
'.$this->l('Direct links only').'
'; $this->_html .= '
'.$this->l('When visiting a webpage, the referrer is the URL of the previous webpage from which a link was followed.').'
'.$this->l('A referrer enables you to know which keywords are entered by visitors in search engines when getting to your shop and allows you to optimize web promotion.').'
'.$this->l('A referrer can be:').'