From 33405ed8581a6b4d8f9798f573b224cfa3a4c08c Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Thu, 19 Sep 2013 17:57:16 +0200 Subject: [PATCH] // Rollback file wrongly modified by previous commit --- modules/dashactivity/dashactivity.php | 101 +++++++++++++++----------- 1 file changed, 57 insertions(+), 44 deletions(-) diff --git a/modules/dashactivity/dashactivity.php b/modules/dashactivity/dashactivity.php index 9002f4112..87f4071c5 100644 --- a/modules/dashactivity/dashactivity.php +++ b/modules/dashactivity/dashactivity.php @@ -79,12 +79,14 @@ class Dashactivity extends Module $gapi = Module::isInstalled('gapi') ? Module::getInstanceByName('gapi') : false; if (Validate::isLoadedObject($gapi) && $gapi->isConfigured()) { - $visits = $unique_visitors = 0; + $visits = $unique_visitors = $online_visitor = 0; if ($result = $gapi->requestReportData('', 'ga:visits,ga:visitors', $params['date_from'], $params['date_to'], null, null, 1, 1)) { $visits = $result[0]['metrics']['visits']; $unique_visitors = $result[0]['metrics']['visitors']; } + if ($result = $gapi->requestReportData('', 'ga:activeVisitors', null, null, null, null, 1, 1)) + $online_visitor = $result[0]['metrics']['activeVisitors']; } else { @@ -94,6 +96,24 @@ class Dashactivity extends Module WHERE `date_add` BETWEEN "'.pSQL($params['date_from']).'" AND "'.pSQL($params['date_to']).'" '.Shop::addSqlRestriction(false)); extract($row); + + if ($maintenance_ips = Configuration::get('PS_MAINTENANCE_IP')) + $maintenance_ips = implode(',', array_map('ip2long', array_map('trim', explode(',', $maintenance_ips)))); + if (Configuration::get('PS_STATSDATA_CUSTOMER_PAGESVIEWS')) + $sql = 'SELECT COUNT(DISTINCT c.id_connections) + FROM `'._DB_PREFIX_.'connections` c + LEFT JOIN `'._DB_PREFIX_.'connections_page` cp ON c.id_connections = cp.id_connections + WHERE TIME_TO_SEC(TIMEDIFF(NOW(), cp.`time_start`)) < 900 + AND cp.`time_end` IS NULL + '.Shop::addSqlRestriction(false, 'c').' + '.($maintenance_ips ? 'AND c.ip_address NOT IN ('.preg_replace('/[^,0-9]/', '', $maintenance_ips).')' : ''); + else + $sql = 'SELECT COUNT(*) + FROM `'._DB_PREFIX_.'connections` + WHERE TIME_TO_SEC(TIMEDIFF(NOW(), `date_add`)) < 900 + '.Shop::addSqlRestriction(false).' + '.($maintenance_ips ? 'AND ip_address NOT IN ('.preg_replace('/[^,0-9]/', '', $maintenance_ips).')' : ''); + $online_visitor = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($sql); } $order_nbr = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue(' @@ -136,25 +156,7 @@ class Dashactivity extends Module LEFT JOIN `'._DB_PREFIX_.'customer_message` cm ON ct.id_customer_thread = cm.id_customer_thread WHERE cm.`date_add` BETWEEN "'.pSQL($params['date_from']).'" AND "'.pSQL($params['date_to']).'" '.Shop::addSqlRestriction(false, 'ct')); - - if ($maintenance_ips = Configuration::get('PS_MAINTENANCE_IP')) - $maintenance_ips = implode(',', array_map('ip2long', array_map('trim', explode(',', $maintenance_ips)))); - if (Configuration::get('PS_STATSDATA_CUSTOMER_PAGESVIEWS')) - $sql = 'SELECT COUNT(DISTINCT c.id_connections) - FROM `'._DB_PREFIX_.'connections` c - LEFT JOIN `'._DB_PREFIX_.'connections_page` cp ON c.id_connections = cp.id_connections - WHERE TIME_TO_SEC(TIMEDIFF(NOW(), cp.`time_start`)) < 900 - AND cp.`time_end` IS NULL - '.Shop::addSqlRestriction(false, 'c').' - '.($maintenance_ips ? 'AND c.ip_address NOT IN ('.preg_replace('/[^,0-9]/', '', $maintenance_ips).')' : ''); - else - $sql = 'SELECT COUNT(*) - FROM `'._DB_PREFIX_.'connections` - WHERE TIME_TO_SEC(TIMEDIFF(NOW(), `date_add`)) < 900 - '.Shop::addSqlRestriction(false).' - '.($maintenance_ips ? 'AND ip_address NOT IN ('.preg_replace('/[^,0-9]/', '', $maintenance_ips).')' : ''); - $online_visitor = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($sql); - + $active_shopping_cart = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue(' SELECT COUNT(*) FROM `'._DB_PREFIX_.'cart` @@ -248,31 +250,42 @@ class Dashactivity extends Module public function getReferer($date_from, $date_to, $limit = 10) { - $directLink = $this->l('Direct link'); - $sql = 'SELECT http_referer - FROM '._DB_PREFIX_.'connections - WHERE 1 - '.Shop::addSqlRestriction().' - AND date_add BETWEEN '.$date_from.' AND '.$date_to.' - LIMIT 0, '.(int)$limit; - - $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->query($sql); - $websites = array($directLink => 0); - - while ($row = Db::getInstance(_PS_USE_SQL_SLAVE_)->nextRow($result)) + $gapi = Module::isInstalled('gapi') ? Module::getInstanceByName('gapi') : false; + if (Validate::isLoadedObject($gapi) && $gapi->isConfigured()) { - 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]; - } + $websites = array(); + if ($result = $gapi->requestReportData('ga:source', 'ga:visitors', $date_from, $date_to, '-ga:visitors', null, 1, 3)) + foreach ($result as $row) + $websites[$row['dimensions']['source']] = $row['metrics']['visitors']; + } + else + { + $directLink = $this->l('Direct link'); + $sql = 'SELECT http_referer + FROM '._DB_PREFIX_.'connections + WHERE 1 + '.Shop::addSqlRestriction().' + AND date_add BETWEEN '.$date_from.' AND '.$date_to.' + LIMIT 0, '.(int)$limit; + + $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); } - arsort($websites); return $websites; } @@ -371,4 +384,4 @@ class Dashactivity extends Module { Tools::changeFileMTime($this->push_filename); } -} +} \ No newline at end of file