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..7048485 --- /dev/null +++ b/public/admin/statCustom.php @@ -0,0 +1,127 @@ +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; + $start = strtotime(PostHandler::get("start")); + $end = strtotime(PostHandler::get("end")); +} +?> +
+
+ +
+
Inizio:">
+
+
Fine:">
+
+
+
+ Mostra +
+
+ aggregate("StatisticModel",PipelineHelper::getDailyVisualizationPipelineByStartAndEnd($start,$end)); + for ($i=0; $i + + +
+ \ No newline at end of file