From 69cd4c6c4c888a6b85ea860bfddbf594b1b566b2 Mon Sep 17 00:00:00 2001 From: zero Date: Tue, 24 Aug 2010 23:46:47 +0000 Subject: [PATCH] =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=20=EB=8C=80?= =?UTF-8?q?=EC=8B=9C=EB=B3=B4=EB=93=9C=20=EC=A0=91=EC=86=8D=20=ED=86=B5?= =?UTF-8?q?=EA=B3=84=EB=A5=BC=20=EA=B0=80=EC=83=81=20=EC=82=AC=EC=9D=B4?= =?UTF-8?q?=ED=8A=B8=EA=B9=8C=EC=A7=80=20=EB=AA=A8=EB=91=90=20=ED=8F=AC?= =?UTF-8?q?=ED=95=A8=ED=95=98=EB=8F=84=EB=A1=9D=20=ED=95=98=EA=B3=A0=20?= =?UTF-8?q?=EC=BF=BC=EB=A6=AC=20=EC=86=8D=EB=8F=84=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@7646 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/admin/admin.admin.view.php | 138 ++++++++---------- modules/admin/queries/getSiteVisitors.xml | 9 ++ .../admin/queries/getTotalSiteVisitors.xml | 8 + modules/admin/queries/getTotalVisitors.xml | 8 + modules/admin/queries/getVisitors.xml | 9 ++ modules/admin/tpl/css/dashboard.css | 3 +- modules/admin/tpl/index.html | 8 +- 7 files changed, 104 insertions(+), 79 deletions(-) create mode 100644 modules/admin/queries/getSiteVisitors.xml create mode 100644 modules/admin/queries/getTotalSiteVisitors.xml create mode 100644 modules/admin/queries/getTotalVisitors.xml create mode 100644 modules/admin/queries/getVisitors.xml diff --git a/modules/admin/admin.admin.view.php b/modules/admin/admin.admin.view.php index 8912ad0a7..ac485e632 100644 --- a/modules/admin/admin.admin.view.php +++ b/modules/admin/admin.admin.view.php @@ -7,6 +7,41 @@ class adminAdminView extends admin { + /** + * @brief Initilization + * @return none + **/ + function init() { + + // forbit access if the user is not an administrator + $oMemberModel = &getModel('member'); + $logged_info = $oMemberModel->getLoggedInfo(); + if($logged_info->is_admin!='Y') return $this->stop("msg_is_not_administrator"); + + // change into administration layout + $this->setTemplatePath($this->module_path.'tpl'); + $this->setLayoutPath($this->getTemplatePath()); + $this->setLayoutFile('layout.html'); + + $this->loadSideBar(); + + // Retrieve the list of installed modules + + $db_info = Context::getDBInfo(); + + Context::set('time_zone_list', $GLOBALS['time_zone']); + Context::set('time_zone', $GLOBALS['_time_zone']); + Context::set('use_rewrite', $db_info->use_rewrite=='Y'?'Y':'N'); + Context::set('use_optimizer', $db_info->use_optimizer!='N'?'Y':'N'); + Context::set('use_spaceremover', $db_info->use_spaceremover?$db_info->use_spaceremover:'Y'); + Context::set('qmail_compatibility', $db_info->qmail_compatibility=='Y'?'Y':'N'); + Context::set('use_db_session', $db_info->use_db_session=='N'?'N':'Y'); + Context::set('use_ssl', $db_info->use_ssl?$db_info->use_ssl:"none"); + if($db_info->http_port) Context::set('http_port', $db_info->http_port); + if($db_info->https_port) Context::set('https_port', $db_info->https_port); + + } + function loadSideBar() { $oModuleModel = &getModel('module'); @@ -60,41 +95,6 @@ Context::loadJavascriptPlugin('watchinput'); } - /** - * @brief Initilization - * @return none - **/ - function init() { - - // forbit access if the user is not an administrator - $oMemberModel = &getModel('member'); - $logged_info = $oMemberModel->getLoggedInfo(); - if($logged_info->is_admin!='Y') return $this->stop("msg_is_not_administrator"); - - // change into administration layout - $this->setTemplatePath($this->module_path.'tpl'); - $this->setLayoutPath($this->getTemplatePath()); - $this->setLayoutFile('layout.html'); - - $this->loadSideBar(); - - // Retrieve the list of installed modules - - $db_info = Context::getDBInfo(); - - Context::set('time_zone_list', $GLOBALS['time_zone']); - Context::set('time_zone', $GLOBALS['_time_zone']); - Context::set('use_rewrite', $db_info->use_rewrite=='Y'?'Y':'N'); - Context::set('use_optimizer', $db_info->use_optimizer!='N'?'Y':'N'); - Context::set('use_spaceremover', $db_info->use_spaceremover?$db_info->use_spaceremover:'Y'); - Context::set('qmail_compatibility', $db_info->qmail_compatibility=='Y'?'Y':'N'); - Context::set('use_db_session', $db_info->use_db_session=='N'?'N':'Y'); - Context::set('use_ssl', $db_info->use_ssl?$db_info->use_ssl:"none"); - if($db_info->http_port) Context::set('http_port', $db_info->http_port); - if($db_info->https_port) Context::set('https_port', $db_info->https_port); - - } - /** * @brief Display main administration page * @return none @@ -151,60 +151,50 @@ Context::set('addon_list', $addon_list); // 방문자수 - $oCounterModel = &getModel('counter'); $time = time(); $w = date("D"); - while(date("D",$time) != "Sun") { + while(date("D",$time) != "Sat") { $time += 60*60*24; } + $end_time = $time; + $end_date = date("Ymd",$time); $time -= 60*60*24; while(date("D",$time)!="Sun") { $thisWeek[] = date("Ymd",$time); $time -= 60*60*24; } - $thisWeek[] = date("Ymd",$time); - asort($thisWeek); - $thisWeekCounter = $oCounterModel->getStatus($thisWeek); + $start_time = $time; + $start_date = date("Ymd",$time-60*60*24*7); - $time -= 60*60*24; - while(date("D",$time)!="Sun") { - $lastWeek[] = date("Ymd",$time); - $time -= 60*60*24; + $args->start_date = $start_date; + $args->end_date = $end_date; + $output = executeQueryArray('admin.getVisitors', $args); + $status->week_max = 0; + if(count($output->data)) { + foreach($output->data as $key => $val) { + $visitors[$val->regdate] = $val->unique_visitor; + if($val->unique_visitor>$status->week_max) $status->week_max = $val->unique_visitor; + } } - $lastWeek[] = date("Ymd",$time); - asort($lastWeek); - $lastWeekCounter = $oCounterModel->getStatus($lastWeek); - - $max = 0; - foreach($thisWeek as $day) { - $v = (int)$thisWeekCounter[$day]->unique_visitor; - if($v && $v>$max) $max = $v; - $status->week[date("D",strtotime($day))]->this = $v; - } - foreach($lastWeek as $day) { - $v = (int)$lastWeekCounter[$day]->unique_visitor; - if($v && $v>$max) $max = $v; - $status->week[date("D",strtotime($day))]->last = $v; - } - $status->week_max = $max; - $idx = 0; - foreach($status->week as $key => $val) { - $_item[] = sprintf("", $idx, $thisWeek[$idx]); - $_thisWeek[] = $val->this; - $_lastWeek[] = $val->last; - $idx++; + $output = executeQueryArray('admin.getSiteVisitors', $args); + if(count($output->data)) { + foreach($output->data as $key => $val) { + $visitors[$val->regdate] += $val->unique_visitor; + if($val->unique_visitor>$status->week_max) $status->week_max = $val->unique_visitor; + } } - $buff = ''.implode('',$_item).''; - $buff .= ''.implode('|',$_thisWeek).''; - $buff .= ''.implode('|',$_lastWeek).''; - $buff .= ''; - Context::set('xml', $buff); + for($i=$start_time;$i<$end_time;$i+=60*60*24) { + $status->week[date("Y.m.d",$i)]->this = (int)$visitors[date("Ymd",$i)]; + $status->week[date("Y.m.d",$i)]->last = (int)$visitors[date("Ymd",$i-60*60*24*7)]; + } // 각종 통계 정보를 구함 - $counter = $oCounterModel->getStatus(array(0,date("Ymd")),$this->site_srl); - $status->total_visitor = $counter[0]->unique_visitor; - $status->visitor = $counter[date("Ymd")]->unique_visitor; + $output = executeQuery('admin.getTotalVisitors'); + $status->total_visitor = $output->data->count; + $output = executeQuery('admin.getTotalSiteVisitors'); + $status->total_visitor += $output->data->count; + $status->visitor = $visitors[date("Ymd")]; // 오늘의 댓글 수 $args->regdate = date("Ymd"); diff --git a/modules/admin/queries/getSiteVisitors.xml b/modules/admin/queries/getSiteVisitors.xml new file mode 100644 index 000000000..e1c05f637 --- /dev/null +++ b/modules/admin/queries/getSiteVisitors.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/modules/admin/queries/getTotalSiteVisitors.xml b/modules/admin/queries/getTotalSiteVisitors.xml new file mode 100644 index 000000000..1940f82ab --- /dev/null +++ b/modules/admin/queries/getTotalSiteVisitors.xml @@ -0,0 +1,8 @@ + + +
+ + + + + diff --git a/modules/admin/queries/getTotalVisitors.xml b/modules/admin/queries/getTotalVisitors.xml new file mode 100644 index 000000000..e81f9a586 --- /dev/null +++ b/modules/admin/queries/getTotalVisitors.xml @@ -0,0 +1,8 @@ + + +
+ + + + + diff --git a/modules/admin/queries/getVisitors.xml b/modules/admin/queries/getVisitors.xml new file mode 100644 index 000000000..ce0e8daff --- /dev/null +++ b/modules/admin/queries/getVisitors.xml @@ -0,0 +1,9 @@ + + +
+ + + + + + diff --git a/modules/admin/tpl/css/dashboard.css b/modules/admin/tpl/css/dashboard.css index f6b6f6fb0..61eac0e0f 100644 --- a/modules/admin/tpl/css/dashboard.css +++ b/modules/admin/tpl/css/dashboard.css @@ -114,6 +114,7 @@ .section th{ padding-left:18px; padding-right:12px; white-space:nowrap; color:#8b8b8b; background:url(../img/iconDashboardSummary.gif) no-repeat 2px 9px;} .section td{ color:#555;} .section td strong{ font-size:11px; color:#ea3f22;} +.section td.center { text-align:center;} .section td .description{ color:#8b8b8b;} .section td .description strong{ color:#8b8b8b;} -.section thead th{ background:none; font-weight:bold; padding:6px 5px 6px 0; } +.section thead th{ background:none; background-color:#efefef; font-weight:bold; padding:6px 5px 6px 5px; } diff --git a/modules/admin/tpl/index.html b/modules/admin/tpl/index.html index 2214d3592..e5ab35186 100644 --- a/modules/admin/tpl/index.html +++ b/modules/admin/tpl/index.html @@ -145,7 +145,7 @@
-
{$key}
+
{$key}{$key}
{$lang->last_week}:{number_format($val->last)}
{$lang->this_week}:{number_format($val->this)}
@@ -284,15 +284,15 @@
- - + -
{cut_str($val->title,24)}{$lang->cmd_setup} + {$lang->cmd_setup} {$lang->use} {$lang->notuse} + {$lang->use}