diff --git a/private/lib/PipelineHelper.php b/private/lib/PipelineHelper.php index 2e953b3..598d685 100644 --- a/private/lib/PipelineHelper.php +++ b/private/lib/PipelineHelper.php @@ -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( diff --git a/private/lib/gui/MenuGenerator.php b/private/lib/gui/MenuGenerator.php index f6ae20f..fa6e426 100644 --- a/private/lib/gui/MenuGenerator.php +++ b/private/lib/gui/MenuGenerator.php @@ -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), diff --git a/public/admin/statCustom.php b/public/admin/statCustom.php new file mode 100644 index 0000000..640cb42 --- /dev/null +++ b/public/admin/statCustom.php @@ -0,0 +1,139 @@ +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"); +} +?> +
+
+ +
+
Inizio:">
+
+
Fine:">
+
+
+
+ Mostra +
+
+ aggregate("StatisticModel",PipelineHelper::getDailyVisualizationPipelineByStartAndEnd($start,$end)); + for ($i=0; $i + + +
+ \ No newline at end of file diff --git a/public/admin/statSito.php b/public/admin/statSito.php index 2a38422..c9ce2f1 100644 --- a/public/admin/statSito.php +++ b/public/admin/statSito.php @@ -26,7 +26,7 @@ HTMLHelper::generateAdminHead(); $result = GlobalVariables::get("dao")->aggregate("StatisticModel",PipelineHelper::getDailyVisualizationPipeline(strtotime("-1 month"))); for ($i=0; $i
diff --git a/public/js/init.js b/public/js/init.js index e69de29..9c19180 100644 --- a/public/js/init.js +++ b/public/js/init.js @@ -0,0 +1,5 @@ +Highcharts.setOptions({ + global : { + useUTC : false + } +}); \ No newline at end of file