From 1561b50dfe6103134335c61f963fa6c1383232fd Mon Sep 17 00:00:00 2001 From: Lorenzo Giacomelli Date: Fri, 5 Feb 2016 17:53:32 +0100 Subject: [PATCH 1/3] homeNotizie mostra i sondaggi --- public/admin/editSondaggi.php | 9 ++++++++ public/admin/homeNotizie.php | 40 +++++++++++++++++++++++++++++------ 2 files changed, 43 insertions(+), 6 deletions(-) diff --git a/public/admin/editSondaggi.php b/public/admin/editSondaggi.php index 240d67a..e2561f5 100644 --- a/public/admin/editSondaggi.php +++ b/public/admin/editSondaggi.php @@ -24,6 +24,15 @@ try{ if(!is_null($notiziaId) && strcmp($notiziaId, "")!=0){ // $optArr = "è presente la chiave action in post"; $notizia = GlobalVariables::get("dao")->getFirst("NotiziaModel",array("id"=>$notiziaId)); + + /* Controllo non vi siano votanti per il sondaggio, se ci sono impedisce di editarlo */ + if($notizia->hasProperty("sondaggio") && is_array($notizia->sondaggio->votanti)){ + if(sizeof($notizia->sondaggio->votanti)>0){ + GUIHandler::redirectPost("admin/homeNotizie.php",array("id"=>$notiziaId)); + } + + } + // echo "pene"; if(is_null($notizia)){ diff --git a/public/admin/homeNotizie.php b/public/admin/homeNotizie.php index 668dc90..6cd5f5a 100644 --- a/public/admin/homeNotizie.php +++ b/public/admin/homeNotizie.php @@ -75,11 +75,13 @@ try{
  • Gestisci Multimedia
  • Visualizza Commenti
  • - hasProperty("sondaggio") && !is_null($notizia->hasProperty("sondaggio"))){?> -
  • Visualizza Sondaggio
  • - -
  • Crea Sondaggio
  • - + sondaggio->votanti)==0){ + if($notizia->hasProperty("sondaggio") && !is_null($notizia->sondaggio)){?> +
  • Modifica Sondaggio
  • + +
  • Crea Sondaggio
  • +
  • Back
  • @@ -87,6 +89,10 @@ try{ + hasProperty("sondaggio") && !is_null($notizia->sondaggio)){?> +
    +
    Votanti: sondaggio->votanti as $votante){ echo ($i++==0?"":", ").$votante;}?>
    + \ No newline at end of file From b5f209f2aa5c51ce8e0e3b2377797ea50132cdd8 Mon Sep 17 00:00:00 2001 From: Lorenzo Giacomelli Date: Thu, 11 Feb 2016 17:53:38 +0100 Subject: [PATCH 2/3] Fixato DaoMediaHandler::getMedias commento errato e ora trasforma gli id delle refenrece in mongoId editBanner crea correttamente i banner nuovi ma non li edita, da finire deleteBanner cancella correttamente banner e media associato --- private/lib/dao/lib.inclusion.php | 3 + .../lib/dao/mediaModels/DaoMediaHandler.php | 15 +- private/lib/dao/models/BannerModel.php | 19 ++ public/admin/deleteBanner.php | 66 +++++++ public/admin/editBanner.php | 177 ++++++++++++++++++ public/admin/homeNotizie.php | 2 +- public/admin/listBanner.php | 32 ++++ .../tablesBackends/bannerTableBackend.php | 19 ++ 8 files changed, 327 insertions(+), 6 deletions(-) create mode 100644 private/lib/dao/models/BannerModel.php create mode 100644 public/admin/deleteBanner.php create mode 100644 public/admin/editBanner.php create mode 100644 public/admin/listBanner.php create mode 100644 public/admin/tablesBackends/bannerTableBackend.php diff --git a/private/lib/dao/lib.inclusion.php b/private/lib/dao/lib.inclusion.php index 9ba578c..2a6df63 100644 --- a/private/lib/dao/lib.inclusion.php +++ b/private/lib/dao/lib.inclusion.php @@ -33,6 +33,9 @@ require_once(dirname(__FILE__)."/models/AccessModel.php"); require_once(dirname(__FILE__)."/models/LogModel.php"); require_once(dirname(__FILE__)."/models/StatisticModel.php"); + +require_once(dirname(__FILE__)."/models/BannerModel.php"); + $dao = new GenericDao($database->dbName,$database->connectionString); GlobalVariables::set("dao", $dao); ?> diff --git a/private/lib/dao/mediaModels/DaoMediaHandler.php b/private/lib/dao/mediaModels/DaoMediaHandler.php index 15b4886..fd9973f 100644 --- a/private/lib/dao/mediaModels/DaoMediaHandler.php +++ b/private/lib/dao/mediaModels/DaoMediaHandler.php @@ -5,22 +5,27 @@ class DaoMediaHandler implements MediaHandlerInterface{ /** * * @param HasMediaInterface $news - * @param MediaInterface $media - * - * Ritorna un array coi le reference dei media della news + * @return MediaInterface[] $media + * Ritorna un array con i media model della news */ public static function getMedias(HasMediaInterface $model){ $newsReference = $model->getMediaReferences(); + $referenceIds = array(); + if (sizeof($newsReference)>0){ + foreach ($newsReference as $ref){ + $referenceIds[] = new MongoId($ref); + } + } $rval = array(); // var_dump($newsReference); - $rval = GlobalVariables::get("dao")->query("MediaModel",array('id'=>array('$in'=>$newsReference)),array()); + $rval = GlobalVariables::get("dao")->query("MediaModel",array('id'=>array('$in'=>$referenceIds))); // var_dump($rval); return $rval; } /** - * Aggiunge il media al model e controlla se il model ha un main media e se non lo ha glielo assegna + * Aggiunge il media al model e controlla se il model ha un main media e se non lo ha glielo assegna (salva sia il media che la news) * * @param HasMediaInterface $model * @param MediaInterface $media diff --git a/private/lib/dao/models/BannerModel.php b/private/lib/dao/models/BannerModel.php new file mode 100644 index 0000000..55e90cf --- /dev/null +++ b/private/lib/dao/models/BannerModel.php @@ -0,0 +1,19 @@ +array("label"=>"Image"), + self::TYPE_HTML=>array("label"=>"Html") + ); + + public static function getCollectionName(){ + return "banner"; + } + +} + +?> \ No newline at end of file diff --git a/public/admin/deleteBanner.php b/public/admin/deleteBanner.php new file mode 100644 index 0000000..b4bacff --- /dev/null +++ b/public/admin/deleteBanner.php @@ -0,0 +1,66 @@ +hasRole(AdminModel::ADMIN_TYPE_BANNER_SUPERVISOR)){ + GUIHandler::redirect("admin/index.php"); +} + +MenuGenerator::generateMenu(); + +HTMLHelper::generateAdminHead(); + +$id = PostHandler::get("id"); +if (is_null($id) || strcmp("", $id)==0){ + GUIHandler::redirect("admin/listBanner.php"); +} + +$banner = GlobalVariables::get("dao")->getFirst("BannerModel",array("id"=>$id)); +if (is_null($banner)){ + GUIHandler::redirect("admin/listBanner.php"); +} + +$confirm = PostHandler::get("confirm"); +if (!is_null($confirm) && strcmp("", $confirm)!=0){ + if (strcmp("true", $confirm)==0){ + $medias = DaoMediaHandler::getMedias($banner); + $media = reset($medias); + +// $media = GlobalVariables::get("dao")->getFirst("MediaModel",array("id"=>$mediaId)); + + DaoMediaHandler::deleteMedia($banner, $media); + + GlobalVariables::get("dao")->delete($banner); + } + GUIHandler::redirect("admin/listBanner.php"); +} + +?> +
    +".$banner->customer." ?"; +?> +
    + + +
    + Conferma + Annulla +
    + \ No newline at end of file diff --git a/public/admin/editBanner.php b/public/admin/editBanner.php new file mode 100644 index 0000000..6570323 --- /dev/null +++ b/public/admin/editBanner.php @@ -0,0 +1,177 @@ +hasRole(AdminModel::ADMIN_TYPE_BANNER_SUPERVISOR)){ + GUIHandler::redirect("admin/index.php"); +} + +MenuGenerator::generateMenu(); + +HTMLHelper::generateAdminHead(); + +$bannerId = PostHandler::get("id"); + +try{ + $error=""; + $edit=false; + $banner = new BannerModel(); + +Finire Edit !!!!!!!!!! + $mediaTypeSaved = PostHandler::get("mediaType"); + $banner->customer = PostHandler::get("customer"); + + if(array_key_exists("action", $_POST) && strcmp(PostHandler::get("action"), "save")==0){ + if(is_null($bannerId) || strcmp($bannerId, "")==0){ + $banner->customer = PostHandler::get("customer"); + $banner->type = PostHandler::get("mediaType"); + $banner->start = new Mongodate(strtotime(PostHandler::get("dateStart"))); + $banner->end = new Mongodate(strtotime(PostHandler::get("dateEnd"))); + GlobalVariables::get("dao")->save($banner); + $bannerId = $banner->id; + } + + if(!is_null($bannerId) && strcmp($bannerId, "")!=0){ + $edit=true; +// $banner = GlobalVariables::get("dao")->getFirst("BannerModel",array("id"=>$bannerId)); + $file = ""; + + $mediaType = PostHandler::get("mediaType"); + $banner->type=$mediaType; + if(strcmp($mediaType, "")!=0){ + $tmp = array(); + $saveable = new stdClass(); + $saveable->mediaType = $mediaType; + if(strcmp($mediaType,MediaModel::TYPE_HTML5)==0){ + $saveable->code = PostHandler::get("data"); + $media = DaoMediaHandler::createNewTextBasedMedia($saveable); + } + else if(strcmp($mediaType,MediaModel::TYPE_IMAGE)==0){ + $saveable->path = PostHandler::get("data"); + $file = $_FILES['data']['tmp_name']; + $info = pathinfo($_FILES['data']['name']); +// $file = PostHandler::get("data"); + $media = DaoMediaHandler::createNewFileBasedMedia($saveable, $file,$info["extension"]); + } + + if(!is_null($media)){ + GlobalVariables::get("dao")->save($media); + DaoMediaHandler::addMedia($banner, $media); + GlobalVariables::get("dao")->save($banner); + } + else{ + throw new Exception("Cannot save a null media in the news with id '".$bannerId."'"); + } + } + else{ + throw new Exception("Invalid mediaType '".$mediaType."' while trying to add the media in editBanner"); + } + + GUIHandler::redirect("admin/listBanner.php"); + } + else if(array_key_exists("action", $_POST) && strcmp(PostHandler::get("action"), "delete")==0){ + $medias = DaoMediaHandler::getMedias($banner); +// $media = reset($medias); +// $media = GlobalVariables::get("dao")->getFirst("MediaModel",array("id"=>$mediaId)); + foreach ($medias as $media){ + DaoMediaHandler::deleteMedia($banner, $media); + } + } + } + + $formFile = ' + '; + + $formHtml = 'Inserire html: '; + + +}catch(GUIException $ex){ + $error = $ex->getMessage(); +}catch (Exception $exec){ + LoggingFacilityManager::getLogger("gui")->log(LoggingFacility::$LEVEL_ERROR, $exec->getMessage()); + $error = "Si è verificato un errore inaspettato durante l'esecuzione della pagina. Se l'errore persiste contattare il supporto tecnico."; +} +?> +
    + +
    + +
    + +
    +
    +
    Selezionare tipo multimedia: + +
    +
    + // + + if(strcmp($mediaTypeSaved, MediaModel::TYPE_HTML5)==0){ + echo $formHtml; + } + else if (strcmp($mediaTypeSaved, MediaModel::TYPE_IMAGE)==0){ + echo $formFile; + } + ?> + +
    Cliente:
    +
    Data inizio: start->sec):date("d-m-Y");?>">
    +
    Data fine: end->sec):date("d-m-Y");?>">
    +
    +
    +
    + Invia + Back + Delete +
    +
    +
    + \ No newline at end of file diff --git a/public/admin/homeNotizie.php b/public/admin/homeNotizie.php index 6cd5f5a..8e3d263 100644 --- a/public/admin/homeNotizie.php +++ b/public/admin/homeNotizie.php @@ -90,7 +90,7 @@ try{ hasProperty("sondaggio") && !is_null($notizia->sondaggio)){?> -
    +
    Votanti: sondaggio->votanti as $votante){ echo ($i++==0?"":", ").$votante;}?>
    diff --git a/public/admin/listBanner.php b/public/admin/listBanner.php new file mode 100644 index 0000000..46b37f1 --- /dev/null +++ b/public/admin/listBanner.php @@ -0,0 +1,32 @@ +hasRole(AdminModel::ADMIN_TYPE_BANNER_SUPERVISOR)){ + GUIHandler::redirect("admin/index.php"); +} + +MenuGenerator::generateMenu(); + +HTMLHelper::generateAdminHead(); +$columns = array( + array("label"=>"Cliente","data"=>"customer"), + array("label"=>"Inzio","data"=>"start"), + array("label"=>"Fine","data"=>"end") +); + +$buttons = array( + array("icon"=>"icon-medium-blue icon-editmed","page"=>"editBanner.php"), + array("icon"=>"icon-medium-blue icon-remove","page"=>"deleteBanner.php") +); +?> +
    + $buttons)); + ?> +
    \ No newline at end of file diff --git a/public/admin/tablesBackends/bannerTableBackend.php b/public/admin/tablesBackends/bannerTableBackend.php new file mode 100644 index 0000000..0878e9f --- /dev/null +++ b/public/admin/tablesBackends/bannerTableBackend.php @@ -0,0 +1,19 @@ +null, + "start"=>null, + "end"=>null, + "id"=>null +); + +$ret = DatatablesHelper::getResult($useModel, $permissionFlagRequired, $exposedFields); +echo json_encode($ret); + + + +?> \ No newline at end of file From 8c87460645c85938c1978003ead20d227e4f3f59 Mon Sep 17 00:00:00 2001 From: Lorenzo Giacomelli Date: Thu, 18 Feb 2016 17:22:29 +0100 Subject: [PATCH 3/3] editBanner completato, da testare; editBanner eliminata la funzione di deleteMedia; addMultimedia eliminato il parametro path dai media; listBanner e bannerTableBackend aggiunto alla table il campo type --- private/lib/dao/mediaModels/MediaModel.php | 9 ++ .../lib/media/mediaRenderers/MediaImage.php | 5 ++ public/admin/addMultimedia.php | 3 +- public/admin/editBanner.php | 86 ++++++++++++------- public/admin/listBanner.php | 1 + .../tablesBackends/bannerTableBackend.php | 9 ++ 6 files changed, 79 insertions(+), 34 deletions(-) diff --git a/private/lib/dao/mediaModels/MediaModel.php b/private/lib/dao/mediaModels/MediaModel.php index 6e10358..af50038 100644 --- a/private/lib/dao/mediaModels/MediaModel.php +++ b/private/lib/dao/mediaModels/MediaModel.php @@ -85,5 +85,14 @@ class MediaModel extends Model implements MediaInterface{ parent::updateFromSaveableObj($saveableObject); $this->setMediaRenderer(); } + + public function getPath(){ + if(($this->mediaType == self::TYPE_IMAGE) || ($this->mediaType == self::TYPE_PDF) || ($this->mediaType == self::TYPE_LOCALVIDEO)){ + return $this->mediaRenderer->getPath(); + } + else{ + return "questo media non è presente all'interno dell'applicativo"; + } + } } ?> \ No newline at end of file diff --git a/private/lib/media/mediaRenderers/MediaImage.php b/private/lib/media/mediaRenderers/MediaImage.php index 55c83c4..f8fe545 100644 --- a/private/lib/media/mediaRenderers/MediaImage.php +++ b/private/lib/media/mediaRenderers/MediaImage.php @@ -17,5 +17,10 @@ class MediaImage implements MediaRendererInterface{ public function render(array $opt = array ()){ echo $this->asText($opt); } + + public function getPath(){ + $basepath = GlobalVariables::get("config")->paths->media; + return $basepath."/".$this->id.".".$this->extension; + } } ?> diff --git a/public/admin/addMultimedia.php b/public/admin/addMultimedia.php index cc676ec..ae079e4 100644 --- a/public/admin/addMultimedia.php +++ b/public/admin/addMultimedia.php @@ -41,7 +41,6 @@ try{ $media = DaoMediaHandler::createNewTextBasedMedia($saveable); } else { - $saveable->path = PostHandler::get("data"); $file = $_FILES['data']['tmp_name']; $info = pathinfo($_FILES['data']['name']); // $file = PostHandler::get("data"); @@ -61,7 +60,7 @@ try{ throw new Exception("Invalid mediaType '".$mediaType."' while trying to add the media in addMultimedia"); } - GUIHandler::redirectPost("admin/homeMultimedia.php",array("id"=>$notiziaId)); +// GUIHandler::redirectPost("admin/homeMultimedia.php",array("id"=>$notiziaId)); } } diff --git a/public/admin/editBanner.php b/public/admin/editBanner.php index 6570323..7143d12 100644 --- a/public/admin/editBanner.php +++ b/public/admin/editBanner.php @@ -20,11 +20,21 @@ try{ $error=""; $edit=false; $banner = new BannerModel(); - -Finire Edit !!!!!!!!!! + $newMedia = null; $mediaTypeSaved = PostHandler::get("mediaType"); - $banner->customer = PostHandler::get("customer"); - + + if(!is_null($bannerId) && strcmp($bannerId, "")!=0){ + $edit = true; + $banner = GlobalVariables::get("dao")->getFirst("BannerModel",array("id"=>$bannerId)); + $newMedias = DaoMediaHandler::getMedias($banner); + if(sizeof($newMedias)>0){ + $newMedia = reset($newMedias); + } + if($banner->hasProperty("type") && !is_null($banner->type)){ + $mediaTypeSaved = $banner->type; + } + } + if(array_key_exists("action", $_POST) && strcmp(PostHandler::get("action"), "save")==0){ if(is_null($bannerId) || strcmp($bannerId, "")==0){ $banner->customer = PostHandler::get("customer"); @@ -51,7 +61,6 @@ Finire Edit !!!!!!!!!! $media = DaoMediaHandler::createNewTextBasedMedia($saveable); } else if(strcmp($mediaType,MediaModel::TYPE_IMAGE)==0){ - $saveable->path = PostHandler::get("data"); $file = $_FILES['data']['tmp_name']; $info = pathinfo($_FILES['data']['name']); // $file = PostHandler::get("data"); @@ -73,21 +82,33 @@ Finire Edit !!!!!!!!!! GUIHandler::redirect("admin/listBanner.php"); } - else if(array_key_exists("action", $_POST) && strcmp(PostHandler::get("action"), "delete")==0){ - $medias = DaoMediaHandler::getMedias($banner); -// $media = reset($medias); -// $media = GlobalVariables::get("dao")->getFirst("MediaModel",array("id"=>$mediaId)); - foreach ($medias as $media){ - DaoMediaHandler::deleteMedia($banner, $media); - } - } } - - $formFile = ' - '; - - $formHtml = 'Inserire html: '; - +// else if(array_key_exists("action", $_POST) && strcmp(PostHandler::get("action"), "delete")==0){ +// if(!is_null($bannerId) && strcmp($bannerId, "")!=0){ +// $banner = GlobalVariables::get("dao")->getFirst("BannerModel",array("id"=>$bannerId)); +// $medias = DaoMediaHandler::getMedias($banner); +// // $media = reset($medias); +// // $media = GlobalVariables::get("dao")->getFirst("MediaModel",array("id"=>$mediaId)); +// foreach ($medias as $media){ +// DaoMediaHandler::deleteMedia($banner, $media); +// $banner->type = null; +// GlobalVariables::get("dao")->save($banner); +// } +// } +// GUIHandler::redirect("admin/listBanner.php"); +// } + if($edit && !is_null($newMedia)){ + $formFile = ' + '; + + $formHtml = 'Inserire html: '; + } + else{ + $formFile = ' + '; + + $formHtml = 'Inserire html: '; + } }catch(GUIException $ex){ $error = $ex->getMessage(); @@ -112,14 +133,15 @@ Finire Edit !!!!!!!!!!