236 lines
5.3 KiB
PHP
236 lines
5.3 KiB
PHP
<?php
|
|
/*
|
|
Author: Riccardo Di Dato
|
|
Creation Date: 28/gen/2016
|
|
*/
|
|
|
|
|
|
require_once(dirname(__FILE__)."/../load.php");
|
|
|
|
GUIHandler::generateHtmlHeaders(array(),true);
|
|
|
|
if (!AdminLoginManager::isLogged()){
|
|
GUIHandler::redirect("admin/login.php");
|
|
}
|
|
else if (!AdminLoginManager::getLogged()->hasRole(AdminModel::ADMIN_TYPE_SUPERADMIN)){
|
|
GUIHandler::redirect("admin/index.php");
|
|
}
|
|
|
|
MenuGenerator::generateMenu();
|
|
|
|
HTMLHelper::generateAdminHead();
|
|
|
|
$pipeline = array(
|
|
array(
|
|
'$match'=>array(
|
|
'statType'=>StatisticModel::STAT_TYPE_PAGE
|
|
)
|
|
),
|
|
array(
|
|
'$group'=>array(
|
|
"_id"=>array(
|
|
'date'=>array(
|
|
"day"=>array('$dayOfMonth'=>'$date'),
|
|
"month"=>array('$month'=>'$date'),
|
|
"year"=>array('$year'=>'$date')
|
|
),
|
|
'user'=>'$user.id',
|
|
),
|
|
"visualizzazioni"=>array(
|
|
'$sum'=>1
|
|
),
|
|
"isNew"=>array(
|
|
'$sum'=>array(
|
|
'$cond'=>array(
|
|
array('$eq'=>array('$user.isNew',true)),
|
|
1,
|
|
0
|
|
)
|
|
)
|
|
)
|
|
)
|
|
),
|
|
array(
|
|
'$group'=>array(
|
|
"_id"=>array(
|
|
'date'=>'$_id.date'
|
|
),
|
|
"visualizzazioni"=>array(
|
|
'$sum'=>'$visualizzazioni'
|
|
),
|
|
"unici"=>array(
|
|
'$sum'=>'$isNew'
|
|
),
|
|
"visitatori"=>array(
|
|
'$sum'=>1
|
|
)
|
|
)
|
|
)
|
|
);
|
|
|
|
$result = GlobalVariables::get("dao")->aggregate("StatisticModel",$pipeline);
|
|
|
|
?>
|
|
<div>
|
|
<?php
|
|
|
|
var_dump($result);
|
|
?>
|
|
<div id="container"></div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
$(function () {
|
|
$('#container').highcharts({
|
|
title: {
|
|
text: 'Visualizzazioni e visitatori'
|
|
},
|
|
|
|
tooltip:{
|
|
xDateFormat:"%d/%m/%Y",
|
|
crosshairs:[true],
|
|
shared: true
|
|
},
|
|
|
|
xAxis:{
|
|
type:'datetime',
|
|
// tickInterval: 3600*1000,
|
|
labels:{
|
|
formatter: function() {
|
|
return Highcharts.dateFormat("%d/%m/%Y", this.value, false);
|
|
}
|
|
}
|
|
},
|
|
|
|
series: [{
|
|
name: 'Visualizzazioni',
|
|
data: [<?php
|
|
$i = 0;
|
|
foreach ($result as $ele){
|
|
echo ($i++==0?"":", ")."[".(mktime(null,null,null,$ele["_id"]["date"]["month"],$ele["_id"]["date"]["day"],$ele["_id"]["date"]["year"]) ).",".$ele["visualizzazioni"]."]";
|
|
}
|
|
?>]
|
|
}, {
|
|
name: 'Visitatori',
|
|
data: [<?php
|
|
$i = 0;
|
|
foreach ($result as $ele){
|
|
echo ($i++==0?"":", ").$ele["visitatori"];
|
|
}
|
|
?>]
|
|
}, {
|
|
name: 'Unici',
|
|
data: [<?php
|
|
$i = 0;
|
|
foreach ($result as $ele){
|
|
echo ($i++==0?"":", ").$ele["unici"];
|
|
}
|
|
?>]
|
|
}]
|
|
|
|
});
|
|
|
|
|
|
|
|
$('#zzz').highcharts({
|
|
|
|
title: {
|
|
text: 'Visualizzazioni e visitatori'
|
|
},
|
|
|
|
subtitle: {
|
|
text: 'Source: ASDynamics'
|
|
},
|
|
|
|
xAxis: {
|
|
tickInterval: 7 * 24 * 3600 * 1000, // one week
|
|
tickWidth: 0,
|
|
gridLineWidth: 1,
|
|
labels: {
|
|
align: 'left',
|
|
x: 3,
|
|
y: -3
|
|
}
|
|
},
|
|
|
|
yAxis: [{ // left y axis
|
|
title: {
|
|
text: null
|
|
},
|
|
labels: {
|
|
align: 'left',
|
|
x: 3,
|
|
y: 16,
|
|
format: '{value:.,0f}'
|
|
},
|
|
showFirstLabel: false
|
|
}, { // right y axis
|
|
linkedTo: 0,
|
|
gridLineWidth: 0,
|
|
opposite: true,
|
|
title: {
|
|
text: null
|
|
},
|
|
labels: {
|
|
align: 'right',
|
|
x: -3,
|
|
y: 16,
|
|
format: '{value:.,0f}'
|
|
},
|
|
showFirstLabel: false
|
|
}],
|
|
|
|
legend: {
|
|
align: 'left',
|
|
verticalAlign: 'top',
|
|
y: 20,
|
|
floating: true,
|
|
borderWidth: 0
|
|
},
|
|
|
|
tooltip: {
|
|
shared: true,
|
|
crosshairs: true
|
|
},
|
|
|
|
plotOptions: {
|
|
series: {
|
|
cursor: 'pointer',
|
|
point: {
|
|
events: {
|
|
click: function (e) {
|
|
hs.htmlExpand(null, {
|
|
pageOrigin: {
|
|
x: e.pageX || e.clientX,
|
|
y: e.pageY || e.clientY
|
|
},
|
|
headingText: this.series.name,
|
|
maincontentText: Highcharts.dateFormat('%A, %b %e, %Y', this.x) + ':<br/> ' +
|
|
this.y + ' visits',
|
|
width: 200
|
|
});
|
|
}
|
|
}
|
|
},
|
|
marker: {
|
|
lineWidth: 1
|
|
}
|
|
}
|
|
},
|
|
|
|
series: [{
|
|
name: 'Tokyo',
|
|
data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
|
|
}, {
|
|
name: 'New York',
|
|
data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]
|
|
}, {
|
|
name: 'Berlin',
|
|
data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]
|
|
}, {
|
|
name: 'London',
|
|
data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
|
|
}]
|
|
});
|
|
|
|
});
|
|
</script>
|