diff --git a/private/lib/media/HasMediaInterface.php b/private/lib/media/HasMediaInterface.php index 5df27ab..f56c91f 100644 --- a/private/lib/media/HasMediaInterface.php +++ b/private/lib/media/HasMediaInterface.php @@ -27,13 +27,13 @@ interface HasMediaInterface{ public function getMediaReferences(); /** - * Setta il media principale - * @param MediaModel $media + * Setta la reference del media principale + * @param MediaInterface $media */ - public function setMainMedia(MediaInterface $media); + public function setMainMedia(MediaInterface $media=null); /** - * Restituisce la reference (id) del main media + * Restituisce la reference (id) del main media, se non esiste ritorna null * @return MongoId */ public function getMainMediaReference(); diff --git a/private/lib/media/HasMediaModel.php b/private/lib/media/HasMediaModel.php index 6429268..40397c6 100644 --- a/private/lib/media/HasMediaModel.php +++ b/private/lib/media/HasMediaModel.php @@ -43,7 +43,7 @@ abstract class HasMediaModel extends Model implements HasMediaInterface{ * @see HasMediaInterface::getMediaReferences() */ public function getMediaReferences(){ - if($this->hasProperty("mediaReferences")){ + if(!$this->hasProperty("mediaReferences")){ $this->mediaReferences = array(); } return $this->mediaReferences; @@ -53,8 +53,13 @@ abstract class HasMediaModel extends Model implements HasMediaInterface{ * (non-PHPdoc) * @see HasMediaInterface::setMainMedia() */ - public function setMainMedia(MediaInterface $media){ - $this->mainMedia = $media->getReference(); + public function setMainMedia(MediaInterface $media=null){ + if(!is_null($media)){ + $this->mainMedia = $media->getReference(); + } + else{ + $this->mainMedia=null; + } } /** @@ -62,6 +67,9 @@ abstract class HasMediaModel extends Model implements HasMediaInterface{ * @see HasMediaInterface::getMainMediaReference() */ public function getMainMediaReference(){ + if(!$this->hasProperty("mainMedia")){ + $this->mainMedia = null; + } return $this->mainMedia; } diff --git a/private/lib/media/MediaHandler.php b/private/lib/media/MediaHandler.php index 1dd9208..bff1d76 100644 --- a/private/lib/media/MediaHandler.php +++ b/private/lib/media/MediaHandler.php @@ -10,12 +10,12 @@ class MediaHandler{ * * Ritorna un array coi le reference dei media della news */ - public static function getMedias(HasMediaInterface $model,MediaInterface $media){ + public static function getMedias(HasMediaInterface $model){ $newsReference = $model->getMediaReferences(); $rval = array(); - - $rval = $dao->query("MediaModel",array($newsReference["id"]),array()); - +// var_dump($newsReference); + $rval = GlobalVariables::get("dao")->query("MediaModel",array('id'=>array('$in'=>$newsReference)),array()); +// var_dump($rval); return $rval; } @@ -44,7 +44,8 @@ class MediaHandler{ GlobalVariables::get("dao")->save($model); - $media->setOwnerReference($model); + MediaHandler::setOwnerToMedia($model, $media); +// $media->setOwnerReference($model); GlobalVariables::get("dao")->save($media); } }catch(CoreException $ex){ @@ -66,13 +67,18 @@ class MediaHandler{ $mediaArr = $model->getMediaReferences(); $mediaId = $media->getReference(); - var_dump($mediaArr); +// var_dump($mediaArr); if(sizeof($mediaArr)>0){ $key = array_search($mediaId, $mediaArr); if($key !== false){ unset($mediaArr[$key]); $model->setMediaReferences($mediaArr); + if($model->getMainMediaReference() == $mediaId){ +// echo "UGUALE!"; + $model->setMainMedia(null); + } + GlobalVariables::get("dao")->save($model); GlobalVariables::get("dao")->delete($media); @@ -134,21 +140,16 @@ class MediaHandler{ * Prende in ingresso un HasMediaInterface ritorna un array di un elemento array("mainMedia"=>"&value"); * * @param HasMediaInterface $model - * @return array + * @return MediaModel */ public static function getMainMediaFromModel(HasMediaInterface $model){ $mainMedia = $model->getMainMediaReference(); - $modelRef = $model->getReference(); - - $rval = array(); - - $tmp = GlobalVariables::get("dao")->getFirst($modelRef->class,array("id"=>$modelRef->id)); - - if(!is_null($tmp)){ - $rval["mainMedia"] = $tmp->mainMedia; + $tmp = null; + if(!is_null($mainMedia)){ + $tmp = GlobalVariables::get("dao")->getFirst("MediaModel",array("id"=>$mainMedia)); } - - return $rval; +// var_dump($tmp); + return $tmp; } } diff --git a/public/index.php b/public/index.php index 874001b..3e7e4fc 100644 --- a/public/index.php +++ b/public/index.php @@ -13,6 +13,7 @@ try { $prova->link = "www.pene.com"; $media = new MediaModel($prova); + $media2= new MediaModel($prova); // $media->renderMedia(); $news = new NotiziaModel(); @@ -20,22 +21,45 @@ try { GlobalVariables::get("dao")->save($news); GlobalVariables::get("dao")->save($media); + + GlobalVariables::get("dao")->save($media2); MediaHandler::addMedia($news, $media); + + MediaHandler::addMedia($news, $media2); +// var_dump($news); +// echo "

"; +// var_dump($media); +// echo "

"; + + $medias = MediaHandler::getMedias($news); + +// echo "medias "; PHP_EOL.var_dump($medias).PHP_EOL; + MediaHandler::setMainMediaToModel($news, $media); + + echo "

"; var_dump($news); + echo "

"; - echo "

"; - var_dump($media); - echo "

"; + + $mainmedia = MediaHandler::getMainMediaFromModel($news); +// echo "

"; + +// var_dump($mainmedia); +// echo "

"; MediaHandler::deleteMedia($news,$media); + echo "

"; + var_dump($news); + + MediaHandler::deleteMedia($news,$media2); echo "

"; var_dump($news); - echo "

"; - var_dump($media); +// echo "

"; +// var_dump($media); // TestTask::setActive(false); // echo "

";