Files
fdn2/public/admin/statSito.php
T

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>