From 4649f53c6aad3a51b3ac366455129a27cff0cc4b Mon Sep 17 00:00:00 2001 From: Riccardo Di Dato Date: Fri, 29 Apr 2016 19:30:04 +0200 Subject: [PATCH 1/5] Sistema di banner per categorie --- private/lib/AnalyticsHelper.php | 4 ++-- private/lib/BannerHelper.php | 8 ++++++-- private/lib/dao/models/BannerModel.php | 11 +++++++++++ private/lib/gui/GUIHandler.php | 16 ++++++++-------- public/admin/editBanner.php | 22 +++++++++++++++++++++- public/articolo.php | 4 ++-- public/categorySummary.php | 4 ++-- public/getBanner.php | 14 ++++++++++++-- public/js/functions.js | 4 ++-- 9 files changed, 66 insertions(+), 21 deletions(-) diff --git a/private/lib/AnalyticsHelper.php b/private/lib/AnalyticsHelper.php index b47f38e..58cc8ee 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"))),"category"=>$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 6f54620..071bc60 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 { ?>
-
-
+
+
@@ -436,8 +436,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/articolo.php b/public/articolo.php index 8582b19..32e451f 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);?>
- +
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 Date: Fri, 29 Apr 2016 19:34:26 +0200 Subject: [PATCH 2/5] typo --- private/lib/AnalyticsHelper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/private/lib/AnalyticsHelper.php b/private/lib/AnalyticsHelper.php index 58cc8ee..00a4f4f 100644 --- a/private/lib/AnalyticsHelper.php +++ b/private/lib/AnalyticsHelper.php @@ -306,7 +306,7 @@ class AnalyticsHelper { } } - $baseSearchArray = array("position"=>$position,"end"=>array('$gte'=>new MongoDate(strtotime("tomorrow"))),"category"=>$category); + $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){ From 614a6bef68da1be4c617718ac72a73e58efd5070 Mon Sep 17 00:00:00 2001 From: Riccardo Di Dato Date: Fri, 29 Apr 2016 19:44:03 +0200 Subject: [PATCH 3/5] Inserito sistema di categorie anche in new banner --- public/admin/newBanner.php | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) 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 From 8afea3d63051a46dd9a6867014409e4f3602df63 Mon Sep 17 00:00:00 2001 From: Riccardo Di Dato Date: Sat, 30 Apr 2016 18:48:31 +0200 Subject: [PATCH 4/5] Category summary non controllava le date delle notizie --- public/categorySummary.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/categorySummary.php b/public/categorySummary.php index eade656..a94a579 100644 --- a/public/categorySummary.php +++ b/public/categorySummary.php @@ -22,7 +22,7 @@ try{ $category = intval($category); $notizie = GlobalVariables::get("dao")->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) ); From fbfcbdf45a67ff7593872f53be4ff747e2991bd2 Mon Sep 17 00:00:00 2001 From: Riccardo Di Dato Date: Sat, 30 Apr 2016 18:51:18 +0200 Subject: [PATCH 5/5] =?UTF-8?q?Notizie=20future=20eliminate=20dai=20pi?= =?UTF-8?q?=C3=B9=20letti?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/index.php b/public/index.php index 2b586ff..5cbbe60 100644 --- a/public/index.php +++ b/public/index.php @@ -87,7 +87,7 @@ try { if (sizeof($lastsNews)<5){ $missing = 5-sizeof($lastsNews); $add = GlobalVariables::get("dao")->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);