Merge branch 'master' of ssh://gitolite@asdynamics.com:50005/projects/fdn2.git
This commit is contained in:
@@ -67,6 +67,68 @@ class PipelineHelper {
|
||||
return $rval;
|
||||
}
|
||||
|
||||
public static function getDailyVisualizationPipelineByStartAndEnd($startDate,$endDate){
|
||||
$rval = array(
|
||||
array(
|
||||
'$match'=>array(
|
||||
'statType'=>StatisticModel::STAT_TYPE_PAGE,
|
||||
'date'=>array(
|
||||
'$gte'=>new MongoDate($startDate),
|
||||
'$lte'=>new MongoDate($endDate)
|
||||
)
|
||||
)
|
||||
),
|
||||
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
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'$sort'=>array(
|
||||
"_id.date.year"=>1,
|
||||
"_id.date.month"=>1,
|
||||
"_id.date.day"=>1
|
||||
)
|
||||
)
|
||||
);
|
||||
return $rval;
|
||||
}
|
||||
|
||||
public static function getMonthlyVisualizationPipeline($startDate){
|
||||
$rval = array(
|
||||
array(
|
||||
|
||||
@@ -34,11 +34,11 @@ class MenuGenerator {
|
||||
array("label"=>"Nuova Mail","page"=>"editMail.php","requires"=>AdminModel::ADMIN_TYPE_SUPERADMIN),
|
||||
array("label"=>"Coda Mail","page"=>"listMail.php","requires"=>AdminModel::ADMIN_TYPE_SUPERADMIN)
|
||||
)),
|
||||
array("label"=>"Statistiche","page"=>"statSito.php","requires"=>AdminModel::ADMIN_TYPE_STATISTICHE_SUPERVISOR),
|
||||
// array("label"=>"Statistiche", "subvoices"=>array(
|
||||
// array("label"=>"Sito","page"=>"statSito.php","requires"=>AdminModel::ADMIN_TYPE_STATISTICHE_SUPERVISOR),
|
||||
// array("label"=>"Banner","page"=>"statBanner.php","requires"=>AdminModel::ADMIN_TYPE_BANNER_SUPERVISOR)
|
||||
// )),
|
||||
// array("label"=>"Statistiche","page"=>"statSito.php","requires"=>AdminModel::ADMIN_TYPE_STATISTICHE_SUPERVISOR),
|
||||
array("label"=>"Statistiche", "subvoices"=>array(
|
||||
array("label"=>"Automatiche","page"=>"statSito.php","requires"=>AdminModel::ADMIN_TYPE_STATISTICHE_SUPERVISOR),
|
||||
array("label"=>"Per data","page"=>"statCustom.php","requires"=>AdminModel::ADMIN_TYPE_STATISTICHE_SUPERVISOR)
|
||||
)),
|
||||
|
||||
array("label"=>"Superuser", "subvoices"=>array(
|
||||
array("label"=>"Nuovo Amministratore","page"=>"editAmministratori.php","requires"=>AdminModel::ADMIN_TYPE_SUPERADMIN),
|
||||
|
||||
@@ -0,0 +1,139 @@
|
||||
<?php
|
||||
/*
|
||||
Author: Riccardo Di Dato
|
||||
Creation Date: 18/apr/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_STATISTICHE_SUPERVISOR)){
|
||||
GUIHandler::redirect("admin/index.php");
|
||||
}
|
||||
|
||||
MenuGenerator::generateMenu();
|
||||
|
||||
HTMLHelper::generateAdminHead();
|
||||
|
||||
$showGraph = false;
|
||||
$start = strtotime("-1 month");
|
||||
$end = time();
|
||||
$action = PostHandler::get("action");
|
||||
if (!is_null($action) && strcmp($action, "show")==0){
|
||||
$showGraph = true;
|
||||
|
||||
|
||||
$date = new DateTime(PostHandler::get("start")." 00:00", new DateTimeZone("Europe/Rome"));
|
||||
$start = $date->format('U');
|
||||
|
||||
$date = new DateTime(PostHandler::get("end")." 23:59", new DateTimeZone("Europe/Rome"));
|
||||
$end = $date->format('U');
|
||||
|
||||
|
||||
// $start = strtotime(PostHandler::get("start")." 00:00");
|
||||
// $end = strtotime(PostHandler::get("end")." 23:59");
|
||||
}
|
||||
?>
|
||||
<div>
|
||||
<form id="customStatForm" method="POST" action="">
|
||||
<input type="hidden" name="action" value="" />
|
||||
<div style="display:inline; width:50%;">
|
||||
<div style="display:inline-block;"><span class="label">Inizio:</span><input type="text" class="datepicker" name="start" value="<?php echo date("d-m-Y",$start);?>"></div>
|
||||
</div><div style="display:inline; width:50%;">
|
||||
<div style="display:inline-block;"><span class="label">Fine:</span><input type="text" class="datepicker" name="end" value="<?php echo date("d-m-Y",$end);?>"></div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="formBtns" style="text-align:center;">
|
||||
<a href="#" id="customStatForm_show" >Mostra</a>
|
||||
</div>
|
||||
<div id="statContainer"></div>
|
||||
<?php
|
||||
if ($showGraph){
|
||||
|
||||
$result = GlobalVariables::get("dao")->aggregate("StatisticModel",PipelineHelper::getDailyVisualizationPipelineByStartAndEnd($start,$end));
|
||||
for ($i=0; $i<sizeof($result); $i++){
|
||||
$ele = $result[$i];
|
||||
$result[$i]["mktime"] = mktime(0,1,0,$ele["_id"]["date"]["month"],$ele["_id"]["date"]["day"],$ele["_id"]["date"]["year"]) *1000;
|
||||
}
|
||||
|
||||
var_dump($result);
|
||||
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
$('#statContainer').highcharts({
|
||||
title: {
|
||||
text: 'Statistiche'
|
||||
},
|
||||
|
||||
tooltip:{
|
||||
xDateFormat:"%d/%m/%Y",
|
||||
crosshairs:[true],
|
||||
shared: true
|
||||
},
|
||||
|
||||
xAxis:{
|
||||
type:'datetime',
|
||||
tickInterval: 24*3600*1000,
|
||||
labels:{
|
||||
formatter: function() {
|
||||
return Highcharts.dateFormat("%d/%m/%Y", this.value, false);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
yAxis:{
|
||||
title:{
|
||||
text:"Visite"
|
||||
}
|
||||
},
|
||||
|
||||
series: [{
|
||||
name: 'Visualizzazioni',
|
||||
data: [<?php
|
||||
$i = 0;
|
||||
foreach ($result as $ele){
|
||||
echo ($i++==0?"":", ")."[".($ele["mktime"]).",".$ele["visualizzazioni"]."]";
|
||||
}
|
||||
?>]
|
||||
}, {
|
||||
name: 'Visitatori',
|
||||
data: [<?php
|
||||
$i = 0;
|
||||
foreach ($result as $ele){
|
||||
echo ($i++==0?"":", ")."[".($ele["mktime"]).",".$ele["visitatori"]."]";
|
||||
}
|
||||
?>]
|
||||
}, {
|
||||
name: 'Unici',
|
||||
data: [<?php
|
||||
$i = 0;
|
||||
foreach ($result as $ele){
|
||||
echo ($i++==0?"":", ")."[".($ele["mktime"]).",".$ele["unici"]."]";
|
||||
}
|
||||
?>]
|
||||
}]
|
||||
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(event){
|
||||
$("#customStatForm_show").click(function(event){
|
||||
$("form#customStatForm input[type=hidden][name=action]").val("show");
|
||||
$("form#customStatForm").submit();
|
||||
});
|
||||
|
||||
$(".datepicker").datepicker({dateFormat:"dd-mm-yy"});
|
||||
});
|
||||
</script>
|
||||
@@ -26,7 +26,7 @@ HTMLHelper::generateAdminHead();
|
||||
$result = GlobalVariables::get("dao")->aggregate("StatisticModel",PipelineHelper::getDailyVisualizationPipeline(strtotime("-1 month")));
|
||||
for ($i=0; $i<sizeof($result); $i++){
|
||||
$ele = $result[$i];
|
||||
$result[$i]["mktime"] = mktime(1,0,0,$ele["_id"]["date"]["month"],$ele["_id"]["date"]["day"],$ele["_id"]["date"]["year"]) *1000;
|
||||
$result[$i]["mktime"] = mktime(0,1,0,$ele["_id"]["date"]["month"],$ele["_id"]["date"]["day"],$ele["_id"]["date"]["year"]) *1000;
|
||||
}
|
||||
?>
|
||||
<div>
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
Highcharts.setOptions({
|
||||
global : {
|
||||
useUTC : false
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user