Merge branch 'master' of ssh://gitolite@asdynamics.com:50005/projects/fdn2.git

This commit is contained in:
Lorenzo Giacomelli
2016-04-18 16:21:56 +02:00
5 changed files with 212 additions and 6 deletions
+62
View File
@@ -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(
+5 -5
View File
@@ -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),
+139
View File
@@ -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>
+1 -1
View File
@@ -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>
+5
View File
@@ -0,0 +1,5 @@
Highcharts.setOptions({
global : {
useUTC : false
}
});