name = 'statslive'; $this->tab = 'Stats'; $this->version = 1.0; parent::__construct(); $this->displayName = $this->l('Visitors online'); $this->description = $this->l('Display the list of customers and visitors currently online'); } public function install() { return (parent::install() AND $this->registerHook('AdminStatsModules')); } private function getCustomersOnline() { return Db::getInstance()->ExecuteS(' SELECT u.id_customer, u.firstname, u.lastname, pt.name as page FROM `'._DB_PREFIX_.'connections` c LEFT JOIN `'._DB_PREFIX_.'connections_page` cp ON c.id_connections = cp.id_connections LEFT JOIN `'._DB_PREFIX_.'page` p ON p.id_page = cp.id_page LEFT JOIN `'._DB_PREFIX_.'page_type` pt ON p.id_page_type = pt.id_page_type INNER JOIN `'._DB_PREFIX_.'guest` g ON c.id_guest = g.id_guest INNER JOIN `'._DB_PREFIX_.'customer` u ON u.id_customer = g.id_customer WHERE cp.`time_end` IS NULL AND TIME_TO_SEC(TIMEDIFF(NOW(), cp.`time_start`)) < 900 GROUP BY c.id_connections ORDER BY u.firstname, u.lastname'); } private function getVisitorsOnline() { return Db::getInstance()->ExecuteS(' SELECT c.id_guest, c.ip_address, c.date_add, c.http_referer, pt.name as page FROM `'._DB_PREFIX_.'connections` c LEFT JOIN `'._DB_PREFIX_.'connections_page` cp ON c.id_connections = cp.id_connections LEFT JOIN `'._DB_PREFIX_.'page` p ON p.id_page = cp.id_page LEFT JOIN `'._DB_PREFIX_.'page_type` pt ON p.id_page_type = pt.id_page_type INNER JOIN `'._DB_PREFIX_.'guest` g ON c.id_guest = g.id_guest WHERE (g.id_customer IS NULL OR g.id_customer = 0) AND cp.`time_end` IS NULL AND TIME_TO_SEC(TIMEDIFF(NOW(), cp.`time_start`)) < 900 GROUP BY c.id_connections ORDER BY c.date_add DESC'); } public function hookAdminStatsModules($params) { global $cookie; $customers = $this->getCustomersOnline(); $totalCustomers = Db::getInstance()->NumRows(); $visitors = $this->getVisitorsOnline(); $totalVisitors = Db::getInstance()->NumRows(); $irow = 0; echo '
'; } } ?>