diff --git a/private/lib/AnalyticsHelper.php b/private/lib/AnalyticsHelper.php index b47f38e..00a4f4f 100644 --- a/private/lib/AnalyticsHelper.php +++ b/private/lib/AnalyticsHelper.php @@ -281,7 +281,7 @@ class AnalyticsHelper { * @param int $position * @param string $replaced id del banner rimpiazzato */ - public static function getBannerToShow($position, $replaced = null){ + public static function getBannerToShow($position, $replaced = null, $category = BannerModel::GENERAL_CATEGORY){ // Rimuovi il replaced dalla lista $shown = array(); $rval = null; @@ -306,7 +306,7 @@ class AnalyticsHelper { } } - $baseSearchArray = array("position"=>$position,"end"=>array('$gte'=>new MongoDate(strtotime("tomorrow")))); + $baseSearchArray = array("position"=>$position,"end"=>array('$gte'=>new MongoDate(strtotime("tomorrow"))),"categories"=>$category); // Prendi il primo dei "mai mostrati oggi" tra quelli non presenti nella pagina $todayPlusShown = array_merge($idList,$shown); if (sizeof($todayPlusShown)>0){ diff --git a/private/lib/BannerHelper.php b/private/lib/BannerHelper.php index 3a49f50..670ebdb 100644 --- a/private/lib/BannerHelper.php +++ b/private/lib/BannerHelper.php @@ -7,10 +7,14 @@ Creation Date: 11/mar/2016 class BannerHelper{ private static $INTERNAL_COUNT = 1; - public static function printBanner($position = BannerModel::POSITION_HEAD){ + public static function printBanner($position = BannerModel::POSITION_HEAD, $category = null){ + if (is_null($category)){ + $category = BannerModel::GENERAL_CATEGORY; + } + $cur = self::getPlaceholderId(); ?> -
+
array("label"=>"Testata"), self::POSITION_BODY=>array("label"=>"Corpo") ); + public function __construct($saveableObject = null){ + parent::__construct($saveableObject); + + if (!$this->hasProperty("categories")){ + $this->categories = array(self::GENERAL_CATEGORY); + } + } + + public function __set($attr,$value){ if (strcmp("type", $attr)==0 || strcmp("position", $attr)==0){ $value = intval($value); diff --git a/private/lib/gui/GUIHandler.php b/private/lib/gui/GUIHandler.php index afeaa76..e6e43f1 100644 --- a/private/lib/gui/GUIHandler.php +++ b/private/lib/gui/GUIHandler.php @@ -169,7 +169,7 @@ class GUIHandler { self::$onLoadEvents[] = $script; } - public static function generateHeadPublic(){ + public static function generateHeadPublic($bannerCategory = BannerModel::GENERAL_CATEGORY){ $mesi = array(1=>'Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre','Dicembre'); @@ -218,12 +218,12 @@ class GUIHandler {
- +
- +
@@ -372,7 +372,7 @@ class GUIHandler { } - public static function generateRightBannerBlock(){ + public static function generateRightBannerBlock($category = BannerModel::GENERAL_CATEGORY){ $stats = GlobalVariables::get("dao")->aggregate("StatisticModel",PipelineHelper::getMostViewedOfLastDays(strtotime("-7 days"),5)); $idArray = array_map(function ($ele){ return new MongoId($ele["_id"]["notizia"]);}, $stats); @@ -405,8 +405,8 @@ class GUIHandler { ?>
-
-
+
+
@@ -429,8 +429,8 @@ class GUIHandler {
-
-
+
+
position = PostHandler::get("position"); - + + $banner->categories = array(); + + $general = PostHandler::get("categories_".BannerModel::GENERAL_CATEGORY); + if (!is_null($general) && strcasecmp($general, BannerModel::GENERAL_CATEGORY)==0){ + $banner->categories[] = BannerModel::GENERAL_CATEGORY; + } + foreach (NotiziaModel::$NOTIZIE_CATEGORY as $category=>$data){ + $val = PostHandler::get("categories_".$category); + if (!is_null($val) && strcasecmp($val, $category)==0){ + $banner->categories[] = $category; + } + } + GlobalVariables::get("dao")->save($banner); GUIHandler::redirectPost("admin/homeBanner.php",array("id"=>$banner->id)); } @@ -95,6 +108,13 @@ try{ Data fine: end->sec);?>"> +
 Categorie
+ Generalecategories)?'checked="checked"':"").' />
'; + foreach (NotiziaModel::$NOTIZIE_CATEGORY as $category=>$data){ + echo '
'.$data["label"].'categories)?'checked="checked"':"").' />
'; + } + ?>
diff --git a/public/admin/newBanner.php b/public/admin/newBanner.php index d8c5693..660c59e 100644 --- a/public/admin/newBanner.php +++ b/public/admin/newBanner.php @@ -50,6 +50,18 @@ try{ } $banner->position = PostHandler::get("position"); + $banner->categories = array(); + + $general = PostHandler::get("categories_".BannerModel::GENERAL_CATEGORY); + if (!is_null($general) && strcasecmp($general, BannerModel::GENERAL_CATEGORY)==0){ + $banner->categories[] = BannerModel::GENERAL_CATEGORY; + } + foreach (NotiziaModel::$NOTIZIE_CATEGORY as $category=>$data){ + $val = PostHandler::get("categories_".$category); + if (!is_null($val) && strcasecmp($val, $category)==0){ + $banner->categories[] = $category; + } + } $media = null; if ($banner->type == MediaModel::TYPE_HTML5){ @@ -220,7 +232,12 @@ try{ Data fine: end->sec):date("d-m-Y");?>">
- + Generalecategories)?'checked="checked"':"").' />
'; + foreach (NotiziaModel::$NOTIZIE_CATEGORY as $category=>$data){ + echo '
'.$data["label"].'categories)?'checked="checked"':"").' />
'; + } + ?>
Salva diff --git a/public/articolo.php b/public/articolo.php index de41e1c..4f9fc85 100644 --- a/public/articolo.php +++ b/public/articolo.php @@ -120,7 +120,7 @@ GUIHandler::generateHtmlHeaders(array("additionalHeaders"=>$additionalHeaders,"a
category); GUIHandler::generateMenu(); ?>
@@ -300,7 +300,7 @@ GUIHandler::generateHtmlHeaders(array("additionalHeaders"=>$additionalHeaders,"a
- + category);?>
query("NotiziaModel", - array('$and'=>array(array("status"=>NotiziaModel::STATUS_ACCEPTED),array("category"=>$category))), + array("status"=>NotiziaModel::STATUS_ACCEPTED,"category"=>$category,"about.data"=>array('$lte'=>new MongoDate())), array("sort"=>array("about.data"=>-1),"limit"=>10) ); @@ -46,7 +46,7 @@ try{ ?>
- +
-
\ No newline at end of file +
diff --git a/public/getBanner.php b/public/getBanner.php index 9eab882..cc4e33a 100644 --- a/public/getBanner.php +++ b/public/getBanner.php @@ -20,10 +20,20 @@ Creation Date: 02/mar/2016 } } + if (array_key_exists("cat",$_GET)) { + $category = intval($_GET["cat"]); + if ($category!= BannerModel::GENERAL_CATEGORY && !array_key_exists($category,NotiziaModel::$NOTIZIE_CATEGORY)){ + $category = BannerModel::GENERAL_CATEGORY; + } + } + // $banner = GlobalVariables::get("dao")->getFirst("BannerModel",array("id"=>$_GET['id'])); // ASDSessionHandler::setSessionValue("bannerActive",array()); - $banner = AnalyticsHelper::getBannerToShow($position,$replaced); + $banner = AnalyticsHelper::getBannerToShow($position,$replaced,$category); + if (is_null($banner) && $category!=BannerModel::GENERAL_CATEGORY){ + $banner = AnalyticsHelper::getBannerToShow($position,$replaced,BannerModel::GENERAL_CATEGORY); + } // var_dump($replaced); if (!is_null($banner)){ @@ -37,7 +47,7 @@ Creation Date: 02/mar/2016 query("NotiziaModel", - array("status"=>NotiziaModel::STATUS_ACCEPTED,"_id"=>array('$nin'=>$idArray)), + array("status"=>NotiziaModel::STATUS_ACCEPTED,"_id"=>array('$nin'=>$idArray),"about.data"=>array('$lte'=>new MongoDate())), array("sort"=>array("about.data"=>-1),"limit"=>$missing) ); $lastsNews = array_merge($lastsNews,$add); diff --git a/public/js/functions.js b/public/js/functions.js index 3d26048..4d70104 100644 --- a/public/js/functions.js +++ b/public/js/functions.js @@ -53,10 +53,10 @@ function logout(){ }); } -function bannerRoll(prev,pos){ +function bannerRoll(prev,pos,category){ $.ajax({ method:"POST", - url:'getBanner.php?replaced='+prev+'&pos='+pos, + url:'getBanner.php?replaced='+prev+'&pos='+pos+'&cat='+category, dataType:'html', success: function(data){ $('#'+prev).parent().html(data);