diff --git a/addons/counter/counter.addon.php b/addons/counter/counter.addon.php index 65d665bd5..d1276eacc 100644 --- a/addons/counter/counter.addon.php +++ b/addons/counter/counter.addon.php @@ -10,7 +10,7 @@ if(!defined('__XE__')) * @brief Counter add-on */ // Execute if called_position is before_display_content -if($called_position == 'before_module_init' && Context::get('module') != 'admin' && Context::getResponseMethod() == 'HTML' && Context::isInstalled() && !isCrawler()) +if($called_position == 'before_display_content' && Context::get('module') != 'admin' && Context::getResponseMethod() == 'HTML' && Context::isInstalled() && !isCrawler()) { $oCounterController = getController('counter'); $oCounterController->counterExecute(); diff --git a/modules/counter/counter.admin.view.php b/modules/counter/counter.admin.view.php index d18b2beaf..ccfb9f1a5 100644 --- a/modules/counter/counter.admin.view.php +++ b/modules/counter/counter.admin.view.php @@ -41,22 +41,19 @@ class counterAdminView extends counter $oCounterModel = getModel('counter'); // get a total count and daily count - $site_module_info = Context::get('site_module_info'); - $status = $oCounterModel->getStatus(array(0, $selected_date), $site_module_info->site_srl); - + $status = $oCounterModel->getStatus(array(0, $selected_date)); Context::set('total_counter', $status[0]); Context::set('selected_day_counter', $status[$selected_date]); // get data by time, day, month, and year $type = Context::get('type'); - if(!$type) { $type = 'day'; Context::set('type', $type); } - $detail_status = $oCounterModel->getHourlyStatus($type, $selected_date, $site_module_info->site_srl); + $detail_status = $oCounterModel->getHourlyStatus($type, $selected_date); Context::set('detail_status', $detail_status); // display diff --git a/modules/counter/counter.class.php b/modules/counter/counter.class.php index 19be75d83..f6aa96ddc 100644 --- a/modules/counter/counter.class.php +++ b/modules/counter/counter.class.php @@ -25,7 +25,13 @@ class counter extends ModuleObject */ function checkUpdate() { - return FALSE; + $oDB = DB::getInstance(); + if ($oDB->isTableExists('counter_site_status')) + { + return true; + } + + return false; } /** @@ -35,7 +41,11 @@ class counter extends ModuleObject */ function moduleUpdate() { - + $oDB = DB::getInstance(); + if ($oDB->isTableExists('counter_site_status')) + { + $oDB->dropTable('counter_site_status'); + } } /** diff --git a/modules/counter/counter.controller.php b/modules/counter/counter.controller.php index 6bb6fce21..f44724eeb 100644 --- a/modules/counter/counter.controller.php +++ b/modules/counter/counter.controller.php @@ -37,178 +37,98 @@ class counterController extends counter */ function counterExecute() { - $oDB = DB::getInstance(); - $oDB->begin(); - - $site_module_info = Context::get('site_module_info'); - $site_srl = (int) $site_module_info->site_srl; - - // Check the logs - $oCounterModel = getModel('counter'); - - if($oCounterModel->isInsertedTodayStatus($site_srl)) + if(CounterModel::isLogged()) { - if($oCounterModel->isLogged($site_srl)) - { - // Register pageview - $this->insertPageView($site_srl); - } - else // If unregistered IP - { - // Leave logs - $this->insertLog($site_srl); - // Register unique and pageview - $this->insertUniqueVisitor($site_srl); - } + $this->insertPageView(); } - else // Register today's row if not exist + else { - $this->insertTodayStatus(0, $site_srl); - // check user if the previous row exists + $this->insertUniqueVisitor(); } - - $oDB->commit(); } /** * Leave logs * - * @param integer $site_srl - * @return Object result of count query + * @return void */ - function insertLog($site_srl = 0) + public function insertLog() { $args = new stdClass(); - $args->regdate = date("YmdHis"); + $args->regdate = date('YmdHis'); $args->user_agent = substr($_SERVER['HTTP_USER_AGENT'], 0, 250); - $args->site_srl = $site_srl; - - return executeQuery('counter.insertCounterLog', $args); + $args->site_srl = 0; + executeQuery('counter.insertCounterLog', $args); } /** * Register the unique visitor * - * @param integer $site_srl * @return void */ - function insertUniqueVisitor($site_srl = 0) + public function insertUniqueVisitor() { + $oDB = DB::getInstance(); + $oDB->begin(); + $args = new stdClass(); - $args->regdate = '0,' . date('Ymd'); - - if($site_srl) + $args->regdate = [0, $date = date('Ymd')]; + executeQuery('counter.updateCounterUnique', $args); + + $affected_rows = $oDB->getAffectedRows(); + if ($affected_rows == 1) { - $args->site_srl = $site_srl; - $output = executeQuery('counter.updateSiteCounterUnique', $args); + $args = new stdClass; + $args->regdate = $date; + executeQuery('counter.insertTodayStatus', $args); } - else + if ($affected_rows == 0) { - $output = executeQuery('counter.updateCounterUnique', $args); + $args = new stdClass; + $args->regdate = 0; + executeQuery('counter.insertTodayStatus', $args); } + + $this->insertLog(); + + $oDB->commit(); } /** * Register pageview * - * @param integer $site_srl * @return void */ - function insertPageView($site_srl = 0) + public function insertPageView() { $args = new stdClass; - $args->regdate = '0,' . date('Ymd'); - - if($site_srl) - { - $args->site_srl = $site_srl; - executeQuery('counter.updateSiteCounterPageview', $args); - } - else - { - executeQuery('counter.updateCounterPageview', $args); - } + $args->regdate = [0, date('Ymd')]; + executeQuery('counter.updateCounterPageview', $args); } /** - * Add the total counter status - * - * @param integer $site_srl - * @return void + * @deprecated */ - function insertTotalStatus($site_srl = 0) + public function insertTodayStatus() { - $args = new stdClass(); - $args->regdate = 0; - - if($site_srl) - { - $args->site_srl = $site_srl; - executeQuery('counter.insertSiteTodayStatus', $args); - } - else - { - executeQuery('counter.insertTodayStatus', $args); - } + $this->insertUniqueVisitor(); } /** - * Add today's counter status - * - * @param integer $regdate date(YYYYMMDD) type - * @param integer $site_srl - * @return void + * @deprecated */ - function insertTodayStatus($regdate = 0, $site_srl = 0) + public function insertTotalStatus() { - $args = new stdClass(); - if($regdate) - { - $args->regdate = $regdate; - } - else - { - $args->regdate = date("Ymd"); - } - - if($site_srl) - { - $args->site_srl = $site_srl; - $query_id = 'counter.insertSiteTodayStatus'; - - $u_args = new stdClass(); - $u_args->site_srl = $site_srl; // /< when inserting a daily row, attempt to inser total rows(where regdate=0) together - executeQuery($query_id, $u_args); - } - else - { - $query_id = 'counter.insertTodayStatus'; - executeQuery($query_id); // /< when inserting a daily row, attempt to inser total rows(where regdate=0) together - } - - $output = executeQuery($query_id, $args); - - // Leave logs - $this->insertLog($site_srl); - - // Register unique and pageview - $this->insertUniqueVisitor($site_srl); + } - + /** - * Delete counter logs of the specific virtual site - * - * @param integer $site_srl - * @return void + * @deprecated */ - function deleteSiteCounterLogs($site_srl) + public function deleteSiteCounterLogs() { - $args = new stdClass(); - $args->site_srl = $site_srl; - executeQuery('counter.deleteSiteCounter', $args); - executeQuery('counter.deleteSiteCounterLog', $args); + } - } /* End of file counter.controller.php */ /* Location: ./modules/counter/counter.controller.php */ diff --git a/modules/counter/counter.model.php b/modules/counter/counter.model.php index aae4ed9d5..d01054e6e 100644 --- a/modules/counter/counter.model.php +++ b/modules/counter/counter.model.php @@ -20,13 +20,12 @@ class counterModel extends counter /** * Verify logs * - * @param integer $site_srl Site_srl * @return bool */ - function isLogged($site_srl = 0) + public static function isLogged() { $date = date('Ymd'); - if (isset($_SESSION['counter_logged'][$date]) && $_SESSION['counter_logged'][$date]) + if (isset($_SESSION['counter_logged'][$date])) { return true; } @@ -34,7 +33,6 @@ class counterModel extends counter $args = new stdClass(); $args->regdate = $date; $args->ipaddress = \RX_CLIENT_IP; - $args->site_srl = $site_srl; $output = executeQuery('counter.getCounterLog', $args); $iplogged = $output->data->count ? true : false; if ($iplogged) @@ -48,63 +46,25 @@ class counterModel extends counter /** * Check if a row of today's counter status exists * - * @param integer $site_srl Site_srl - * @return bool + * @deprecated */ - function isInsertedTodayStatus($site_srl = 0) + public static function isInsertedTodayStatus() { - $args = new stdClass; - $args->regdate = date('Ymd'); - - $cache_key = 'counter:insertedTodayStatus:' . $site_srl . '_' . $args->regdate; - $insertedTodayStatus = Rhymix\Framework\Cache::get($cache_key); - - if(!$insertedTodayStatus) - { - if($site_srl) - { - $args->site_srl = $site_srl; - $output = executeQuery('counter.getSiteTodayStatus', $args); - } - else - { - $output = executeQuery('counter.getTodayStatus', $args); - } - - $insertedTodayStatus = !!$output->data->count; - - if($insertedTodayStatus) - { - Rhymix\Framework\Cache::set($cache_key, true, 0, true); - $_old_date = date('Ymd', strtotime('-1 day')); - Rhymix\Framework\Cache::delete('counter:insertedTodayStatus:' . $site_srl . '_' . $_old_date); - } - } - - return $insertedTodayStatus; + } /** * Get access statistics for a given date * * @param mixed $selected_date Date(YYYYMMDD) list - * @param integer $site_srl Site_srl * @return Object */ - function getStatus($selected_date, $site_srl = 0) + public static function getStatus($selected_date) { // If more than one date logs are selected $args = new stdClass(); $args->regdate = is_array($selected_date) ? join(',', $selected_date) : $selected_date; - if($site_srl) - { - $args->site_srl = $site_srl; - $output = executeQuery('counter.getSiteCounterStatusDays', $args); - } - else - { - $output = executeQuery('counter.getCounterStatusDays', $args); - } + $output = executeQueryArray('counter.getCounterStatusDays', $args); $status = $output->data; if(!is_array($selected_date)) @@ -112,7 +72,6 @@ class counterModel extends counter return $status; } - if(!is_array($status)) $status = array($status); $output = array(); foreach($status as $val) { @@ -127,10 +86,10 @@ class counterModel extends counter * * @param string $type Choice time interval (year, week, month, hour or DEFAULT) * @param integer $selected_date Date(YYYYMMDD) - * @param integer $site_srl Site_srl + * @param integer $site_srl unused * @return Object */ - function getHourlyStatus($type = 'hour', $selected_date, $site_srl = 0, $isPageView = false) + public static function getHourlyStatus($type = 'hour', $selected_date, $site_srl = 0, $isPageView = false) { $max = 0; $sum = 0; @@ -140,17 +99,7 @@ class counterModel extends counter { case 'year' : // Get a date to start counting - if($site_srl) - { - $args = new stdClass(); - $args->site_srl = $site_srl; - $output = executeQuery('counter.getSiteStartLogDate', $args); - } - else - { - $output = executeQuery('counter.getStartLogDate'); - } - + $output = executeQuery('counter.getStartLogDate', new stdClass); if(!($start_year = substr($output->data->regdate, 0, 4))) { $start_year = date("Y"); @@ -161,17 +110,7 @@ class counterModel extends counter $args = new stdClass(); $args->start_date = sprintf('%04d0000', $i); $args->end_date = sprintf('%04d1231', $i); - - if($site_srl) - { - $args->site_srl = $site_srl; - $output = executeQuery('counter.getSiteCounterStatus', $args); - } - else - { - $output = executeQuery('counter.getCounterStatus', $args); - } - + $output = executeQuery('counter.getCounterStatus', $args); $count = (int)($isPageView ? $output->data->pageview : $output->data->unique_visitor); $status->list[$i] = $count; @@ -207,17 +146,7 @@ class counterModel extends counter $args = new stdClass(); $args->start_date = $day; $args->end_date = $day; - - if($site_srl) - { - $args->site_srl = $site_srl; - $output = executeQuery('counter.getSiteCounterStatus', $args); - } - else - { - $output = executeQuery('counter.getCounterStatus', $args); - } - + $output = executeQuery('counter.getCounterStatus', $args); $count = (int)($isPageView ? $output->data->pageview : $output->data->unique_visitor); $status->list[$day] = $count; @@ -234,17 +163,7 @@ class counterModel extends counter $args = new stdClass(); $args->start_date = sprintf('%04d%02d00', $year, $i); $args->end_date = sprintf('%04d%02d31', $year, $i); - - if($site_srl) - { - $args->site_srl = $site_srl; - $output = executeQuery('counter.getSiteCounterStatus', $args); - } - else - { - $output = executeQuery('counter.getCounterStatus', $args); - } - + $output = executeQuery('counter.getCounterStatus', $args); $count = (int)($isPageView ? $output->data->pageview : $output->data->unique_visitor); $status->list[$i] = $count; @@ -260,18 +179,7 @@ class counterModel extends counter $args = new stdClass(); $args->start_date = sprintf('%08d%02d0000', $selected_date, $i); $args->end_date = sprintf('%08d%02d5959', $selected_date, $i); - - if($site_srl) - { - $args->site_srl = $site_srl; - $output = executeQuery('counter.getSiteCounterLogStatus', $args); - } - else - { - $args->site_srl = 0; - $output = executeQuery('counter.getCounterLogStatus', $args); - } - + $output = executeQuery('counter.getCounterLogStatus', $args); $count = (int) $output->data->count; $status->list[$i] = $count; @@ -291,17 +199,7 @@ class counterModel extends counter $args = new stdClass(); $args->start_date = sprintf('%04d%02d%02d', $year, $month, $i); $args->end_date = sprintf('%04d%02d%02d', $year, $month, $i); - - if($site_srl) - { - $args->site_srl = $site_srl; - $output = executeQuery('counter.getSiteCounterStatus', $args); - } - else - { - $output = executeQuery('counter.getCounterStatus', $args); - } - + $output = executeQuery('counter.getCounterStatus', $args); $count = (int)($isPageView ? $output->data->pageview : $output->data->unique_visitor); $status->list[$i] = $count; @@ -322,7 +220,7 @@ class counterModel extends counter { //for last week $date1 = date('Ymd', strtotime('-1 week')); - $output1 = $this->getHourlyStatus('week', $date1); + $output1 = self::getHourlyStatus('week', $date1); $tmp = array(); foreach($output1->list as $key => $value) @@ -333,7 +231,7 @@ class counterModel extends counter //for this week $date2 = date('Ymd'); - $output2 = $this->getHourlyStatus('week', $date2); + $output2 = self::getHourlyStatus('week', $date2); $tmp = array(); foreach($output2->list as $key => $value) @@ -350,7 +248,7 @@ class counterModel extends counter { //for last week $date1 = date('Ymd', strtotime('-1 week')); - $output1 = $this->getHourlyStatus('week', $date1, 0, TRUE); + $output1 = self::getHourlyStatus('week', $date1, 0, TRUE); $tmp = array(); foreach($output1->list as $key => $value) @@ -361,7 +259,7 @@ class counterModel extends counter //for this week $date2 = date('Ymd'); - $output2 = $this->getHourlyStatus('week', $date2, 0, TRUE); + $output2 = self::getHourlyStatus('week', $date2, 0, TRUE); $tmp = array(); foreach($output2->list as $key => $value) diff --git a/modules/counter/queries/deleteSiteCounter.xml b/modules/counter/queries/deleteSiteCounter.xml deleted file mode 100644 index ca5e22ffd..000000000 --- a/modules/counter/queries/deleteSiteCounter.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/modules/counter/queries/deleteSiteCounterLog.xml b/modules/counter/queries/deleteSiteCounterLog.xml deleted file mode 100644 index 78654aabd..000000000 --- a/modules/counter/queries/deleteSiteCounterLog.xml +++ /dev/null @@ -1,8 +0,0 @@ - - -
- - - - - diff --git a/modules/counter/queries/getCounterLog.xml b/modules/counter/queries/getCounterLog.xml index 361779848..5c7fc40b1 100644 --- a/modules/counter/queries/getCounterLog.xml +++ b/modules/counter/queries/getCounterLog.xml @@ -6,7 +6,7 @@ - + diff --git a/modules/counter/queries/getCounterLogStatus.xml b/modules/counter/queries/getCounterLogStatus.xml index aea31ad4a..e3ebed0a3 100644 --- a/modules/counter/queries/getCounterLogStatus.xml +++ b/modules/counter/queries/getCounterLogStatus.xml @@ -6,7 +6,7 @@ - + diff --git a/modules/counter/queries/getSiteCounterStatus.xml b/modules/counter/queries/getSiteCounterStatus.xml deleted file mode 100644 index e69609ec8..000000000 --- a/modules/counter/queries/getSiteCounterStatus.xml +++ /dev/null @@ -1,14 +0,0 @@ - - -
- - - - - - - - - - - diff --git a/modules/counter/queries/getSiteCounterStatusDays.xml b/modules/counter/queries/getSiteCounterStatusDays.xml deleted file mode 100644 index 79e85c5a2..000000000 --- a/modules/counter/queries/getSiteCounterStatusDays.xml +++ /dev/null @@ -1,12 +0,0 @@ - - -
- - - - - - - - - diff --git a/modules/counter/queries/getSiteLogDate.xml b/modules/counter/queries/getSiteLogDate.xml index eaff3ed82..79ae32bb9 100644 --- a/modules/counter/queries/getSiteLogDate.xml +++ b/modules/counter/queries/getSiteLogDate.xml @@ -1,4 +1,4 @@ - +
diff --git a/modules/counter/queries/getSiteStartLogDate.xml b/modules/counter/queries/getSiteStartLogDate.xml deleted file mode 100644 index 74f170c30..000000000 --- a/modules/counter/queries/getSiteStartLogDate.xml +++ /dev/null @@ -1,12 +0,0 @@ - - -
- - - - - - - - - diff --git a/modules/counter/queries/getSiteTodayStatus.xml b/modules/counter/queries/getSiteTodayStatus.xml deleted file mode 100644 index b18107cca..000000000 --- a/modules/counter/queries/getSiteTodayStatus.xml +++ /dev/null @@ -1,12 +0,0 @@ - - -
- - - - - - - - - diff --git a/modules/counter/queries/insertCounterLog.xml b/modules/counter/queries/insertCounterLog.xml index 8542276d1..1d71fb048 100644 --- a/modules/counter/queries/insertCounterLog.xml +++ b/modules/counter/queries/insertCounterLog.xml @@ -3,8 +3,8 @@
- - + + diff --git a/modules/counter/queries/insertSiteTodayStatus.xml b/modules/counter/queries/insertSiteTodayStatus.xml deleted file mode 100644 index 59f9c33b5..000000000 --- a/modules/counter/queries/insertSiteTodayStatus.xml +++ /dev/null @@ -1,11 +0,0 @@ - - -
- - - - - - - - diff --git a/modules/counter/queries/insertTodayStatus.xml b/modules/counter/queries/insertTodayStatus.xml index 1aa8d85f6..2fc433a7e 100644 --- a/modules/counter/queries/insertTodayStatus.xml +++ b/modules/counter/queries/insertTodayStatus.xml @@ -4,7 +4,7 @@ - - + + diff --git a/modules/counter/queries/updateSiteCounterPageview.xml b/modules/counter/queries/updateSiteCounterPageview.xml deleted file mode 100644 index 37f296734..000000000 --- a/modules/counter/queries/updateSiteCounterPageview.xml +++ /dev/null @@ -1,12 +0,0 @@ - - -
- - - - - - - - - diff --git a/modules/counter/queries/updateSiteCounterUnique.xml b/modules/counter/queries/updateSiteCounterUnique.xml deleted file mode 100644 index 2f0317aa7..000000000 --- a/modules/counter/queries/updateSiteCounterUnique.xml +++ /dev/null @@ -1,13 +0,0 @@ - - -
- - - - - - - - - - diff --git a/modules/counter/queries/updateSiteTotalCounterUnique.xml b/modules/counter/queries/updateSiteTotalCounterUnique.xml deleted file mode 100644 index 7fc6228cb..000000000 --- a/modules/counter/queries/updateSiteTotalCounterUnique.xml +++ /dev/null @@ -1,13 +0,0 @@ - - -
- - - - - - - - - - diff --git a/modules/counter/schemas/counter_site_status.xml b/modules/counter/schemas/counter_site_status.xml deleted file mode 100644 index ad867115d..000000000 --- a/modules/counter/schemas/counter_site_status.xml +++ /dev/null @@ -1,6 +0,0 @@ -
- - - - -