mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-03 10:32:12 +09:00
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@7654 201d5d3c-b55e-5fd7-737f-ddc643e51545
483 lines
15 KiB
PHP
483 lines
15 KiB
PHP
<?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;
|
|
}
|
|
*/
|
|
}
|
|
?>
|