Analytics 제거 (차후 안정화 후 Core 배포 여부 결정 예정)

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@7657 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2010-08-25 04:50:53 +00:00
parent d22cefd532
commit 13016dbf8d
44 changed files with 0 additions and 3267 deletions

View file

@ -1,18 +0,0 @@
<?php
class analyticsAdminController extends analytics {
function init(){
}
function procAnalyticsAdminInsertAPIKey() {
// API KEY 값을 가지고 온다.
$args = Context::gets('api_key');
// module controlle 객체 생성하여 Key값 저장
$oModuleController = &getController('module');
$output = $oModuleController->insertModuleConfig('analytics', $args);
return $output;
}
}
?>

View file

@ -1,269 +0,0 @@
<?php
class analyticsAdminView extends analytics{
function init(){
$template_path = sprintf("%stpl/",$this->module_path);
$this->setTemplatePath($template_path);
}
function dispAnalyticsAdminContent(){
$oModuleModel = &getModel('module');
$module_config = $oModuleModel->getModuleConfig('analytics');
if ($module_config->api_key){
Context::set('api_key', $module_config->api_key);
}
$this->setTemplateFile('index');
}
function _setDefaultData($method){
$oModuleModel = &getModel('module');
$module_config = $oModuleModel->getModuleConfig('analytics');
Context::set('api_key', $module_config->api_key);
Context::set('method', $method);
$end_date = $this->_getEndDate(Context::get('end_date'));
$start_date = $this->_getStartDate(Context::get('start_date'), $end_date);
Context::set('start_date', $start_date);
Context::set('end_date', $end_date);
$return_param = array('api_key' => $module_config->api_key
,'method' => $method
,'start_date' => $start_date
,'end_date' => $end_date);
return $return_param;
}
function dispAnalyticsVisitInfoAdminVisitChart(){
$param = $this->_setDefaultData('visit');
Context::set('isOnlyEndDate', 'false');
Context::set('chart_type', 'line');
$json_url = $this->_getJSONData($param['api_key'], 'visit', array('start_date' => $param['start_date'], 'end_date' => $param['end_date']));
Context::set('json_url', $json_url);
$this->setTemplateFile('visit_info_visitTime');
}
function dispAnalyticsVisitInfoAdminVisitPageViewChart(){
$param = $this->_setDefaultData('visitPageView');
Context::set('isOnlyEndDate', 'false');
Context::set('chart_type', 'line');
$json_url = $this->_getJSONData($param['api_key'], 'visitPageView', array('start_date' => $param['start_date'], 'end_date' => $param['end_date']));
Context::set('json_url', $json_url);
$this->setTemplateFile('visit_info_visitTime');
}
function dispAnalyticsVisitInfoAdminVisitTimeChart(){
$param = $this->_setDefaultData('visitTime');
Context::set('isOnlyEndDate', 'false');
Context::set('chart_type', 'line');
$json_url = $this->_getJSONData($param['api_key'], 'visitTime', array('start_date' => $param['start_date'], 'end_date' => $param['end_date']));
Context::set('json_url', $json_url);
debugPrint($json_url);
$this->setTemplateFile('visit_info_visitTime');
}
function dispAnalyticsVisitInfoAdminVisitDayChart(){
global $lang;
$param = $this->_setDefaultData('visitDay');
Context::set('isOnlyEndDate', 'false');
Context::set('chart_type', 'line');
$json_data = $this->_getJSONData($param['api_key'], 'visitDay', array('start_date' => $param['start_date'], 'end_date' => $param['end_date']));
Context::set('json_url', $json_data);
$this->setTemplateFile('visit_info_visitTime');
}
function dispAnalyticsVisitInfoAdminVisitBackChart(){
global $lang;
$param = $this->_setDefaultData('visitBack');
Context::set('isOnlyEndDate', 'true');
Context::set('chart_type', 'pie');
$json_data = $this->_getJSONData($param['api_key'], 'visitBack', array('start_date' => $param['start_date'], 'end_date' => $param['end_date']));
Context::set('json_url', $json_data);
$this->setTemplateFile('visit_info_visitTime');
}
function dispAnalyticsVisitInfoAdminVisitStayTimeChart(){
$param = $this->_setDefaultData('visitStayTime');
Context::set('isOnlyEndDate', 'false');
Context::set('chart_type', 'pie');
$json_url = $this->_getJSONData($param['api_key'], 'visitStayTime', array('start_date' => $param['start_date'], 'end_date' => $param['end_date']));
Context::set('json_url', $json_url);
$this->setTemplateFile('visit_info_visitTime');
}
function dispAnalyticsVisitInfoAdminVisitPathChart(){
$param = $this->_setDefaultData('visitPath');
Context::set('isOnlyEndDate', 'false');
Context::set('chart_type', 'pie');
$json_url = $this->_getJSONData($param['api_key'], 'visitPath', array('start_date' => $param['start_date'], 'end_date' => $param['end_date']));
Context::set('json_url', $json_url);
$this->setTemplateFile('visit_info_visitTime');
}
/**
* 유입경로 분석
*
**/
function _setPageData($args){
global $lang;
$page = Context::get('page');
if (!$page)
$page = 1;
$param = array();
$param['start_date'] = $args['start_date'];
$param['end_date'] = $args['end_date'];
$param['page'] = $page;
$xml_obj = $this->_getXMLData($args['api_key'], $args['method'], $param);
Context::set('parsed_data', $xml_obj->response);
Context::set('value_names', $lang->analytics_api_valuname[$args['method']]);
//페이지 핸들링을 위한 데이터
$page_navigation = new PageHandler($xml_obj->response->total_count, $xml_obj->response->page_total_count->body, $page, 5);
Context::set('page_navigation', $page_navigation);
Context::set('page', $page);
}
function _dispPageContent($method){
$param = $this->_setDefaultData($method);
Context::set('isOnlyEndDate', 'false');
$page = Context::get('page');
$json_url = $this->_getJSONData($param['api_key'], $method, array('start_date' => $param['start_date'], 'end_date' => $param['end_date'], 'page' => $page));
Context::set('json_url', $json_url);
$this->setTemplateFile('page_info_pagePop');
}
function dispAnalyticsComeInfoAdminComeEngineChart(){
$param = $this->_setDefaultData('comeEngine');
Context::set('isOnlyEndDate', 'false');
Context::set('chart_type', 'pie');
$page = Context::get('page');
$json_url = $this->_getJSONData($param['api_key'], 'comeEngine', array('start_date' => $param['start_date'], 'end_date' => $param['end_date'], 'page' => $page));
Context::set('json_url', $json_url);
$this->setTemplateFile('come_info_chart');
}
function dispAnalyticsComeInfoAdminComeSearchTextChart(){
$param = $this->_setDefaultData('comeSearchText');
Context::set('isOnlyEndDate', 'false');
Context::set('chart_type', 'pie');
$page = Context::get('page');
$json_url = $this->_getJSONData($param['api_key'], 'comeSearchText', array('start_date' => $param['start_date'], 'end_date' => $param['end_date'], 'page' => $page));
Context::set('json_url', $json_url);
$this->setTemplateFile('come_info_chart');
}
function dispAnalyticsComeInfoAdminComeUrlChart(){
$param = $this->_setDefaultData('comeUrl');
Context::set('isOnlyEndDate', 'false');
$page = Context::get('page');
$json_url = $this->_getJSONData($param['api_key'], 'comeUrl', array('start_date' => $param['start_date'], 'end_date' => $param['end_date'], 'page' => $page));
Context::set('json_url', $json_url);
$this->setTemplateFile('come_info_table');
}
function dispAnalyticsPageInfoAdminPagePopChart()
{
$this->_dispPageContent('pagePop');
}
function dispAnalyticsPageInfoAdminPageDrillDownChart()
{
global $lang;
$_default_data = $this->_setDefaultData('pageDrillDown');
Context::set('isOnlyEndDate', 'false');
$param = array();
$param['start_date'] = $_default_data['start_date'];
$param['end_date'] = $_default_data['end_date'];
$json_url = $this->_getJSONData($_default_data['api_key'], $_default_data['method'], $param);
Context::set('json_url', $json_url);
$this->setTemplateFile('page_info_pageDrillDown');
}
function dispAnalyticsPageInfoAdminPageStartChart(){
$this->_dispPageContent('pageStart');
}
function dispAnalyticsPageInfoAdminPageEndChart(){
$this->_dispPageContent('pageEnd');
}
function dispAnalyticsPageInfoAdminPageReturnChart(){
$this->_dispPageContent('pageReturn');
}
function _getEndDate($_date)
{
if (!$_date)
$date = date('Y-m-d', strtotime('now'));
else
$date = date('Y-m-d', strtotime($_date));
return $date;
}
function _getStartDate($_date, $_end_date)
{
if (!$_date)
{
$_date = strtotime('-7 day', strtotime($_end_date));
$date = date('Y-m-d', $_date);
}
else
$date = date('Y-m-d', strtotime($_date));
return $date;
}
}
?>

View file

@ -1,71 +0,0 @@
<?php
class analytics extends ModuleObject{
var $api_url = 'http://analytics.openapi.naver.com/?method=%s&apikey=%s';
function moduleInstall(){
$oModuleModel = &getModel('module');
$oModuleController = &getController('module');
if (!$oModuleModel->getTrigger('display', 'analytics', 'controller', 'triggerBeforeDisplay', 'before'))
$oModuleController->insertTrigger('display', 'analytics', 'controller', 'triggerBeforeDisplay', 'before');
return new Object();
}
function checkUpdate(){
$oModuleModel = &getModel('module');
if (!$oModuleModel->getTrigger('display', 'analytics', 'controller', 'triggerBeforeDisplay', 'before')) return true;
return false;
}
function moduleUpdate(){
$oModuleModel = &getModel('module');
$oModuleController = &getController('module');
if (!$oModuleModel->getTrigger('display', 'analytics', 'controller', 'triggerBeforeDisplay', 'before'))
$oModuleController->insertTrigger('display', 'analytics', 'controller', 'triggerBeforeDisplay', 'before');
}
function _getXMLData($api_key, $method, $param)
{
$url = $this->_getApiUrl($method, $api_key, $param);
$data = FileHandler::getRemoteResource($url, null, 3, 'GET', '');
if (!$data) return new Object(-1, 'msg_invalid_request');
$oParser = new XmlParser;
$xml_obj = $oParser->parse($data);
return $xml_obj;
}
function _getJSONData($api_key, $method, $param)
{
$param['jsonp'] = '?';
$url = $this->_getApiUrl($method, $api_key, $param);
/* $data = FileHandler::getRemoteResource($url, null, 3, 'GET', '');
if (!$data) return new Object(-1, 'msg_invalid_request');
$json_data = json_decode($data);
debugPrint($json_data);*/
return $url;
}
function _getApiUrl($method, $api_key, $param=array())
{
$url = sprintf($this->api_url, $method, $api_key);
foreach($param as $key => $val)
{
$url = $url.'&'.$key.'='.$val;
}
return $url;
}
}
?>

View file

@ -1,17 +0,0 @@
<?php
class analyticsController extends analytics {
function init(){
}
function triggerBeforeDisplay(&$obj){
$responseMethod = Context::getResponseMethod();
if ($responseMethod != 'HTML')
return;
$script = '<script type="text/javascript" src="http://static.analytics.openapi.naver.com/js/wcslog.js"></script><script type="text/javascript">if(!wcs_add) var wcs_add = {};wcs_add["wa"] = "AccoutId";wcs_do();</script>';
Context::addHtmlFooter( $script );
}
}
?>

View file

@ -1,483 +0,0 @@
<?php
class analyticsView extends analytics
{
function init()
{
$this->setTemplatePath($this->module_path.'tpl');
}
function dispAnalyticsAPIData()
{
$api_key = Context::get('api_key');
$method = Context::get('method');
$param = array();
$start_date = Context::get('start_date');
if ($start_date)
$param['start_date'] = $start_date;
$end_date = Context::get('end_date');
if ($end_date)
$param['end_date'] = $end_date;
$xml_obj = $this->_getXMLData($api_key, $method, $param);
if (!$xml_obj || $xml_obj->response->error->body != 0) return new Object(-1, 'msg_invalid_request');
if(!method_exists(&$this, '_parse'.ucfirst($method))) return new Object(-1, 'msg_undefined_method');
$parsed_data = call_user_method('_parse'.ucfirst($method), &$this, $xml_obj);
$parsed_data->method = $method;
Context::setResponseMethod('XMLRPC');
Context::set('parsed_data', $parsed_data);
switch($method)
{
case 'visitStayTime':
case 'visitBack':
case 'visitPath':
case 'comeEngine':
case 'comeSearchText':
$this->setTemplateFile('flash.pie.data');
break;
default :
$this->setTemplateFile('flash.data');
}
}
function _parseVisit($xml_obj)
{
global $lang;
$response_obj = $xml_obj->response;
$parsed_data->end_date = $response_obj->end_date->body;
$parsed_data->start_date = $response_obj->start_date->body;
$parsed_data->unit = '일';
$parsed_data->data = array();
$_tmp_array = $lang->analytics_api_valuname['visit'];
array_shift($_tmp_array);
$parsed_data->value_names = join("|", $_tmp_array);
$_max = 0;
if (!$response_obj->data)
{
$parsed_data->data[date('YmdHis', strtotime($parsed_data->end_date))] = '0|0|0|0';
}
else
{
foreach($response_obj->data as $key => $val)
{
$parsed_data->data[date('YmdHis', strtotime($val->day->body))] = $val->uv->body.'|'.$val->visit_count->body.'|'.$val->newvisit_uv->body.'|'.$val->revisit_uv->body;
$_row_max = max($val->uv->body, $val->visit_count->body, $val->newvisit_uv->body, $val->revisit_uv->body);
if ($_max < $_row_max) $_max = $_row_max;
}
}
$parsed_data->unitMax = $_max;
return $parsed_data;
}
function _parseVisitPageView($xml_obj)
{
global $lang;
$response_obj = $xml_obj->response;
$parsed_data->end_date = $response_obj->end_date->body;
$parsed_data->start_date = $response_obj->start_date->body;
$parsed_data->unit = '일';
$parsed_data->data = array();
$_tmp_array = $lang->analytics_api_valuname['visitPageView'];
array_shift($_tmp_array);
$parsed_data->value_names = join("|", $_tmp_array);
$_max = 0;
if (!$response_obj->data)
{
$parsed_data->data[date('YmdHis', strtotime($parsed_data->end_date))] = '0|0|0|0';
}
else
{
foreach($response_obj->data as $key => $val)
{
$parsed_data->data[date('YmdHis', strtotime($val->day->body))] = $val->pv->body.'|'
.$val->pv_per_visit->body.'|'
.$val->newvisit_pv->body.'|'
.$val->revisit_pv->body;
$_row_max = max($val->pv->body, $val->pv_per_visit->body, $val->newvisit_pv->body, $val->revisit_pv->body);
if ($_max < $_row_max) $_max = $_row_max;
}
}
$parsed_data->unitMax = $_max;
return $parsed_data;
}
function _parseVisitTime($xml_obj)
{
global $lang;
$response_obj = $xml_obj->response;
$parsed_data->end_date = $response_obj->end_date->body;
$parsed_data->start_date = $response_obj->start_date->body;
$parsed_data->unit = '시간';
$parsed_data->data = array();
$_tmp_array = $lang->analytics_api_valuname['visitTime'];
array_shift($_tmp_array);
$parsed_data->value_names = join("|", $_tmp_array);
$_max = 0;
if (!$response_obj->data)
{
$parsed_data->data[date('YmdHis', strtotime($parsed_data->end_date))] = '0|0|0|0|0';
}
else
{
foreach($response_obj->data as $key => $val)
{
$parsed_data->data[date('YmdHis', strtotime($val->day->body.'-'.$val->timezone->body))] = $val->sumvisit_count->body.'|'
.$val->sumvisitor->body.'|'
.$val->sumrevisitor->body.'|'
.$val->sumnewvisitor->body.'|'
.$val->sumpv->body;
$_row_max = max($val->sumvisit_count->body, $val->sumvisitor->body, $val->sumrevisitor->body, $val->sumnewvisitor->body, $val->sumpv->body);
if ($_max < $_row_max) $_max = $_row_max;
}
}
$parsed_data->unitMax = $_max;
return $parsed_data;
}
function _parseVisitDay($xml_obj)
{
global $lang;
$response_obj = $xml_obj->response;
$parsed_data->end_date = $response_obj->end_date->body;
$parsed_data->start_date = $response_obj->start_date->body;
$parsed_data->unit = '요일';
$parsed_data->data = array();
$_tmp_array = $lang->analytics_api_valuname['visitDay'];
array_shift($_tmp_array);
$parsed_data->value_names = join("|", $_tmp_array);
$_max = 0;
if (!$response_obj->data)
{
$parsed_data->data[date('YmdHis', strtotime($parsed_data->end_date))] = '0|0|0|0|0';
}
else
{
foreach($response_obj->data as $key => $val)
{
$parsed_data->data[date('YmdHis', strtotime($val->day->body))] = $val->avgvisit->body.'|'
.$val->avguv->body.'|'
.$val->avgnewvisit->body.'|'
.$val->avgrevisit->body.'|'
.$val->avgpv->body;
$_row_max = max($val->avgvisit->body, $val->avguv->body, $val->avgnewvisit->body, $val->avgrevisit->body, $val->avgpv->body);
if ($_max < $_row_max) $_max = $_row_max;
}
}
$parsed_data->unitMax = $_max;
return $parsed_data;
}
function _parseVisitBack($xml_obj)
{
global $lang;
$response_obj = $xml_obj->response;
$parsed_data->end_date = $response_obj->end_date->body;
if (!$response_obj->data) return new Object('msg_none_data');
$parsed_data->data = array();
$_sum_etc = 0;
foreach($response_obj->data as $key => $val)
{
if ($val->freq->body < 7)
{
$parsed_data->data[$lang->analytics_api_valuname['visitBack'][$val->freq->body.'day']] = round($val->vc->body/$response_obj->countdata->sumtotalvc->body * 100);
}
else
{
$_sum_etc += $val->vc->body;
}
}
$parsed_data->data[$lang->analytics_api_valuname['visitBack']['etc']] = round($_sum_etc / $response_obj->countdata->sumtotalvc->body * 100);
return $parsed_data;
}
function _parseVisitStayTime($xml_obj)
{
global $lang;
$response_obj = $xml_obj->response;
$parsed_data->end_date = $response_obj->end_date->body;
$parsed_data->start_date = $response_obj->start_date->body;
if (!$response_obj->countdata) return new Object('msg_none_data');
$parsed_data->data = array();
$total_count = $response_obj->countdata->sumtotalvc->body;
$parsed_data->data[$lang->analytics_api_valuname['visitStayTime']['vc_under_30sec']] = round($response_obj->countdata->vc_under_30sec->body/$total_count * 100);
$parsed_data->data[$lang->analytics_api_valuname['visitStayTime']['vc_31_60']] = round($response_obj->countdata->vc_31_60->body/$total_count * 100);
$parsed_data->data[$lang->analytics_api_valuname['visitStayTime']['vc_2min']] = round($response_obj->countdata->vc_2min->body/$total_count * 100);
$parsed_data->data[$lang->analytics_api_valuname['visitStayTime']['vc_3min']] = round($response_obj->countdata->vc_3min->body/$total_count * 100);
$parsed_data->data[$lang->analytics_api_valuname['visitStayTime']['vc_4min']] = round($response_obj->countdata->vc_4min->body/$total_count * 100);
$parsed_data->data[$lang->analytics_api_valuname['visitStayTime']['vc_5min']] = round($response_obj->countdata->vc_5min->body/$total_count * 100);
$parsed_data->data[$lang->analytics_api_valuname['visitStayTime']['vc_10min']] = round($response_obj->countdata->vc_10min->body/$total_count * 100);
$parsed_data->data[$lang->analytics_api_valuname['visitStayTime']['vc_30min']] = round($response_obj->countdata->vc_30min->body/$total_count * 100);
$parsed_data->data[$lang->analytics_api_valuname['visitStayTime']['vc_60min']] = round($response_obj->countdata->vc_60min->body/$total_count * 100);
$parsed_data->data[$lang->analytics_api_valuname['visitStayTime']['vc_60high']] = round($response_obj->countdata->vc_60high->body/$total_count * 100);
return $parsed_data;
}
function _parseVisitPath($xml_obj)
{
global $lang;
$response_obj = $xml_obj->response;
// debugPrint($response_obj);
$parsed_data->end_date = $response_obj->end_date->body;
$parsed_data->start_date = $response_obj->start_date->body;
if (!$response_obj->data) return new Object('msg_none_data');
$parsed_data->data = array();
$_sum_data = array('one'=>0
,'four'=>0
,'ten'=>0
,'fifteen'=>0
,'twenty'=>0
,'thirty'=>0
,'fourty'=>0
,'fifty'=>0
,'high'=>0);
$_total = 0;
foreach($response_obj->data as $key => $val)
{
$_sum_data['one'] += $val->one->body;
$_sum_data['four'] += $val->four->body;
$_sum_data['ten'] += $val->ten->body;
$_sum_data['fifteen'] += $val->fifteen->body;
$_sum_data['twenty'] += $val->twenty->body;
$_sum_data['thirty'] += $val->thirty->body;
$_sum_data['fourty'] += $val->fourty->body;
$_sum_data['fifty']+= $val->fifty->body;
$_sum_data['high'] += $val->high->body;
$_total += $val->visit->body;
}
foreach($_sum_data as $key => $val)
{
$parsed_data->data[$lang->analytics_api_valuname['visitPath'][$key]] = round($val / $_total * 100);
}
return $parsed_data;
}
//유입분석
function _parseComeEngine($xml_obj)
{
$response_obj = $xml_obj->response;
$parsed_data->end_date = $response_obj->end_date->body;
$parsed_data->start_date = $response_obj->start_date->body;
if (!$response_obj->data) return new Object('msg_none_data');
$parsed_data->data = array();
$_sum_total = 0;
foreach($response_obj->data as $key => $val)
{
$_sum_total += $val->sumqc->body;
}
foreach($response_obj->data as $key => $val)
{
$parsed_data->data[$val->searchengine->body] = sprintf('%0.2f', $val->sumqc->body / $_sum_total * 100);
}
debugPrint($parsed_data);
return $parsed_data;
}
function _parseComeSearchText($xml_obj)
{
global $lang;
$response_obj = $xml_obj->response;
$parsed_data->end_date = $response_obj->end_date->body;
$parsed_data->start_date = $response_obj->start_date->body;
if (!$response_obj->data) return new Object('msg_none_data');
$parsed_data->data = array();
$_sum_total = $response_obj->data_totalpv->body;
$_etc = 0;
foreach($response_obj->data as $key => $val)
{
if ($key <= 4)
$_etc += $val->sumqc->body;
}
foreach($response_obj->data as $key => $val)
{
if($key > 4)
break;
$parsed_data->data[$val->query->body] = round($val->sumqc->body / $_sum_total * 100);
}
$parsed_data->data[$lang->etc] = round(($_sum_total - $_etc) / $_sum_total * 100);
return $parsed_data;
}
/* function _parseComeUrl($xml_obj)
{
$response_obj = $xml_obj->response;
$parsed_data->end_date = $response_obj->end_date->body;
$parsed_data->start_date = $response_obj->start_date->body;
$parsed_data->days = array();
$parsed_data->pvs = array();
$parsed_data->pv_per_visits = array();
$parsed_data->newvisit_pvs = array();
$parsed_data->revisit_pvs = array();
foreach($response_obj->data as $key => $val)
{
$parsed_data->days, $val->day->body);
$parsed_data->pvs, $val->pv->body);
$parsed_data->pv_per_visits, $val->pv_per_visit->body);
$parsed_data->newvisit_pvs, $val->newvisit_pv->body);
$parsed_data->revisit_pvs, $val->revisit_pv->body);
}
return $parsed_data;
}
// 페이지 분석
function _parsePagePop($xml_obj)
{
$response_obj = $xml_obj->response;
$parsed_data->end_date = $response_obj->end_date->body;
$parsed_data->start_date = $response_obj->start_date->body;
$parsed_data->days = array();
$parsed_data->pvs = array();
$parsed_data->pv_per_visits = array();
$parsed_data->newvisit_pvs = array();
$parsed_data->revisit_pvs = array();
foreach($response_obj->data as $key => $val)
{
$parsed_data->days, $val->day->body);
$parsed_data->pvs, $val->pv->body);
$parsed_data->pv_per_visits, $val->pv_per_visit->body);
$parsed_data->newvisit_pvs, $val->newvisit_pv->body);
$parsed_data->revisit_pvs, $val->revisit_pv->body);
}
return $parsed_data;
}
function _parsePageDrillDown($xml_obj)
{
$response_obj = $xml_obj->response;
$parsed_data->end_date = $response_obj->end_date->body;
$parsed_data->start_date = $response_obj->start_date->body;
$parsed_data->days = array();
$parsed_data->pvs = array();
$parsed_data->pv_per_visits = array();
$parsed_data->newvisit_pvs = array();
$parsed_data->revisit_pvs = array();
foreach($response_obj->data as $key => $val)
{
$parsed_data->days, $val->day->body);
$parsed_data->pvs, $val->pv->body);
$parsed_data->pv_per_visits, $val->pv_per_visit->body);
$parsed_data->newvisit_pvs, $val->newvisit_pv->body);
$parsed_data->revisit_pvs, $val->revisit_pv->body);
}
return $parsed_data;
}
function _parsePageStart($xml_obj)
{
$response_obj = $xml_obj->response;
$parsed_data->end_date = $response_obj->end_date->body;
$parsed_data->start_date = $response_obj->start_date->body;
$parsed_data->days = array();
$parsed_data->pvs = array();
$parsed_data->pv_per_visits = array();
$parsed_data->newvisit_pvs = array();
$parsed_data->revisit_pvs = array();
foreach($response_obj->data as $key => $val)
{
$parsed_data->days, $val->day->body);
$parsed_data->pvs, $val->pv->body);
$parsed_data->pv_per_visits, $val->pv_per_visit->body);
$parsed_data->newvisit_pvs, $val->newvisit_pv->body);
$parsed_data->revisit_pvs, $val->revisit_pv->body);
}
return $parsed_data;
}
function _parsePageEnd($xml_obj)
{
$response_obj = $xml_obj->response;
$parsed_data->end_date = $response_obj->end_date->body;
$parsed_data->start_date = $response_obj->start_date->body;
$parsed_data->days = array();
$parsed_data->pvs = array();
$parsed_data->pv_per_visits = array();
$parsed_data->newvisit_pvs = array();
$parsed_data->revisit_pvs = array();
foreach($response_obj->data as $key => $val)
{
$parsed_data->days, $val->day->body);
$parsed_data->pvs, $val->pv->body);
$parsed_data->pv_per_visits, $val->pv_per_visit->body);
$parsed_data->newvisit_pvs, $val->newvisit_pv->body);
$parsed_data->revisit_pvs, $val->revisit_pv->body);
}
return $parsed_data;
}
function _parsePageReturn($xml_obj)
{
$response_obj = $xml_obj->response;
$parsed_data->end_date = $response_obj->end_date->body;
$parsed_data->start_date = $response_obj->start_date->body;
$parsed_data->days = array();
$parsed_data->pvs = array();
$parsed_data->pv_per_visits = array();
$parsed_data->newvisit_pvs = array();
$parsed_data->revisit_pvs = array();
foreach($response_obj->data as $key => $val)
{
$parsed_data->days, $val->day->body);
$parsed_data->pvs, $val->pv->body);
$parsed_data->pv_per_visits, $val->pv_per_visit->body);
$parsed_data->newvisit_pvs, $val->newvisit_pv->body);
$parsed_data->revisit_pvs, $val->revisit_pv->body);
}
return $parsed_data;
}
*/
}
?>

View file

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="0.2">
<title xml:lang="ko">analytics</title>
<description xml:lang="ko">analytics</description>
<version>0.2</version>
<date>2010-08-02</date>
<category>statistics</category>
<author email="devjin@nhn.com" link="">
<name xml:lang="ko">bumjin</name>
</author>
</module>

View file

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<module>
<grants/>
<actions>
<action name="dispAnalyticsAdminContent" type="view" admin_index="true" standalone="true" />
<action name="dispAnalyticsVisitInfoAdminContent" type="view" standalone="true" />
<action name="dispAnalyticsComeInfoAdminContent" type="view" standalone="true" />
<action name="dispAnalyticsPageInfoAdminContent" type="view" standalone="true" />
<action name="dispAnalyticsVisitInfoAdminVisitChart" type="view" standalone="true" />
<action name="dispAnalyticsVisitInfoAdminVisitPageViewChart" type="view" standalone="true" />
<action name="dispAnalyticsVisitInfoAdminVisitTimeChart" type="view" standalone="true" />
<action name="dispAnalyticsVisitInfoAdminVisitDayChart" type="view" standalone="true" />
<action name="dispAnalyticsVisitInfoAdminVisitBackChart" type="view" standalone="true" />
<action name="dispAnalyticsVisitInfoAdminVisitStayTimeChart" type="view" standalone="true" />
<action name="dispAnalyticsVisitInfoAdminVisitPathChart" type="view" standalone="true" />
<action name="dispAnalyticsComeInfoAdminComeEngineChart" type="view" standalone="true" />
<action name="dispAnalyticsComeInfoAdminComeSearchTextChart" type="view" standalone="true" />
<action name="dispAnalyticsComeInfoAdminComeUrlChart" type="view" standalone="true" />
<action name="dispAnalyticsPageInfoAdminPagePopChart" type="view" standalone="true" />
<action name="dispAnalyticsPageInfoAdminPageDrillDownChart" type="view" standalone="true" />
<action name="dispAnalyticsPageInfoAdminPageStartChart" type="view" standalone="true" />
<action name="dispAnalyticsPageInfoAdminPageEndChart" type="view" standalone="true" />
<action name="dispAnalyticsPageInfoAdminPageReturnChart" type="view" standalone="true" />
<action name="dispAnalyticsAPIData" type="view" />
<action name="procAnalyticsAdminInsertAPIKey" type="controller" standalone="true" />
</actions>
</module>

View file

@ -1,159 +0,0 @@
<?php
$lang->analytics = 'Analytics';
$lang->about_analytics = 'Analytics모듈은 사이트에 접근한 방문자의 패턴을 분석하여 차트로 노출합니다. 다양한 분석결과를 제공하므로 사이트 구성 및 운영에 참고할 수 있습니다.';
$lang->detail_info = '상세정보';
$lang->week_name = array();
$lang->week_name['0'] = '일요일';
$lang->week_name['1'] = '월요일';
$lang->week_name['2'] = '화요일';
$lang->week_name['3'] = '수요일';
$lang->week_name['4'] = '목요일';
$lang->week_name['5'] = '금요일';
$lang->week_name['6'] = '토요일';
$lang->after_day = '일 후';
$lang->sum_total = '합계';
$lang->minute = '분';
$lang->second = '초';
$lang->etc = '기타';
$lang->cmd_analytics_info = 'Analytics정보';
$lang->cmd_analytics_visit_info = '방문자 분석';
$lang->cmd_analytics_come_info = '유입경로 분석';
$lang->cmd_analytics_page_info = '페이지 분석';
$lang->cmd_analytics_date_set = '기간 설정';
$lang->cmd_analytics_end_date_set = '날짜';
$lang->analytics_api_key = 'API KEY 정보';
$lang->cmd_check_analytics_api_key = 'API KEY 확인';
$lang->about_analytics_api_key = '공식사이트에서 발급받은 API KEY를 등록합니다.';
$lang->analytics_visit_info_config = '방문자 분석 설정';
$lang->analytics_come_info_config = '유입경로 분석 설정';
$lang->analytics_page_info_config = '페이지 분석 설정';
$lang->analytics_api_method = array(
'visit' => '방문현황'
,'visitPageView' => '페이지뷰'
,'visitTime' => '시간대별 방문 분포'
,'visitDay' => '요일별 방문 분포'
,'visitBack' => '재방문 간격'
,'visitStayTime' => '방문 체류시간'
,'visitPath' => '방문 경로 깊이'
,'comeEngine' => '유입검색엔진'
,'comeSearchText' => '유입검색어'
,'comeUrl' => '유입상세URL'
,'pagePop' => '인기페이지'
,'pageDrillDown' => '페이지 드릴다운'
,'pageStart' => '방문시작페이지'
,'pageEnd' => '종료페이지'
,'pageReturn' => '반송페이지');
$lang->analytics_api_valuname = array('visit' => array('day' =>'날짜'
,'uv' => '방문자수'
,'visit_count' => '방문횟수'
,'newvisit_uv'=> '신규 방문자수'
, 'revisit_uv'=>'재방문자수')
,'visitPageView' => array('day' => '날짜'
,'pv' => '페이지뷰'
,'pv_per_visit'=>'방문당 페이지뷰'
,'newvisit_pv' => '신규 방문자 페이지뷰'
,'revisit_pv' =>'재방문자 페이지뷰')
,'visitTime' => array('timezone' => '시간대'
,'sumvisit_count' => '방문횟수 평균'
,'sumvisitor' => '방문자수 평균'
, 'sumrevisitor' => '재방문자수 평균'
, 'sumnewvisitor' => '신규방문자수 평균'
, 'sumpv' => '페이지뷰 평균')
,'visitDay' => array('week' => '요일'
,'avgvisit' => '평균방문횟수'
,'avguv' => '평균방문자수'
,'avgnewvisit' => '평균신규방문자수'
,'avgrevisit' => '평균재방문자수'
,'avgpv' => '평균페이지뷰')
,'visitBack' => array('freq' => '재방문주기'
,'vc' => '방문횟수'
,'1day' => '1일'
,'2day' => '2일'
,'4day' => '4일'
,'5day' => '5일'
,'6day' => '6일'
,'etc' => '기타')
,'visitStayTime' => array('day'=>'날짜'
,'avgStayTime' => '평균체류시간(초)'
,'vc' => '방문횟수'
,'vc_under_30sec' =>'30초이하'
,'vc_31_60' => '31초~60초'
,'vc_2min' => '2분'
,'vc_3min' => '3분'
,'vc_4min' => '4분'
,'vc_5min' => '5분'
,'vc_10min' => '10분'
,'vc_30min' => '30분'
,'vc_60min' => '1시간이하'
,'vc_60high' =>'1시간이상')
,'visitPath' => array('day'=>'날짜'
,'visit' =>'방문횟수'
,'pv' =>'페이지뷰'
,'one'=>'1페이지'
,'four'=>'2-4페이지'
,'ten'=>'5-10페이지'
,'fifteen'=>'11-15페이지'
,'twenty'=>'16-20페이지'
,'thirty'=>'21-30페이지'
,'fourty'=>'31-40페이지'
,'fifty'=>'41-50페이지'
,'high'=>'51페이지이상')
,'comeEngine' => array('rank'=>'순위'
,'searchengine'=>'검색엔진'
,'sumqc'=>'유입수'
,'percent'=>'유입률')
,'comeSearchText' => array('rank'=>'순위'
,'query'=>'검색어'
,'sumqc'=>'유입수'
,'percent'=>'유입률')
,'comeUrl' => array('rank'=>'순위'
,'url'=>'페이지 URL'
,'sumpv'=>'페이지뷰'
,'percent'=>'비율')
,'pagePop' => array('rank'=>'순위'
,'url'=>'페이지 URL'
,'sumpv'=>'페이지뷰'
,'percent'=>'비율')
,'pageDrillDown' => array('rank'=>'순위'
,'url'=>'페이지 URL'
,'sumpv'=>'페이지뷰'
,'sumunqpv'=>'Uniq 페이지뷰'
,'sumdutime'=>'체류시간'
,'sumbounce'=>'반송률'
,'sumexit'=>'유출률'
,'sumstart'=>'페이지뷰 비율')
,'pageStart' => array('rank'=>'순위'
,'url'=>'페이지 URL'
,'sumpv'=>'페이지뷰'
,'percent'=>'비율')
,'pageEnd' => array('rank'=>'순위'
,'url'=>'페이지 URL'
,'sumpv'=>'페이지뷰'
,'percent'=>'비율')
,'pageReturn' => array('rank'=>'순위'
,'url'=>'페이지 URL'
,'sumpv'=>'페이지뷰'
,'percent'=>'비율'));
$lang->about_analytics_method = array('visit' => '설정된 기간내에 방문한 사용자의 통계 정보입니다.<br/>방문횟수 : 사이트 방문자 중 30분이내 재방문자를 제외한 사이트의 전체 방문자수를 의미 합니다.<br/>방문자수 : 방문횟수에서 중복 방문자수를 제외한 순수 방문자수를 의미합니다.<br/>신규방문자수 : 1개월 동안 한번도 사이트에 방문하지 않았던 방문자 수입니다.<br/>재방문자수 : 1개월 이내에 다시 사이트에 방문한 방문자 수 입니다.'
,'visitPageView' => '설정된 기간내에 방문한 사용자가 확인한 페이지의 통계 데이터입니다.<br/>페이지뷰 : 방문자들이 사이트에 방문하여 열어 본 페이지 수(중복페이지 포함)의 총합입니다.<br/>방문당페이지뷰 : 방문당 페이지뷰의 평균 데이터 입니다.<br/>신규 방문자 페이지뷰 : 1개월 동안 한번도 사이트에 방문하지 않았던 방문자의 페이지뷰 총합입니다.<br/>재방문자 페이지뷰 : 1개월 이내에 다시 사이트에 방문한 방문자의 페이지뷰 총합입니다.'
,'visitTime' => '설정된 기간내의 특정 시간대별 방문자 수 통계 정보입니다.'
,'visitDay' => '설정된 기간내의 요일별 방문자 수 통계 정보입니다.'
,'visitBack' => '특정 날짜를 중심으로 재방문한 방문자수 통계 정보입니다.'
,'visitStayTime' => '설정된 기간내에 방문한 사용자의 사이트 체류 시간 통계 데이터입니다.'
,'visitPath' => '방문시 열람한 페이지(중복 페이지 포함)의 통계 데이터입니다.'
,'comeUrl' => '방문자가 어떤 URL을 통해 유입되는지에 대한 통계 데이터입니다.'
,'pagePop' =>'방문자가 많이 열어본 페이지 데이터 입니다.'
,'pageDrillDown' =>'사이트의 페이지별 페이지뷰, 방문자 체류시간, 반송율(해당 페이지가 시작페이지이면서 동시에 종료페이지인 경우), 유출율에 대한 통계 데이터입니다.'
,'pageStart' =>'사이트의 방문이 시작된 페이지의 통계 데이터입니다.'
,'pageEnd' =>'사이트의 방문이 종료된 페이지의 통계 데이터입니다.'
,'pageReturn' =>'사이트의 방문이 시작되고 동시에 종료된 페이지의 통계 데이터입니다.');
?>

View file

@ -1,188 +0,0 @@
<!--#include('./come_info_header.html')-->
<h3 class="xeAdmin"><span class="gray">{$lang->analytics_api_method[$method]}</span></h3>
<p>{$lang->about_analytics_method[$method]}</p>
<!--#include('./date_set_header.html')-->
<div>
{@$__url = getNotEncodedFullUrl('', 'module', 'analytics', 'act', 'dispAnalyticsAPIData', 'api_key', $api_key, 'method', $method, 'start_date', $start_date, 'end_date', $end_date)}
<script type="text/javascript">
var analyticsChartSWFURL = '';
var flashVars = '';
<!--@if($chart_type == 'line')-->
flashVars = "designURL=modules/analytics/tpl/images/xml/{$method}.xml&"+
"isScroll=true&"+
"dataURL="+encodeURIComponent("{$__url}");
analyticsChartSWFURL = "modules/analytics/tpl/images/WebLog.swf";
<!--@else if($chart_type == 'pie')-->
flashVars = "baseURL=modules/analytics/tpl/images/smRepoter/&" +
"dSet=01&" +
"gDataXML="+encodeURIComponent("{$__url}");
analyticsChartSWFURL = "modules/analytics/tpl/images/MainContainer.swf";
<!--@end-->
var obj = {};
obj.flashVars = flashVars;
obj.wmode = "transparent";
nhn.FlashObject.show(analyticsChartSWFURL, "{$method}", 700, 315, obj);
</script>
</div>
<div id="dataTable"></div>
<div class="pagination a1" id="pageNavi"></div>
{@$_t=$lang->analytics_api_valuname[$method];}
<script type="text/javascript">
var oAnalyticsValueName = {};
<!--@foreach($_t as $key => $val)-->
oAnalyticsValueName['{$key}'] = '{$val}';
<!--@end-->
var oAnalyticsWeekName = {};
<!--@foreach($_week_name as $key => $val)-->
oAnalyticsWeekName['{$key}'] = '{$val}';
<!--@end-->
var sAnalyticsTotal = '{$lang->sum_total}';
var sAnalyticsAfterDay = '{$lang->after_day}';
var sAnalyticsTableCaption = '{$lang->analytics_api_method[$method]} ' + '{$lang->detail_info}';
jQuery.getJSON('{$json_url}'
,function(data){
var aTableData = data.response.data;
if (!aTableData)
return;
var oSumData = {};
var aTableHead = [];
var aTableBody = [];
var table_tag;
var table_head;
var table_body;
var key;
var i;
var dataKey;
var nValue;
aTableHead.push(oAnalyticsValueName['rank']);
// table head생성
for(key in aTableData[0])
{
if (key == 'day')
continue;
oSumData[key] = 0;
aTableHead.push(oAnalyticsValueName[key]);
}
aTableHead.push(oAnalyticsValueName['percent']);
table_head = '<thead><tr><th scope="col">' + aTableHead.join('</th><th scope="col">') +'</th></tr></thead>';
// table body생성
table_body = '<tbody>';
var percentData = 0;
var sPercentTD = '';
var imageWidth = 0;
var sumpv = 0;
<!--@if($page)-->
var nCurrentPage = {$page};
<!--@else-->
var nCurrentPage = 1;
<!--@end-->
var nRank = (nCurrentPage - 1) * 20;
for(i = 0; i < aTableData.length; i++)
{
aTableBody = [];
aTableBody.push(nRank + i + 1);
for (dataKey in aTableData[i])
{
if (dataKey == 'day')
continue;
nValue = aTableData[i][dataKey];
// 날짜형 데이터의 경우 parseFloat건너 뜀
if (nValue.indexOf('-') < 0)
{
nValue = parseFloat(nValue);
oSumData[dataKey] += nValue;
}
// 문자열 데이터인 경우 원본 그대로 입력한다.
if (isNaN(nValue))
{
nValue = aTableData[i][dataKey];
}
aTableBody.push(nValue);
}
sumpv = parseInt(aTableData[i]['sumqc']);
if (sumpv > 0)
{
percentData = Math.round(sumpv / data.response.data_totalpv * 10000)/100;
imageWidth = Math.round(percentData);
}
else
{
percentData = 0;
imageWidth = 1;
}
if (percentData < 1)
{
sPercentTD = '<img class="graphHr" style="width:3px" alt="" src="./images/iconBar.gif" />';
}
else
{
sPercentTD = '<img class="graphHr" style="width:'+imageWidth +'%" alt="" src="./images/iconBar.gif" />'
}
sPercentTD += percentData + '%';
table_body += '<tr><td>' + aTableBody.join('</td><td>') + '</td><td class="wide">' + sPercentTD + '</td></tr>';
}
aTableBody = [];
table_body += '<tr><td colspan=2>'+sAnalyticsTotal+'</td>';
aTableBody = [data.response.data_totalpv, '100%'];
table_body += '<td>' + aTableBody.join('</td><td>') + '</td></tr></tbody>';
table_tag = '<table cellspacing="0" class="rowTable"><caption>'+sAnalyticsTableCaption + '</caption>' + table_head + table_body + '</table>';
jQuery("#dataTable").html(table_tag);
//페이지가 없는 경우 return
if (!data.response.page_total_count || data.response.page_total_count < 1)
return;
// pageNavigation 생성
var sFirstPage = '{$lang->first_page}';
var sLastPage = '{$lang->last_page}';
var nStartPageNumbering = nCurrentPage - 2;
nStartPageNumbering = (nStartPageNumbering < 1)?1:nStartPageNumbering;
var sPageNaviTag = '';
var aPageNavi = [];
var sPageURL = '{getUrl("page","","module_srl","")}'
for (i = 0; i < 5; i++)
{
if (nStartPageNumbering > data.response.page_total_count)
break;
if (nCurrentPage == nStartPageNumbering)
{
aPageNavi.push('<strong>'+ nStartPageNumbering + '</strong>');
}
else
{
aPageNavi.push('<a href="' + sPageURL + '&page=' + nStartPageNumbering + '">' + nStartPageNumbering + '</a>');
}
nStartPageNumbering++;
}
sPageNaviTag = '<a href="' + sPageURL + '" class="prevEnd">' + sFirstPage + '</a>'
+ aPageNavi.join('')
+ '<a href="' + sPageURL + '&page=' + data.response.page_total_count + '" class="nextEnd">' + sLastPage + '</a>';
jQuery("#pageNavi").html(sPageNaviTag);
});
</script>

View file

@ -1,9 +0,0 @@
<!--#include('./header.html')-->
<!--%import("js/flashObject.js")-->
<div>
<ul class="localNavigation">
<li <!--@if($act=='dispAnalyticsComeInfoAdminComeEngineChart')-->class="on"<!--@end-->><a href="{getUrl('act', 'dispAnalyticsComeInfoAdminComeEngineChart', 'module_srl', '')}">{$lang->analytics_api_method['comeEngine']}</a></li>
<li <!--@if($act=='dispAnalyticsComeInfoAdminComeSearchTextChart')-->class="on"<!--@end-->><a href="{getUrl('act', 'dispAnalyticsComeInfoAdminComeSearchTextChart', 'module_srl', '')}">{$lang->analytics_api_method['comeSearchText']}</a></li>
<li <!--@if($act=='dispAnalyticsComeInfoAdminComeUrlChart')-->class="on"<!--@end-->><a href="{getUrl('act', 'dispAnalyticsComeInfoAdminComeUrlChart', 'module_srl', '')}">{$lang->analytics_api_method['comeUrl']}</a></li>
</ul>
</div>

View file

@ -1,163 +0,0 @@
<!--#include('./come_info_header.html')-->
<h3 class="xeAdmin"><span class="gray">{$lang->analytics_api_method[$method]}</span></h3>
<p>{$lang->about_analytics_method[$method]}</p>
<!--#include('./date_set_header.html')-->
<div id="dataTable"></div>
<div class="pagination a1" id="pageNavi"></div>
{@$_t=$lang->analytics_api_valuname[$method];}
<script type="text/javascript">
var oAnalyticsValueName = {};
<!--@foreach($_t as $key => $val)-->
oAnalyticsValueName['{$key}'] = '{$val}';
<!--@end-->
var oAnalyticsWeekName = {};
<!--@foreach($_week_name as $key => $val)-->
oAnalyticsWeekName['{$key}'] = '{$val}';
<!--@end-->
var sAnalyticsTotal = '{$lang->sum_total}';
var sAnalyticsAfterDay = '{$lang->after_day}';
var sAnalyticsTableCaption = '{$lang->analytics_api_method[$method]} ' + '{$lang->detail_info}';
jQuery.getJSON('{$json_url}'
,function(data){
var aTableData = data.response.data;
if (!aTableData)
return;
var oSumData = {};
var aTableHead = [];
var aTableBody = [];
var table_tag;
var table_head;
var table_body;
var key;
var i;
var dataKey;
var nValue;
aTableHead.push('rank');
// table head생성
for(key in aTableData[0])
{
if (key == 'day')
continue;
oSumData[key] = 0;
aTableHead.push(oAnalyticsValueName[key]);
}
aTableHead.push(oAnalyticsValueName['percent']);
table_head = '<thead><tr><th scope="col">' + aTableHead.join('</th><th scope="col">') +'</th></tr></thead>';
// table body생성
table_body = '<tbody>';
var percentData = 0;
var sPercentTD = '';
var imageWidth = 0;
var sumpv = 0;
<!--@if($page)-->
var nCurrentPage = {$page};
<!--@else-->
var nCurrentPage = 1;
<!--@end-->
var nRank = (nCurrentPage - 1) * 20;
for(i = 0; i < aTableData.length; i++)
{
aTableBody = [];
aTableBody.push(nRank + i + 1);
for (dataKey in aTableData[i])
{
if (dataKey == 'day')
continue;
nValue = aTableData[i][dataKey];
// 날짜형 데이터의 경우 parseFloat건너 뜀
if (nValue.indexOf('-') < 0)
{
nValue = parseFloat(nValue);
oSumData[dataKey] += nValue;
}
// 문자열 데이터인 경우 원본 그대로 입력한다.
if (isNaN(nValue))
{
nValue = aTableData[i][dataKey];
}
aTableBody.push(nValue);
}
sumpv = parseInt(aTableData[i]['sumpv']);
if (sumpv > 0)
{
percentData = Math.round(sumpv / data.response.data_totalpv * 10000)/100;
imageWidth = Math.round(percentData);
}
else
{
percentData = 0;
imageWidth = 1;
}
if (percentData < 1)
{
sPercentTD = '<img class="graphHr" style="width:3px" alt="" src="./images/iconBar.gif" />';
}
else
{
sPercentTD = '<img class="graphHr" style="width:'+imageWidth +'%" alt="" src="./images/iconBar.gif" />'
}
sPercentTD += percentData + '%';
table_body += '<tr><td>' + aTableBody.join('</td><td>') + '</td><td class="wide">' + sPercentTD + '</td></tr>';
}
aTableBody = [];
table_body += '<tr><td colspan=2>'+sAnalyticsTotal+'</td>';
aTableBody = [data.response.data_totalpv, '100%'];
table_body += '<td>' + aTableBody.join('</td><td>') + '</td></tr></tbody>';
table_tag = '<table cellspacing="0" class="rowTable"><caption>'+sAnalyticsTableCaption + '</caption>' + table_head + table_body + '</table>';
jQuery("#dataTable").html(table_tag);
// pageNavigation 생성
var sFirstPage = '{$lang->first_page}';
var sLastPage = '{$lang->last_page}';
var nStartPageNumbering = nCurrentPage - 2;
nStartPageNumbering = (nStartPageNumbering < 1)?1:nStartPageNumbering;
var sPageNaviTag = '';
var aPageNavi = [];
var sPageURL = '{getUrl("page","","module_srl","")}'
for (i = 0; i < 5; i++)
{
if (nStartPageNumbering > data.response.page_total_count)
break;
if (nCurrentPage == nStartPageNumbering)
{
aPageNavi.push('<strong>'+ nStartPageNumbering + '</strong>');
}
else
{
aPageNavi.push('<a href="' + sPageURL + '&page=' + nStartPageNumbering + '">' + nStartPageNumbering + '</a>');
}
nStartPageNumbering++;
}
sPageNaviTag = '<a href="' + sPageURL + '" class="prevEnd">' + sFirstPage + '</a>'
+ aPageNavi.join('')
+ '<a href="' + sPageURL + '&page=' + data.response.page_total_count + '" class="nextEnd">' + sLastPage + '</a>';
jQuery("#pageNavi").html(sPageNaviTag);
});
</script>

View file

@ -1,17 +0,0 @@
@charset "utf-8";
input.apiKey { width:400px; }
ul.syndiService { list-style:none; margin:0; padding:0;}
ul.syndiService li { padding:10px 0; margin:0;}
select.exceptModuleList { width:400px; }
ul.midCommand { margin:20px 0 0 0; padding:0; list-style:none; }
ul.midCommand li { display:inline; margin:0 20px 0 0; padding:0;}
/* Vertical Bar Graph */
.vGraph{ padding:20px 0;}
.vGraph ul{ margin:0; padding:0; height:100px; border:1px solid #ddd; border-top:0; border-right:0; font-size:11px; font-family:Tahoma, Geneva, sans-serif; list-style:none;}
.vGraph ul:after{ content:""; display:block; clear:both;}
.vGraph li{ float:left; display:inline; width:8%; height:100%; margin:0 3%; position:relative; text-align:center; white-space:nowrap;}
.vGraph .gTerm{ position:relative; display:inline-block; width:100%; height:20px; line-height:20px; margin:0 -100% -20px 0; padding:100px 0 0 0; vertical-align:bottom; color:#767676; font-weight:bold;}
.vGraph .gBar{ position:relative; display:inline-block; width:100%; margin:-1px 0 0 0; border:1px solid #ccc; border-bottom:0; background:#e9e9e9; vertical-align:bottom;}
.vGraph .gBar span{ position:absolute; width:100%; top:-20px; left:0; color:#767676;}

View file

@ -1,50 +0,0 @@
<!--// datepicker javascript plugin load -->
<!--%load_js_plugin("ui")-->
<!--%load_js_plugin("ui.datepicker")-->
<form id="date_set" action="./" method="get" onsubmit="">
<input type="hidden" name="act" value={$act} />
<input type="hidden" name="module" value="admin" />
<input type="hidden" name="api_key" value="{$api_key}" />
<!--input type="hidden" name="method" value="{$method}" /-->
<table>
<tr>
<!--@if($isOnlyEndDate == 'false')-->
<td>{$lang->cmd_analytics_date_set}</td>
<td>
<input type="hidden" name="start_date" id="start_date" value="{date('Ymd', strtotime($start_date))}" />
<input type="text" value="{$start_date}" readonly="readonly" class="inputDate inputTypeText" />
</td>
<td>
~
</td>
<!--@else-->
<td>{$lang->cmd_analytics_end_date_set}</td>
<!--@end-->
<td>
<input type="hidden" name="end_date" id="end_date" value="{date('Ymd', strtotime($end_date))}" />
<input type="text" value="{$end_date}" readonly="readonly" class="inputDate inputTypeText" />
</td>
<td>
<span class="button"><input type="submit" value="{$lang->cmd_search}"/></span>
</td>
</tr>
</table>
</form>
<script type="text/javascript">
(function($){
$(function(){
var option = { changeMonth: true, changeYear: true, gotoCurrent: false,yearRange:'-100:+10', onSelect:function(){
$(this).prev('input[type="hidden"]').val(this.value.replace(/-/g,""))}
};
$.extend(option,$.datepicker.regional['{$lang_type}']);
$(".inputDate").datepicker(option);
$(".dateRemover").click(function() {
$(this).parent().prevAll('input').val('');
return false;});
});
})(jQuery);
</script>

View file

@ -1,7 +0,0 @@
<filter name="insert_api_key" module="analytics" act="procAnalyticsAdminInsertAPIKey" confirm_msg_code="confirm_submit">
<form />
<response>
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -1,24 +0,0 @@
{'<?xml version="1.0" encoding="utf-8"?>'}
<SMChart>
<chart>
<title>{$lang->{$parsed_data->method}}</title>
<seperate>|</seperate>
<units>
<xAxis>
<unit isView='false'>시간</unit>
</xAxis>
<yAxis>
<unitMax>11.88</unitMax>
</yAxis>
</chart>
<values>
<valueName>
<!--@foreach($parsed_data->data as $key => $val)-->
{$lang->{$key}}|
<!--@end-->
</valueName>
<!--@for($i = 0; $i <count($parsed_data->data->day); $i++)-->
<value time='{$parsed_data->data->day[$i]}'/>
</values>
</SMChart>

View file

@ -1,23 +0,0 @@
{'<?xml version="1.0" encoding="utf-8"?>'}
<SMChart>
<chart>
<title>{$lang->analytics_api_method[$parsed_data->method]}</title>
<seperate>|</seperate>
<startViewRate>100</startViewRate>
<units>
<xAxis>
<unit isView='false'>{$parsed_data->unit}</unit>
</xAxis>
<yAxis>
<unitMax>{$parsed_data->unitMax}</unitMax>
</yAxis>
</units>
</chart>
<values>
<valueName>{$parsed_data->value_names}</valueName>
<!--@foreach($parsed_data->data as $key => $val)-->
<value time='{$key}'>{$val}</value>
<!--@end-->
</values>
</SMChart>

View file

@ -1,14 +0,0 @@
{'<?xml version="1.0" encoding="utf-8"?>'}
<Graph>
<gdata title='{$lang->analytics_api_method[$parsed_data->method]}' id='index{count($parsed_data->data)}'>
<fact />
<subFact>
{@$__i=0}
<!--@foreach($parsed_data->data as $key => $val)-->
<item id="{$__i++}">
<data name='{$key}' ispercentage='on'>{$val}</data>
</item>
<!--@end-->
</subFact>
</gdata>
</Graph>

View file

@ -1,16 +0,0 @@
<!--%import("css/analytics.css")-->
<!--%import("js/analytics.js")-->
<h3 class="xeAdmin">{$lang->analytics}<span class="gray">{$lang->cmd_management}</span></h3>
<p class="summeary">{$lang->about_analytics}</p>
<div>
<ul class="localNavigation">
<li <!--@if($act=='dispAnalyticsAdminCotent')-->class="on"<!--@end-->><a href="{getUrl('act', 'dispAnalyticsAdminContent', 'module_srl', '')}">{$lang->cmd_analytics_info}</a></li>
<li <!--@if($act=='dispAnalyticsVisitInfoAdminVisitChart')-->class="on"<!--@end-->><a href="{getUrl('act', 'dispAnalyticsVisitInfoAdminVisitChart', 'module_srl', '')}">{$lang->cmd_analytics_visit_info}</a></li>
<li <!--@if($act=='dispAnalyticsComeInfoAdminComeEngineChart')-->class="on"<!--@end-->><a href="{getUrl('act', 'dispAnalyticsComeInfoAdminComeUrlChart', 'module_srl', '')}">{$lang->cmd_analytics_come_info}</a></li>
<li <!--@if($act=='dispAnalyticsPageInfoAdminPagePopupChart')-->class="on"<!--@end-->><a href="{getUrl('act', 'dispAnalyticsPageInfoAdminPagePopChart', 'module_srl', '')}">{$lang->cmd_analytics_page_info}</a></li>
</ul>
</div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 B

View file

@ -1,51 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<GraphDesign>
<topGap>30</topGap>
<leftGap>0</leftGap>
<graphHeight>218</graphHeight>
<bgType>none</bgType>
<title show="off" id="TextData1" align="bottom" align2="up" ygap="10" />
<index checkBox="off">
<state>bottom</state>
<align>center</align>
<xgap>0</xgap>
<ygap>40</ygap>
</index>
<label id="none" gap="0">
<rotation />
</label>
<design>
<sourceSWF>dataSource/b_Pie1.swf</sourceSWF>
<startPoint x="0" y="0" />
<item id="1" top="none" motionNum="3">
<type flag="0" value="off" ygap="0" xgap="0" maxLength="100" minLength="0"lineOn="off" w="218" valueLength ="70" startAngle="200" >3</type>
</item>
<item id="2" top="none" motionNum="3">
<type flag="0" value="off" ygap="0" xgap="0" maxLength="100" minLength="0" lineOn="off" w="218" valueLength ="70" startAngle="200" >3</type>
</item>
<item id="3" top="none" motionNum="3">
<type flag="0" value="off" ygap="0" xgap="0" maxLength="100" minLength="0" lineOn="off" w="218" valueLength ="70" startAngle="200" >3</type>
</item>
<item id="4" top="none" motionNum="3">
<type flag="0" value="off" ygap="0" xgap="0" maxLength="100" minLength="0" lineOn="off" w="218" valueLength ="70" startAngle="200" >3</type>
</item>
<item id="5" top="none" motionNum="3">
<type flag="0" value="off" ygap="0" xgap="0" maxLength="100" minLength="0" lineOn="off" w="218" valueLength ="70" startAngle="200" >3</type>
</item>
<item id="6" top="none" motionNum="3">
<type flag="0" value="off" ygap="0" xgap="0" maxLength="100" minLength="0" lineOn="off" w="218" valueLength ="70" startAngle="200" >3</type>
</item>
<item id="7" top="none" motionNum="3">
<type flag="0" value="off" ygap="0" xgap="0" maxLength="100" minLength="0" lineOn="off" w="218" valueLength ="70" startAngle="200" >3</type>
</item>
<item id="8" top="none" motionNum="3">
<type flag="0" value="off" ygap="0" xgap="0" maxLength="100" minLength="0" lineOn="off" w="218" valueLength ="70" startAngle="200" >3</type>
</item>
<item id="9" top="none" motionNum="3">
<type flag="0" value="off" ygap="0" xgap="0" maxLength="100" minLength="0" lineOn="off" w="218" valueLength ="70" startAngle="200" >3</type>
</item>
<item id="10" top="none" motionNum="3">
<type flag="0" value="off" ygap="0" xgap="0" maxLength="100" minLength="0" lineOn="off" w="218" valueLength ="70" startAngle="200" >3</type>
</item>
</design>
</GraphDesign>

View file

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<DesignSet>
<index0 type="b_Pie1" factID="1" depth="0" align="h"/>
<index1 type="b_Pie1" factID="1" depth="0" align="h"/>
<index2 type="b_Pie1" factID="1|2" depth="0|1" align="h"/>
<index3 type="b_Pie1" factID="1|2|3" depth="0|1|2" align="h"/>
<index4 type="b_Pie1" factID="1|2|3|4" depth="0|1|2|3" align="h"/>
<index5 type="b_Pie1" factID="1|2|3|4|5" depth="0|1|2|3|4" align="h"/>
<index6 type="b_Pie1" factID="1|2|3|4|5|6" depth="0|1|2|3|4|5" align="h"/>
<index7 type="b_Pie1" factID="1|2|3|4|5|6|7" depth="0|1|2|3|4|5|6" align="h"/>
<index8 type="b_Pie1" factID="1|2|3|4|5|6|7|8" depth="0|1|2|3|4|5|6|7" align="h"/>
<index9 type="b_Pie1" factID="1|2|3|4|5|6|7|8|9" depth="0|1|2|3|4|5|6|7|8" align="h"/>
<index10 type="b_Pie1" factID="1|2|3|4|5|6|7|8|9|10" depth="0|1|2|3|4|5|6|7|8|9" align="h"/>
</DesignSet>

View file

@ -1,58 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<design>
<series>
<name>방문자수</name>
<type>Line</type>
<color>0xF7E900</color>
<alpha>100</alpha>
<lineWeight>2</lineWeight>
</series>
<series>
<name>방문횟수</name>
<type>Line</type>
<color>0xF87DB2</color>
<alpha>100</alpha>
<lineWeight>2</lineWeight>
</series>
<series>
<name>신규 방문자수</name>
<type>Line</type>
<color>0x85CDEB</color>
<alpha>100</alpha>
<lineWeight>2</lineWeight>
</series>
<series>
<name>재방문자수</name>
<type>Line</type>
<color>0x7681DF</color>
<alpha>100</alpha>
<lineWeight>2</lineWeight>
</series>
<axis>
<name>xAxis</name>
<color>0x666666</color>
<lineWeight>1</lineWeight>
<font>tahoma</font>
<fontColor>0x666666</fontColor>
<fontSize>11</fontSize>
<fontStyle>normal</fontStyle>
<labelGap>4</labelGap>
</axis>
<axis>
<name>yAxis</name>
<color>0x666666</color>
<lineWeight>1</lineWeight>
<font>Dotum</font>
<fontColor>0x666666</fontColor>
<fontSize>11</fontSize>
<fontStyle>normal</fontStyle>
<labelGap>4</labelGap>
</axis>
<index>
<name>index</name>
<font>Dotum</font>
<fontColor>0x666666</fontColor>
<fontSize>11</fontSize>
<fontStyle>normal</fontStyle>
</index>
</design>

View file

@ -1,65 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<design>
<series>
<name>평균방문횟수</name>
<type>Line</type>
<color>0xF7E900</color>
<alpha>100</alpha>
<lineWeight>2</lineWeight>
</series>
<series>
<name>평균방문자수</name>
<type>Line</type>
<color>0xF87DB2</color>
<alpha>100</alpha>
<lineWeight>2</lineWeight>
</series>
<series>
<name>평균신규방문자수</name>
<type>Line</type>
<color>0x85CDEB</color>
<alpha>100</alpha>
<lineWeight>2</lineWeight>
</series>
<series>
<name>평균재방문자수</name>
<type>Line</type>
<color>0x7681DF</color>
<alpha>100</alpha>
<lineWeight>2</lineWeight>
</series>
<series>
<name>평균페이지뷰</name>
<type>Line</type>
<color>0x7681DF</color>
<alpha>100</alpha>
<lineWeight>2</lineWeight>
</series>
<axis>
<name>xAxis</name>
<color>0x666666</color>
<lineWeight>1</lineWeight>
<font>tahoma</font>
<fontColor>0x666666</fontColor>
<fontSize>11</fontSize>
<fontStyle>normal</fontStyle>
<labelGap>4</labelGap>
</axis>
<axis>
<name>yAxis</name>
<color>0x666666</color>
<lineWeight>1</lineWeight>
<font>Dotum</font>
<fontColor>0x666666</fontColor>
<fontSize>11</fontSize>
<fontStyle>normal</fontStyle>
<labelGap>4</labelGap>
</axis>
<index>
<name>index</name>
<font>Dotum</font>
<fontColor>0x666666</fontColor>
<fontSize>11</fontSize>
<fontStyle>normal</fontStyle>
</index>
</design>

View file

@ -1,58 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<design>
<series>
<name>페이지뷰</name>
<type>Line</type>
<color>0xF7E900</color>
<alpha>100</alpha>
<lineWeight>2</lineWeight>
</series>
<series>
<name>방문당 페이지뷰</name>
<type>Line</type>
<color>0xF87DB2</color>
<alpha>100</alpha>
<lineWeight>2</lineWeight>
</series>
<series>
<name>신규 방문자 페이지뷰</name>
<type>Line</type>
<color>0x85CDEB</color>
<alpha>100</alpha>
<lineWeight>2</lineWeight>
</series>
<series>
<name>재방문자 페이지뷰</name>
<type>Line</type>
<color>0x7681DF</color>
<alpha>100</alpha>
<lineWeight>2</lineWeight>
</series>
<axis>
<name>xAxis</name>
<color>0x666666</color>
<lineWeight>1</lineWeight>
<font>tahoma</font>
<fontColor>0x666666</fontColor>
<fontSize>11</fontSize>
<fontStyle>normal</fontStyle>
<labelGap>4</labelGap>
</axis>
<axis>
<name>yAxis</name>
<color>0x666666</color>
<lineWeight>1</lineWeight>
<font>Dotum</font>
<fontColor>0x666666</fontColor>
<fontSize>11</fontSize>
<fontStyle>normal</fontStyle>
<labelGap>4</labelGap>
</axis>
<index>
<name>index</name>
<font>Dotum</font>
<fontColor>0x666666</fontColor>
<fontSize>11</fontSize>
<fontStyle>normal</fontStyle>
</index>
</design>

View file

@ -1,65 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<design>
<series>
<name>방문횟수 평균</name>
<type>Line</type>
<color>0xF7E900</color>
<alpha>100</alpha>
<lineWeight>2</lineWeight>
</series>
<series>
<name>방문자수 평균</name>
<type>Line</type>
<color>0xF87DB2</color>
<alpha>100</alpha>
<lineWeight>2</lineWeight>
</series>
<series>
<name>재방문자수 평균</name>
<type>Line</type>
<color>0x85CDEB</color>
<alpha>100</alpha>
<lineWeight>2</lineWeight>
</series>
<series>
<name>신규방문자수 평균</name>
<type>Line</type>
<color>0x7681DF</color>
<alpha>100</alpha>
<lineWeight>2</lineWeight>
</series>
<series>
<name>페이지뷰 평균</name>
<type>Line</type>
<color>0x93C913</color>
<alpha>100</alpha>
<lineWeight>2</lineWeight>
</series>
<axis>
<name>xAxis</name>
<color>0x666666</color>
<lineWeight>1</lineWeight>
<font>tahoma</font>
<fontColor>0x666666</fontColor>
<fontSize>11</fontSize>
<fontStyle>normal</fontStyle>
<labelGap>4</labelGap>
</axis>
<axis>
<name>yAxis</name>
<color>0x666666</color>
<lineWeight>1</lineWeight>
<font>Dotum</font>
<fontColor>0x666666</fontColor>
<fontSize>11</fontSize>
<fontStyle>normal</fontStyle>
<labelGap>4</labelGap>
</axis>
<index>
<name>index</name>
<font>Dotum</font>
<fontColor>0x666666</fontColor>
<fontSize>11</fontSize>
<fontStyle>normal</fontStyle>
</index>
</design>

View file

@ -1,52 +0,0 @@
<!--%import("filter/insert_api_key.xml")-->
<!--#include("./header.html")-->
<form action-"./" method="get" onsubmit="return procFilter(this, insert_api_key)">
<table cellspacing="0" class="rowTable">
<tr>
<th scope="row"><div>{$lang->analytics_api_key}</div></th>
<td>
api_key : <input type="text" id="api_key" name="api_key" value="{$api_key}" class="inputTypeText apiKey" />
<span class="button green"><input type="button" value="{$lang->cmd_check_analytics_api_key}" onclick="checkAPIKey(jQuery('#api_key').val())" /></span>
<p>{$lang->about_analytics_api_key}</p>
</td>
</tr>
<!--tr>
<th scope="row"><div>{$lang->analytics_visit_info_config}</div></th>
<td>
<ul-->
<!--@foreach($lang->analytics_api_visit as $key => $val)-->
<!--li><input type="checkbox" name="{$key}" value="Y" id="visit_{$key}" /><label for="visit_{$key}">{$val}</label></li-->
<!--@end-->
<!--/ul>
</td>
</tr>
<tr>
<th scope="row"><div>{$lang->analytics_come_info_config}</div></th>
<td>
<ul-->
<!--@foreach($lang->analytics_api_come as $key => $val)-->
<!--li><input type="checkbox" name="{$key}" value="Y" id="come_{$key}" /><label for="come_{$key}">{$val}</label></li-->
<!--@end-->
<!--/ul>
</td>
</tr>
<tr>
<th scope="row"><div>{$lang->analytics_page_info_config}</div></th>
<td>
<ul-->
<!--@foreach($lang->analytics_api_page as $key => $val)-->
<!--li><input type="checkbox" name="{$key}" value="Y" id="page_{$key}" /><label for="page_{$key}">{$val}</label></li-->
<!--@end-->
<!--/ul>
</td>
</tr-->
<tr class="row2">
<th colspan="2" class="button">
<span class="button black strong"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
</th>
</tr>
</table>
</form>

View file

@ -1,3 +0,0 @@
function checkAPIKey(apiKey){
alert(apiKey);
}

View file

@ -1,463 +0,0 @@
////////////////////////////////////////////////////////////////////////////////
//
// NHN CORPORATION
// Copyright 2002-2007 NHN Coporation
// All Rights Reserved.
//
// 이 문서는 NHN㈜의 지적 자산이므로 NHN(주)의 승인 없이 이 문서를 다른 용도로 임의
// 변경하여 사용할 수 없습니다.
//
// 파일명 : flashObject.js
//
// 작성일 : 2009.02.02
//
// 최종 수정일: 2009.04.08
//
// Version : 1.1.0
//
////////////////////////////////////////////////////////////////////////////////
/**
* @author seungkil choi / kgoon@nhncorp.com
*/
if (typeof nhn == 'undefined') nhn = {};
nhn.FlashObject = (function(){
var FlashObject = {};
//-------------------------------------------------------------
// private properties
//-------------------------------------------------------------
var sClassPrefix = 'F' + new Date().getTime() + parseInt(Math.random() * 1000000);
var bIE = /MSIE/i.test(navigator.userAgent);
var bFF = /FireFox/i.test(navigator.userAgent);
var bChrome = /Chrome/i.test(navigator.userAgent);
/**
* 이벤트 등록 함수
*
* @param oElement 이벤트 등록 객체.
* @param sEvent 등록할 이벤트 Type
* @param fHandler 이벤트 핸들러
* @return void
*/
var bind = function(oElement, sEvent, fHandler)
{
if (typeof oElement.attachEvent != 'undefined')
oElement.attachEvent('on' + sEvent, fHandler);
else
oElement.addEventListener(sEvent, fHandler, true);
};
var objectToString = function(oObj, sSeparator)
{
var s = "";
var first = true;
var name = "";
var value;
for (var p in oObj)
{
if (first)
first = false;
else
s += sSeparator;
value = oObj[p];
switch (typeof(value)) {
case "string":
s += p + '=' + encodeURIComponent(value);
break;
case "number":
s += p + '=' + encodeURIComponent(value.toString());
break;
case "boolean":
s += p + '=' + (value ? "true" : "false");
break;
default:
// array 이거나 object 일때 변환하지 않는다.
}
}
return s;
}
/**
* 플래시 ExternalInterface 버그 패치
* for 'Out of memory line at 56' error
*
* @return void
*/
var unloadHandler = function() {
obj = document.getElementsByTagName('OBJECT');
for (var i = 0, theObj; theObj = obj[i]; i++) {
theObj.style.display = 'none';
for (var prop in theObj)
if (typeof(theObj[prop]) == 'function')
try { theObj[prop] = null; } catch(e) {}
}
};
/**
* 휠마우스 이벤트 처리 함수
* 이벤트가 발생한 객체가 플래시인 경우
* delta 값과 마우스 좌표를 플래시에 전달
*
* @param e 이벤트 객체
* @return void
*/
var wheelHandler = function(e) {
e = e || window.event;
var nDelta = e.wheelDelta / (bChrome ? 360 : 120);
if (!nDelta) nDelta = -e.detail / 3;
var oEl = e.target || e.srcElement;
// 휠 이벤트가 발생한 오브젝트가 FlashObject가 생산한 플래시가 아니면 중지
if (!(new RegExp('(^|\b)' + sClassPrefix + '_([a-z0-9_$]+)(\b|$)', 'i').test(oEl.className))) return;
var sMethod = RegExp.$2;
var nX = 'layerX' in e ? e.layerX : e.offsetX;
var nY = 'layerY' in e ? e.layerY : e.offsetY;
try {
if (!oEl[sMethod](nDelta, nX, nY)) {
if (e.preventDefault) e.preventDefault();
else e.returnValue = false;
}
} catch(err) {
// 등록한 핸들러가 없는 경우
}
};
/**
* 넘겨받은 오브젝트의 절대 좌표를 구해주는 함수
*
* @param {Object} oEl 오브젝트 참조
*/
var getAbsoluteXY = function(oEl) {
var oPhantom = null;
// getter
var bSafari = /Safari/.test(navigator.userAgent);
var bIE = /MSIE/.test(navigator.userAgent);
var fpSafari = function(oEl) {
var oPos = { left : 0, top : 0 };
// obj.offsetParent is null in safari, because obj.parentNode is '<object>'.
if (oEl.parentNode.tagName.toLowerCase() == "object") {
oEl = oEl.parentNode;
}
for (var oParent = oEl, oOffsetParent = oParent.offsetParent; oParent = oParent.parentNode; ) {
if (oParent.offsetParent) {
oPos.left -= oParent.scrollLeft;
oPos.top -= oParent.scrollTop;
}
if (oParent == oOffsetParent) {
oPos.left += oEl.offsetLeft + oParent.clientLeft;
oPos.top += oEl.offsetTop + oParent.clientTop ;
if (!oParent.offsetParent) {
oPos.left += oParent.offsetLeft;
oPos.top += oParent.offsetTop;
}
oOffsetParent = oParent.offsetParent;
oEl = oParent;
}
}
return oPos;
};
var fpOthers = function(oEl) {
var oPos = { left : 0, top : 0 };
for (var o = oEl; o; o = o.offsetParent) {
oPos.left += o.offsetLeft;
oPos.top += o.offsetTop;
}
for (var o = oEl.parentNode; o; o = o.parentNode) {
if (o.tagName == 'BODY') break;
if (o.tagName == 'TR') oPos.top += 2;
oPos.left -= o.scrollLeft;
oPos.top -= o.scrollTop;
}
return oPos;
};
return (bSafari ? fpSafari : fpOthers)(oEl);
}
/**
* 현재 스크롤 위치를 알려주는 함수
*
*/
var getScroll = function() {
var bIE = /MSIE/.test(navigator.userAgent);
if (bIE) {
var sX = document.documentElement.scrollLeft || document.body.scrollLeft;
var sY = document.documentElement.scrollTop || document.body.scrollTop;
return {scrollX:sX, scrollY:sY}
}
else {
return {scrollX:window.pageXOffset, scrollY:window.pageYOffset};
}
}
/**
* 현재 스크린 사이즈를 알려주는 함수
*
*/
var getInnerWidthHeight = function() {
var bIE = /MSIE/.test(navigator.userAgent);
var obj = {};
if (bIE) {
obj.nInnerWidth = document.documentElement.clientWidth || document.body.clientWidth;
obj.nInnerHeight = document.documentElement.clientHeight || document.body.clientHeight;
}
else {
obj.nInnerWidth = window.innerWidth;
obj.nInnerHeight = window.innerHeight;
}
return obj;
}
//-------------------------------------------------------------
// public static function
//-------------------------------------------------------------
/**
* 플래시 오브젝트를 HTML에 임베드하는 함수
*
* @param div 삽입할 DIV ID
* @param sTag 플래시 임베드 테그
*
* @return void
*/
FlashObject.showAt = function(sDiv, sTag){
document.getElementById(sDiv).innerHTML = sTag;
}
/**
* 플래시 오브젝트를 HTML에 임베드하는 함수
* generateTag 함수와 파라미터 동일
*
* @param sURL 플래시 무비 주소
* @param nWidth 플래시 무비 가로크기 (default : 100%)
* @param nHeight 플래시 무비 세로크기 (default : 100%)
* @param oParam 플래시에 설정할 옵션 파라미터 (default : null)
* @param sAlign 플래시 정렬 기준
* @param sFPVersion 플레이어 다운로드 목표 버전
*
* @return void
*/
FlashObject.show = function(sURL, sID, nWidth, nHeight, oParam, sAlign, sFPVersion){
document.write( FlashObject.generateTag(sURL, sID, nWidth, nHeight, oParam, sAlign, sFPVersion) );
}
/**
* 플래시 오브젝트를 HTML에 임베드할 사용할 태그 생성 함수
*
* @param sURL 플래시 무비 주소
* @param nWidth 플래시 무비 가로크기 (default : 100%)
* @param nHeight 플래시 무비 세로크기 (default : 100%)
* @param oParam 플래시에 설정할 옵션 파라미터 (default : null)
* @param sAlign 플래시 정렬 기준
* @param sFPVersion 플레이어 다운로드 목표 버전
*
* @return String
*/
FlashObject.generateTag = function(sURL, sID, nWidth, nHeight, oParam, sAlign, sFPVersion) {
nWidth = nWidth || "100%";
nHeight = nHeight || "100%";
sFPVersion = sFPVersion || "9,0,0,0";
sAlign = sAlign || "middle";
var oOptions = FlashObject.getDefaultOption();
if (oParam)
{
if(oParam.flashVars && typeof(oParam.flashVars) == "object")
oParam.flashVars = objectToString(oParam.flashVars, "&");
for (var key in oParam)
oOptions[key] = oParam[key];
}
var sClsID = 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000';
var sCodeBase = 'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=' + sFPVersion;
var sStyle = 'position:relative !important;';
var sClassName = sClassPrefix + '_' + oOptions.wheelHandler;
var objCode = [];
var embedCode = [];
objCode.push('<object classid="' + sClsID + '" codebase="' + sCodeBase + '" class="' + sClassName + '" style="' + sStyle + '" ' + '" width="' + nWidth + '" height="' + nHeight + '" id="' + sID + '" align="' + sAlign + '">');
objCode.push('<param name="movie" value="' + sURL + '" />');
embedCode.push('<embed width="' + nWidth + '" height="' + nHeight + '" name="' + sID + '" class="' + sClassName + '" style="' + sStyle + '" ' + '" src="' + sURL + '" align="' + sAlign + '" ');
for(var vars in oOptions){
objCode.push('<param name="'+vars+'" value="' + oOptions[vars] + '" />');
embedCode.push(vars +'="' + oOptions[vars] + '" ');
}
embedCode.push('type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
objCode.push(embedCode.join(""));
objCode.push('</object>');
if (bind) {
bind(window, 'unload', unloadHandler);
bind(document, !bFF ? 'mousewheel' : 'DOMMouseScroll', wheelHandler);
bind = null;
}
return objCode.join("");
};
/**
* 플래시 옵션 기본 설정값
*
* @return object
*/
FlashObject.getDefaultOption = function() {
return {
quality:"high",
bgColor:"#FFFFFF",
allowScriptAccess:"always",
wmode:"window",
menu:"false",
allowFullScreen:"true"
};
};
/**
* 플래시 오브젝트를 찾아 반환해주는 함수
*
* @param objID 찾아야하는 플래시 오브젝트 ID
* @param doc 플래시를 갖고 있는 document 객체 / default : null
* @return object
*/
FlashObject.find = function(sID, oDoc) {
oDoc = oDoc || document;
return oDoc[sID] || oDoc.all[sID];
};
/**
* 매개변수로 넘겨 받은 아이디의 플래시 오브젝트를 찾아 가로 크기를 변경하는 함수
*
* @param objID 찾아야하는 플래시 오브젝트 ID
* @param value 가로크기로 설정할
* @return void
*/
FlashObject.setWidth = function(sID, value) {
FlashObject.find(sID).width = value;
};
/**
* 매개변수로 넘겨 받은 아이디의 플래시 오브젝트를 찾아 세로 크기를 변경하는 함수
*
* @param objID 찾아야하는 플래시 오브젝트 ID
* @param value 세로크기로 설정할
* @return void
*/
FlashObject.setHeight = function(sID, value) {
FlashObject.find(sID).height = value;
};
/**
* 매개변수로 넘겨 받은 아이디의 플래시 오브젝트를 찾아 사이즈를 변경하는 함수
*
* @param objID 찾아야하는 플래시 오브젝트 ID
* @param nWidth 가로크기로 설정할
* @param nHeight 세로크기로 설정할
* @return void
*/
FlashObject.setSize = function(sID, nWidth, nHeight) {
FlashObject.find(sID).height = nHeight;
FlashObject.find(sID).width = nWidth;
};
/**
* 오브젝트 아이디를 넘겨 받으면 해당 오브젝트의 절대 좌표 스크롤을 감안한 상대죄표를
* 반환하는 함수
*
* @param sID 플래시 오브젝트 ID
*/
FlashObject.getPositionObj = function(sID){
var targetObj = FlashObject.find(sID);
if(targetObj == null)
return null;
var absPosi = getAbsoluteXY(targetObj);
var scrollPosi = getScroll();
var obj = {}
obj.absoluteX = absPosi.left;
obj.absoluteY = absPosi.top;
obj.scrolledX = obj.absoluteX - scrollPosi.scrollX;
obj.scrolledY = obj.absoluteY - scrollPosi.scrollY;
obj.browserWidth = getInnerWidthHeight().nInnerWidth;
return obj;
}
return FlashObject;
})()

View file

@ -1,3 +0,0 @@
<!--#include('./page_info_header.html')-->
<!--#include('./date_set_header.html')-->
<p>페이지 분석</p>

View file

@ -1,11 +0,0 @@
<!--#include('./header.html')-->
<!--%import("js/flashObject.js")-->
<div>
<ul class="localNavigation">
<li <!--@if($act=='dispAnalyticsPageInfoAdminPagePopChart')-->class="on"<!--@end-->><a href="{getUrl('act', 'dispAnalyticsPageInfoAdminPagePopChart', 'module_srl', '')}">{$lang->analytics_api_method['pagePop']}</a></li>
<li <!--@if($act=='dispAnalyticsPageInfoAdminPageDrillDownChart')-->class="on"<!--@end-->><a href="{getUrl('act', 'dispAnalyticsPageInfoAdminPageDrillDownChart', 'module_srl', '')}">{$lang->analytics_api_method['pageDrillDown']}</a></li>
<li <!--@if($act=='dispAnalyticsPageInfoAdminPageStartChart')-->class="on"<!--@end-->><a href="{getUrl('act', 'dispAnalyticsPageInfoAdminPageStartChart', 'module_srl', '')}">{$lang->analytics_api_method['pageStart']}</a></li>
<li <!--@if($act=='dispAnalyticsPageInfoAdminPageEndChart')-->class="on"<!--@end-->><a href="{getUrl('act', 'dispAnalyticsPageInfoAdminPageEndChart', 'module_srl', '')}">{$lang->analytics_api_method['pageEnd']}</a></li>
<li <!--@if($act=='dispAnalyticsPageInfoAdminPageReturnChart')-->class="on"<!--@end-->><a href="{getUrl('act', 'dispAnalyticsPageInfoAdminPageReturnChart', 'module_srl', '')}">{$lang->analytics_api_method['pageReturn']}</a></li>
</ul>
</div>

View file

@ -1,145 +0,0 @@
<!--#include('./page_info_header.html')-->
<h3 class="xeAdmin"><span class="gray">{$lang->analytics_api_method[$method]}</span></h3>
<p>{$lang->about_analytics_method[$method]}</p>
<!--#include('./date_set_header.html')-->
<div id="dataTable"></div>
{@$_t=$lang->analytics_api_valuname[$method];}
<script type="text/javascript">
var oAnalyticsValueName = {};
<!--@foreach($_t as $key => $val)-->
oAnalyticsValueName['{$key}'] = '{$val}';
<!--@end-->
var oAnalyticsWeekName = {};
<!--@foreach($_week_name as $key => $val)-->
oAnalyticsWeekName['{$key}'] = '{$val}';
<!--@end-->
var sAnalyticsTotal = '{$lang->sum_total}';
var sAnalyticsAfterDay = '{$lang->after_day}';
var sAnalyticsTableCaption = '{$lang->analytics_api_method[$method]} ' + '{$lang->detail_info}';
jQuery.getJSON('{$json_url}'
,function(data){
var aTableData = data.response.data;
if (!aTableData)
return;
var oSumData = {};
var aTableHead = [];
var aTableBody = [];
var table_tag;
var table_head;
var table_body;
var key;
var i;
var dataKey;
var nValue;
aTableHead.push(oAnalyticsValueName['rank']);
// table head생성
for(key in aTableData[0])
{
oSumData[key] = 0;
aTableHead.push(oAnalyticsValueName[key]);
}
aTableHead.push(oAnalyticsValueName['percent']);
table_head = '<thead><tr><th scope="col">' + aTableHead.join('</th><th scope="col">') +'</th></tr></thead>';
// table body생성
table_body = '<tbody>';
var percentData = 0;
var sPercentTD = '';
var imageWidth = 0;
var sumpv = 0;
var dutime = 0;
var sumbounce = 0;
var sumstart = 0;
var bouncePercent = 0;
var sumexit = 0;
var exitPercent = 0;
var sMinute = '{$lang->minute}';
var sSecond = '{$lang->second}';
var sumunqpv = 0;
var nSumUniqPv = 0;
for(i = 0; i < aTableData.length; i++)
{
aTableBody = [];
aTableBody.push(i + 1);
aTableBody.push(aTableData[i]['url']);
sumpv = parseInt(aTableData[i]['sumpv']);
aTableBody.push(sumpv);
sumunqpv = parseInt(aTableData[i]['sumunqpv']);
nSumUniqPv += sumunqpv;
aTableBody.push(sumunqpv);
dutime = parseInt(aTableData[i]['sumdutime']);
aTableBody.push(Math.floor(dutime / 60) + sMinute + dutime % 60 + sSecond);
sumbounce = parseInt(aTableData[i]['sumbounce']);
sumstart = parseInt(aTableData[i]['sumstart']);
if (sumbounce > 0 && sumstart > 0)
{
bouncePercent = Math.round(sumbounce / sumstart * 10000)/100;
}
else
{
bouncePercent = 0;
}
aTableBody.push(bouncePercent + '%');
sumexit = parseInt(aTableData[i]['sumexit']);
if (sumexit > 0 && sumpv > 0)
{
exitPercent = Math.round(sumexit / sumpv * 10000)/100;
}
else
{
exitPercent = 0;
}
aTableBody.push(exitPercent + '%');
if (sumpv > 0)
{
percentData = Math.round(sumpv / data.response.data_totalpv * 10000)/100;
imageWidth = Math.round(percentData);
}
else
{
percentData = 0;
imageWidth = 1;
}
if (percentData < 1)
{
sPercentTD = '<img class="graphHr" style="width:3px" alt="" src="./images/iconBar.gif" />';
}
else
{
sPercentTD = '<img class="graphHr" style="width:'+imageWidth +'%" alt="" src="./images/iconBar.gif" />'
}
sPercentTD += percentData + '%';
table_body += '<tr><td>' + aTableBody.join('</td><td>') + '</td><td class="wide">' + sPercentTD + '</td></tr>';
}
aTableBody = [];
table_body += '<tr><td colspan=2>'+sAnalyticsTotal+'</td>';
aTableBody = [data.response.data_totalpv, nSumUniqPv, '-', '100%', '100%', '100%'];
table_body += '<td>' + aTableBody.join('</td><td>') + '</td></tr></tbody>';
table_tag = '<table cellspacing="0" class="rowTable"><caption>'+sAnalyticsTableCaption + '</caption>' + table_head + table_body + '</table>';
jQuery("#dataTable").html(table_tag);
});
</script>

View file

@ -1,54 +0,0 @@
<!--#include('./page_info_header.html')-->
<h3 class="xeAdmin"><span class="gray">{$lang->analytics_api_method[$method]}</span></h3>
<p>{$lang->about_analytics_method[$method]}</p>
<!--#include('./date_set_header.html')-->
<table cellspacing="0" class="rowTable">
<thead>
<tr>
<!--@foreach($value_names as $key => $val)-->
<th scope="col"><div>{$lang->analytics_api_valuname[$method][$key]}</div></th>
<!--@end-->
</tr>
</thead>
<tbody>
{@$__i=($page - 1) * $parsed_data->page_count->body}
<!--@foreach($parsed_data->data as $key => $val)-->
<!--@if($val->sumbounce->body > 0)-->
{@$bounce_percent = sprintf("%0.2f", $val->sumbounce->body / $val->sumstart->body * 100)}
<!--@else-->
{@$bounce_percent = 0}
<!--@end-->
<!--@if($val->sumexit->body > 0)-->
{@$exit_percent = sprintf("%0.2f", $val->sumexit->body / $val->sumpv->body * 100)}
<!--@else-->
{@$exit_percent = 0}
<!--@end-->
<!--@if($val->sumpv->body > 0)-->
{@$pv_percent = sprintf("%0.2f", $val->sumpv->body / $parsed_data->data_totalpv->body * 100)}
{@$image_width = sprintf("%d", $pv_percent)}
<!--@else-->
{@$pv_percent = 0}
{@$image_width = 1}
<!--@end-->
<tr>
<td>{$__i++ + 1}</td>
<td><a href="{$val->url->body}">{$val->url->body}</td>
<td>{$val->sumpv->body}</td>
<td>{$val->sumunqpv->body}</td>
<td>{$val->sumdutime->body}</td>
<td>{$bounce_percent}%</td>
<td>{$exit_percent}%</td>
<td class="wide">
{@$image_percent = $image_width - 30}
<!--@if($image_percent < 1)-->
<img class="graphHr" style="width:3px" alt="" src="./images/iconBar.gif" />
<!--@else-->
<img class="graphHr" style="width:{$image_percent}%" alt="" src="./images/iconBar.gif" />
<!--@end-->
{$pv_percent}%</td>
</tr>
<!--@end-->
</tbody>
</table>
{$pv_percent}

View file

@ -1,171 +0,0 @@
<!--#include('./page_info_header.html')-->
<h3 class="xeAdmin"><span class="gray">{$lang->analytics_api_method[$method]}</span></h3>
<p>{$lang->about_analytics_method[$method]}</p>
<!--#include('./date_set_header.html')-->
<script text="text/javascript">
var oAnalyticsMethodDisableField = {
'pageStart':['day', 'avgdt'],
'pageEnd':['day', 'avgdt'],
'pageReturn':['day', 'avgdt'],
'pagePop':['day']};
</script>
<div id="dataTable"></div>
<div class="pagination a1" id="pageNavi"></div>
{@$_t=$lang->analytics_api_valuname[$method];}
<script type="text/javascript">
var oAnalyticsValueName = {};
<!--@foreach($_t as $key => $val)-->
oAnalyticsValueName['{$key}'] = '{$val}';
<!--@end-->
var oAnalyticsWeekName = {};
<!--@foreach($_week_name as $key => $val)-->
oAnalyticsWeekName['{$key}'] = '{$val}';
<!--@end-->
var sAnalyticsTotal = '{$lang->sum_total}';
var sAnalyticsAfterDay = '{$lang->after_day}';
var sAnalyticsTableCaption = '{$lang->analytics_api_method[$method]} ' + '{$lang->detail_info}';
jQuery.getJSON('{$json_url}'
,function(data){
var aTableData = data.response.data;
if (!aTableData)
return;
var oSumData = {};
var aTableHead = [];
var aTableBody = [];
var table_tag;
var table_head;
var table_body;
var key;
var i;
var dataKey;
var nValue;
aTableHead.push(oAnalyticsValueName['rank']);
// table head생성
for(key in aTableData[0])
{
if (oAnalyticsMethodDisableField['{$method}'] && jQuery.inArray(key , oAnalyticsMethodDisableField['{$method}']) >= 0)
continue;
oSumData[key] = 0;
aTableHead.push(oAnalyticsValueName[key]);
}
aTableHead.push(oAnalyticsValueName['percent']);
table_head = '<thead><tr><th scope="col">' + aTableHead.join('</th><th scope="col">') +'</th></tr></thead>';
// table body생성
table_body = '<tbody>';
var percentData = 0;
var sPercentTD = '';
var imageWidth = 0;
var sumpv = 0;
<!--@if($page)-->
var nCurrentPage = {$page};
<!--@else-->
var nCurrentPage = 1;
<!--@end-->
var nRank = (nCurrentPage - 1) * 20;
for(i = 0; i < aTableData.length; i++)
{
aTableBody = [];
aTableBody.push(nRank + i + 1);
for (dataKey in aTableData[i])
{
if (oAnalyticsMethodDisableField['{$method}'] && jQuery.inArray(dataKey , oAnalyticsMethodDisableField['{$method}']) >= 0)
continue;
nValue = aTableData[i][dataKey];
// 날짜형 데이터의 경우 parseFloat건너 뜀
if (nValue.indexOf('-') < 0)
{
nValue = parseFloat(nValue);
oSumData[dataKey] += nValue;
}
// 문자열 데이터인 경우 원본 그대로 입력한다.
if (isNaN(nValue))
{
nValue = aTableData[i][dataKey];
}
aTableBody.push(nValue);
}
sumpv = parseInt(aTableData[i]['sumpv']);
if (sumpv > 0)
{
percentData = Math.round(sumpv / data.response.data_totalpv * 10000)/100;
imageWidth = Math.round(percentData);
}
else
{
percentData = 0;
imageWidth = 1;
}
if (percentData < 1)
{
sPercentTD = '<img class="graphHr" style="width:3px" alt="" src="./images/iconBar.gif" />';
}
else
{
sPercentTD = '<img class="graphHr" style="width:'+imageWidth +'%" alt="" src="./images/iconBar.gif" />'
}
sPercentTD += percentData + '%';
table_body += '<tr><td>' + aTableBody.join('</td><td>') + '</td><td class="wide">' + sPercentTD + '</td></tr>';
}
aTableBody = [];
table_body += '<tr><td colspan=2>'+sAnalyticsTotal+'</td>';
aTableBody = [data.response.data_totalpv, '100%'];
table_body += '<td>' + aTableBody.join('</td><td>') + '</td></tr></tbody>';
table_tag = '<table cellspacing="0" class="rowTable"><caption>'+sAnalyticsTableCaption + '</caption>' + table_head + table_body + '</table>';
jQuery("#dataTable").html(table_tag);
// pageNavigation 생성
var sFirstPage = '{$lang->first_page}';
var sLastPage = '{$lang->last_page}';
var nStartPageNumbering = nCurrentPage - 2;
nStartPageNumbering = (nStartPageNumbering < 1)?1:nStartPageNumbering;
var sPageNaviTag = '';
var aPageNavi = [];
var sPageURL = '{getUrl("page","","module_srl","")}'
for (i = 0; i < 5; i++)
{
if (nStartPageNumbering > data.response.page_total_count)
break;
if (nCurrentPage == nStartPageNumbering)
{
aPageNavi.push('<strong>'+ nStartPageNumbering + '</strong>');
}
else
{
aPageNavi.push('<a href="' + sPageURL + '&page=' + nStartPageNumbering + '">' + nStartPageNumbering + '</a>');
}
nStartPageNumbering++;
}
sPageNaviTag = '<a href="' + sPageURL + '" class="prevEnd">' + sFirstPage + '</a>'
+ aPageNavi.join('')
+ '<a href="' + sPageURL + '&page=' + data.response.page_total_count + '" class="nextEnd">' + sLastPage + '</a>';
jQuery("#pageNavi").html(sPageNaviTag);
});
</script>

View file

@ -1,51 +0,0 @@
<!--#include('./page_info_header.html')-->
<h3 class="xeAdmin"><span class="gray">{$lang->analytics_api_method[$method]}</span></h3>
<p>{$lang->about_analytics_method[$method]}</p>
<!--#include('./date_set_header.html')-->
<table cellspacing="0" class="rowTable">
<thead>
<tr>
<!--@foreach($value_names as $key => $val)-->
<th scope="col"><div>{$lang->analytics_api_valuname[$method][$key]}</div></th>
<!--@end-->
</tr>
</thead>
<tbody>
{@$__i=($page - 1) * $parsed_data->page_count->body}
<!--@foreach($parsed_data->data as $key => $val)-->
<!--@if($val->sumpv->body > 0)-->
{@$percent = sprintf("%0.2f", $val->sumpv->body / $parsed_data->data_totalpv->body * 100)}
{@$image_width = sprintf("%d", $percent)}
<!--@else-->
{@$percent = 0}
{@$image_width = 1}
<!--@end-->
<tr>
<td>{$__i++ + 1}</td>
<td><a href="{$val->url->body}">{$val->url->body}</td>
<td>{$val->sumpv->body}</td>
<td>
{@$image_percent = $image_width - 30}
<!--@if($image_percent < 1)-->
<img class="graphHr" style="width:3px" alt="" src="./images/iconBar.gif" />
<!--@else-->
<img class="graphHr" style="width:{$image_percent}%" alt="" src="./images/iconBar.gif" />
<!--@end-->
{$percent}%</td>
</tr>
<!--@end-->
</tbody>
</table>
<div class="pagination a1">
<a href="{getUrl('page','','module_srl','')}" class="prevEnd">{$lang->first_page}</a>
<!--@while($page_no = $page_navigation->getNextPage())-->
<!--@if($page == $page_no)-->
<strong>{$page_no}</strong>
<!--@else-->
<a href="{getUrl('page',$page_no,'module_srl','')}">{$page_no}</a>
<!--@end-->
<!--@end-->
<a href="{getUrl('page',$page_navigation->last_page,'module_srl','')}" class="nextEnd">{$lang->last_page}</a>
</div>

View file

@ -1,13 +0,0 @@
<!--#include('./header.html')-->
<!--%import("js/flashObject.js")-->
<div>
<ul class="localNavigation">
<li <!--@if($act=='dispAnalyticsVisitInfoAdminVisitChart')-->class="on"<!--@end-->><a href="{getUrl('act', 'dispAnalyticsVisitInfoAdminVisitChart', 'module_srl', '')}">{$lang->analytics_api_method['visit']}</a></li>
<li <!--@if($act=='dispAnalyticsVisitInfoAdminVisitPageViewChart')-->class="on"<!--@end-->><a href="{getUrl('act', 'dispAnalyticsVisitInfoAdminVisitPageViewChart', 'module_srl', '')}">{$lang->analytics_api_method['visitPageView']}</a></li>
<li <!--@if($act=='dispAnalyticsVisitInfoAdminVisitTimeChart')-->class="on"<!--@end-->><a href="{getUrl('act', 'dispAnalyticsVisitInfoAdminVisitTimeChart', 'module_srl', '')}">{$lang->analytics_api_method['visitTime']}</a></li>
<li <!--@if($act=='dispAnalyticsVisitInfoAdminVisitDayChart')-->class="on"<!--@end-->><a href="{getUrl('act', 'dispAnalyticsVisitInfoAdminVisitDayChart', 'module_srl', '')}">{$lang->analytics_api_method['visitDay']}</a></li>
<li <!--@if($act=='dispAnalyticsVisitInfoAdminVisitBackChart')-->class="on"<!--@end-->><a href="{getUrl('act', 'dispAnalyticsVisitInfoAdminVisitBackChart', 'module_srl', '')}">{$lang->analytics_api_method['visitBack']}</a></li>
<li <!--@if($act=='dispAnalyticsVisitInfoAdminVisitStayTimeChart')-->class="on"<!--@end-->><a href="{getUrl('act', 'dispAnalyticsVisitInfoAdminVisitStayTimeChart', 'module_srl', '')}">{$lang->analytics_api_method['visitStayTime']}</a></li>
<li <!--@if($act=='dispAnalyticsVisitInfoAdminVisitPathChart')-->class="on"<!--@end-->><a href="{getUrl('act', 'dispAnalyticsVisitInfoAdminVisitPathChart', 'module_srl', '')}">{$lang->analytics_api_method['visitPath']}</a></li>
</ul>
</div>

View file

@ -1,92 +0,0 @@
<!--#include('./visit_info_header.html')-->
<h3 class="xeAdmin"><span class="gray">{$lang->analytics_api_method[$method]}</span></h3>
<p>{$lang->about_analytics_method[$method]}</p>
<!--#include('./date_set_header.html')-->
<div>
{@$__url = getNotEncodedFullUrl('', 'module', 'analytics', 'act', 'dispAnalyticsAPIData', 'api_key', $api_key, 'method', $method, 'start_date', $start_date, 'end_date', $end_date)}
<!--@if($chart_type == 'line')-->
<script language="JavaScript">
var flashVars = "designURL=http://devjin.xpressengine.com/xe/modules/analytics/tpl/images/xml/{$method}.xml&"+
"isScroll=true&"+
"dataURL="+encodeURIComponent("{$__url}");
var obj = {};
obj.flashVars = flashVars;
obj.wmode = "transparent";
nhn.FlashObject.show("http://devjin.xpressengine.com/xe/modules/analytics/tpl/images/WebLog.swf", "{$method}", 800, 400, obj);
</script>
<!--@end-->
<!--@if($chart_type == 'pie')-->
<script language="JavaScript">
var flashVars = "baseURL=http://devjin.xpressengine.com/xe/modules/analytics/tpl/images/smRepoter/&" +
"dSet=01&" +
"gDataXML="+encodeURIComponent("{$__url}");
var obj = {};
obj.flashVars = flashVars;
obj.wmode = "transparent";
nhn.FlashObject.show("http://devjin.xpressengine.com/xe/modules/analytics/tpl/images/MainContainer.swf", "{$method}", 700, 315, obj);
</script>
<!--@end-->
</div>
<div id="dataTable"></div>
{@$_t=$lang->analytics_api_valuname[$method];}
<script language="JavaScript">
var lang = {};
<!--@foreach($_t as $key => $val)-->
lang['{$key}'] = '{$val}';
<!--@end-->
var totalStr = '{$lang->total}';
jQuery.getJSON('{$json_url}'
,function(data){
var table_data = data.response.data;
if (!table_data)
return;
var sum_data = {};
var table_tag = '<table cellspacing="0" class="rowTable"><thead><tr>';
for(var key in table_data[0])
{
sum_data[key] = 0;
table_tag += '<th scope="col"><div>' + lang[key] + '</div></th>';
}
table_tag += '</tr></thead><tbody>';
for(var i = 0; i < table_data.length; i++)
{
table_tag += '<tr>';
for (var dataKey in table_data[i])
{
sum_data[dataKey] += parseInt(table_data[i][dataKey]);
table_tag += '<td>' + table_data[i][dataKey] + '</td>';
}
table_tag += '</tr>';
}
table_tag += '<tr>';
for (var key in sum_data)
{
if (key == 'day')
{
table_tag += '<td>' + totalStr + '</td>';
}
else
{
table_tag += '<td>' + sum_data[key] + '</td>';
}
}
table_tag += '</tr></tbody></table>';
var table_div = document.getElementById("dataTable");
table_div.innerHTML = table_tag;
}
);
</script>

View file

@ -1,76 +0,0 @@
<!--#include('./visit_info_header.html')-->
<h3 class="xeAdmin"><span class="gray">{$lang->analytics_api_method[$method]}</span></h3>
<p>{$lang->about_analytics_method[$method]}</p>
<!--#include('./date_set_header.html')-->
<div>
{@$__url = getNotEncodedFullUrl('', 'module', 'analytics', 'act', 'dispAnalyticsAPIData', 'api_key', $api_key, 'method', $method, 'start_date', $start_date, 'end_date', $end_date)}
{$__url}
<!--@if($chart_type == 'line')-->
<script language="JavaScript">
var flashVars = "designURL=http://devjin.xpressengine.com/xe/modules/analytics/tpl/images/xml/{$method}.xml&"+
"isScroll=true&"+
"dataURL="+encodeURIComponent("{$__url}");
var obj = {};
obj.flashVars = flashVars;
obj.wmode = "transparent";
nhn.FlashObject.show("http://devjin.xpressengine.com/xe/modules/analytics/tpl/images/WebLog.swf", "{$method}", 800, 400, obj);
</script>
<!--@end-->
<!--@if($chart_type == 'pie')-->
<script language="JavaScript">
var flashVars = "baseURL=http://devjin.xpressengine.com/xe/modules/analytics/tpl/images/smRepoter/&" +
"dSet=01&" +
"gDataXML="+encodeURIComponent("{$__url}");
var obj = {};
obj.flashVars = flashVars;
obj.wmode = "transparent";
nhn.FlashObject.show("http://devjin.xpressengine.com/xe/modules/analytics/tpl/images/MainContainer.swf", "{$method}", 700, 315, obj);
</script>
<!--@end-->
</div>
<table cellspacing="0" class="rowTable">
<!--@foreach($json_data->response->data as $key => $val)-->
<!--@if($key == 0)-->
{@$_sum_data = array()}
<thead>
<tr>
<!--@foreach($val as $_key => $_val)-->
{@$_sum_data[$_key] = 0}
<!--@if($_key != 'day' && $_key != 'site_id')-->
<!--@if($_key == 'freq')-->
<th scope="col"><div>{$lang->return_time}</div></th>
<!--@else-->
<th scope="col"><div>{$lang->analytics_api_valuname[$method][$_key]}</div></th>
<!--@end-->
<!--@end-->
<!--@end-->
</tr>
</thead>
<tbody>
<!--@end-->
<tr>
<!--@foreach($val as $_key => $_val)-->
<!--@if($_key != 'day' && $_key != 'site_id')-->
{@$_sum_data[$_key] += $_val}
<!--@if($_key == 'freq')-->
<td>{$_val.$lang->after_day}</td>
<!--@else-->
<td>{$_val}</td>
<!--@end-->
<!--@end-->
<!--@end-->
</tr>
<!--@end-->
<tr>
<!--@foreach($_sum_data as $__key => $__val)-->
<!--@if($__key != 'day' && $__key != 'site_id')-->
<!--@if($__key == 'freq')-->
<td>{$lang->sum_total}</td>
<!--@else-->
<td>{$__val}</td>
<!--@end-->
<!--@end-->
<!--@end-->
</tr>
</tbody>
</table>

View file

@ -1,99 +0,0 @@
<!--#include('./visit_info_header.html')-->
<h3 class="xeAdmin"><span class="gray">{$lang->analytics_api_method[$method]}</span></h3>
<p>{$lang->about_analytics_method[$method]}</p>
<!--#include('./date_set_header.html')-->
<div>
{@$__url = getNotEncodedFullUrl('', 'module', 'analytics', 'act', 'dispAnalyticsAPIData', 'api_key', $api_key, 'method', $method, 'start_date', $start_date, 'end_date', $end_date)}
<!--@if($chart_type == 'line')-->
<script language="JavaScript">
var flashVars = "designURL=http://devjin.xpressengine.com/xe/modules/analytics/tpl/images/xml/{$method}.xml&"+
"isScroll=true&"+
"dataURL="+encodeURIComponent("{$__url}");
var obj = {};
obj.flashVars = flashVars;
obj.wmode = "transparent";
nhn.FlashObject.show("http://devjin.xpressengine.com/xe/modules/analytics/tpl/images/WebLog.swf", "{$method}", 800, 400, obj);
</script>
<!--@end-->
<!--@if($chart_type == 'pie')-->
<script language="JavaScript">
var flashVars = "baseURL=http://devjin.xpressengine.com/xe/modules/analytics/tpl/images/smRepoter/&" +
"dSet=01&" +
"gDataXML="+encodeURIComponent("{$__url}");
var obj = {};
obj.flashVars = flashVars;
obj.wmode = "transparent";
nhn.FlashObject.show("http://devjin.xpressengine.com/xe/modules/analytics/tpl/images/MainContainer.swf", "{$method}", 700, 315, obj);
</script>
<!--@end-->
</div>
<div id="dataTable"></div>
{@$_t=$lang->analytics_api_valuname[$method];}
<script language="JavaScript">
var lang = {};
<!--@foreach($_t as $key => $val)-->
lang['{$key}'] = '{$val}';
<!--@end-->
var totalStr = '{$lang->total}';
jQuery.getJSON('{$json_url}'
,function(data){
var table_data = data.response.data;
if (!table_data)
return;
var sum_data = {};
var table_tag = '<table cellspacing="0" class="rowTable"><thead><tr>';
for(var key in table_data[0])
{
if (key == 'day')
continue;
sum_data[key] = 0;
table_tag += '<th scope="col"><div>' + lang[key] + '</div></th>';
}
table_tag += '</tr></thead><tbody>';
for(var i = 0; i < table_data.length; i++)
{
table_tag += '<tr>';
for (var dataKey in table_data[i])
{
if (dataKey == 'day')
continue;
sum_data[dataKey] += parseInt(table_data[i][dataKey]);
table_tag += '<td>' + table_data[i][dataKey] + '</td>';
}
table_tag += '</tr>';
}
table_tag += '<tr>';
for (var key in sum_data)
{
if (key == 'week')
{
table_tag += '<td>' + totalStr + '</td>';
}
else
{
table_tag += '<td>' + sum_data[key] + '</td>';
}
}
table_tag += '</tr></tbody></table>';
var table_div = document.getElementById("dataTable");
console.log(table_div);
table_div.innerHTML = table_tag;
}
);
</script>

View file

@ -1,152 +0,0 @@
<!--#include('./visit_info_header.html')-->
<h3 class="xeAdmin"><span class="gray">{$lang->analytics_api_method[$method]}</span></h3>
<p>{$lang->about_analytics_method[$method]}</p>
<!--#include('./date_set_header.html')-->
<script type="text/javascript">
var oAnalyticsMethodDisableField = {
'visitTime':['day'],
'visitDay':['day'],
'visitBack':['site_id','day'],
'visitStayTime':['visit']};
var oAnalyticsMethodMainField = {
'visit':'day',
'visitPageView':'day',
'visitTime':'timezone',
'visitDay':'week',
'visitBack':'freq',
'visitStayTime':'day',
'visitPath':'day'};
</script>
<div>
{@$__url = getNotEncodedFullUrl('', 'module', 'analytics', 'act', 'dispAnalyticsAPIData', 'api_key', $api_key, 'method', $method, 'start_date', $start_date, 'end_date', $end_date)}
<script type="text/javascript">
var analyticsChartSWFURL = '';
var flashVars = '';
<!--@if($chart_type == 'line')-->
flashVars = "designURL=modules/analytics/tpl/images/xml/{$method}.xml&"+
"isScroll=true&"+
"dataURL="+encodeURIComponent("{$__url}");
analyticsChartSWFURL = "modules/analytics/tpl/images/WebLog.swf";
<!--@else if($chart_type == 'pie')-->
flashVars = "baseURL=modules/analytics/tpl/images/smRepoter/&" +
"dSet=01&" +
"gDataXML="+encodeURIComponent("{$__url}");
analyticsChartSWFURL = "modules/analytics/tpl/images/MainContainer.swf";
<!--@end-->
var obj = {};
obj.flashVars = flashVars;
obj.wmode = "transparent";
nhn.FlashObject.show(analyticsChartSWFURL, "{$method}", 700, 315, obj);
</script>
</div>
<div id="dataTable"></div>
{@$_t=$lang->analytics_api_valuname[$method];}
{@$_week_name = $lang->week_name;}
<script type="text/javascript">
var oAnalyticsValueName = {};
<!--@foreach($_t as $key => $val)-->
oAnalyticsValueName['{$key}'] = '{$val}';
<!--@end-->
var oAnalyticsWeekName = {};
<!--@foreach($_week_name as $key => $val)-->
oAnalyticsWeekName['{$key}'] = '{$val}';
<!--@end-->
var sAnalyticsTotal = '{$lang->sum_total}';
var sAnalyticsAfterDay = '{$lang->after_day}';
var sAnalyticsTableCaption = '{$lang->analytics_api_method[$method]} ' + '{$lang->detail_info}';
jQuery.getJSON('{$json_url}'
,function(data){
var aTableData = data.response.data;
if (!aTableData)
return;
var oSumData = {};
var aTableHead = [];
var aTableBody = [];
var table_tag;
var table_head;
var table_body;
var key;
var i;
var dataKey;
var nValue;
// table head생성
for(key in aTableData[0])
{
if (oAnalyticsMethodDisableField['{$method}'] && jQuery.inArray(key , oAnalyticsMethodDisableField['{$method}']) >= 0)
continue;
oSumData[key] = 0;
aTableHead.push(oAnalyticsValueName[key]);
}
table_head = '<thead><tr><th scope="col">' + aTableHead.join('</th><th scope="col">') +'</th></tr></thead>';
// table body생성
table_body = '<tbody>';
for(i = 0; i < aTableData.length; i++)
{
aTableBody = [];
for (dataKey in aTableData[i])
{
if (oAnalyticsMethodDisableField['{$method}'] && jQuery.inArray(dataKey , oAnalyticsMethodDisableField['{$method}']) >= 0)
continue;
nValue = aTableData[i][dataKey];
// 날짜형 데이터의 경우 parseFloat건너 뜀
if (nValue.indexOf('-') < 0)
{
nValue = parseFloat(nValue);
oSumData[dataKey] += nValue;
}
// 요일별 방문 분포의 경우
// 수치별 요일명을 노출하도록 함
if (dataKey == 'week')
{
nValue = oAnalyticsWeekName[nValue];
}
// 재방문 간격의 경우
// 몇일 후 데이터 표현을 위해 postFix를 붙인다.
else if (dataKey == 'freq')
{
nValue = nValue + sAnalyticsAfterDay;
}
aTableBody.push(nValue);
}
table_body += '<tr><td>' + aTableBody.join('</td><td>') + '</td></tr>'
}
aTableBody = [];
for (key in oSumData)
{
if (key == oAnalyticsMethodMainField['{$method}'])
{
aTableBody.push(sAnalyticsTotal);
}
else
{
aTableBody.push(oSumData[key]);
}
}
table_body += '<tr><td>' + aTableBody.join('</td><td>') + '</td></tr></tbody>';
table_tag = '<table cellspacing="0" class="rowTable"><caption>'+sAnalyticsTableCaption + '</caption>' + table_head + table_body + '</table>';
jQuery("#dataTable").html(table_tag);
}
);
</script>