getMediaReferences(); $rval = array(); $rval = $dao->query("MediaModel",array($newsReference["id"]),array()); return $rval; } /** * Aggiunge il media al model e controlla se il model ha un main media e se non lo ha glielo assegna * * @param HasMediaInterface $model * @param MediaInterface $media * @throws MediaException */ public static function addMedia(HasMediaInterface $model, MediaInterface $media){ if(!$model->hasProperty("id")){ throw new MediaException("Invalid HasMediaInterface passed to MediaHandler::addMedia (no property ID)"); } if(!$media->hasProperty("id")){ throw new MediaException("Invalid MediaInterface passed to MediaHandler::addMedia (no property ID)"); } try{ $mediaArr = array(); $mediaArr = $model->getMediaReferences(); if(!in_array($media->getReference(), $mediaArr)){ $mediaArr[] = $media->getReference(); $model->setMediaReferences($mediaArr); GlobalVariables::get("dao")->save($model); $media->setOwner($model); GlobalVariables::get("dao")->save($media); } }catch(CoreException $ex){ throw new MediaException("Error while saving in MediaHandler::addMedia (".$ex->getMessage().")"); } } /** * Elimina l'id del media dal model e deleta il media * * @param HasMediaInterface $model * @param MediaInterface $media * @throws MediaException */ public static function deleteMedia(HasMediaInterface $model, MediaInterface $media){ try{ $mediaArr = array(); $mediaArr = $model->getMediaReferences(); $mediaId = $media->getReference(); if(sizeof($mediaArr)>0){ $key = array_search($mediaId, $mediaArr); if($key !== false){ unset($mediaArr[$key]); $model->setMediaReferences($mediaArr); GlobalVariables::get("dao")->save($model); GlobalVariables::get("dao")->delete($media); } else{ throw new MediaException("Trying to delete invalid media from a model in MediaHandler::deleteMedia"); } } else{ throw new MediaException("This HasMediaInterface has no media in it '".$model->id."' sizeof on mediaReference failed in MediaHandler::deleteMedia"); } }catch(CoreException $ex){ throw new MediaException("Error while deleting in MediaHandler::deleteMedia (".$ex->getMessage().")"); } } /** * Setta l'owner al MediaModel * @param HasMediaInterface $model * @param MediaModel $media */ public static function setOwnerToMedia(HasMediaInterface $model, MediaModel $media){ $media->setOwnerReference($model); } /** * * @param MediaInterface $media * @throws MediaException * @return DaoSaveable */ public static function getMediaOwnerFromMedia(MediaInterface $media){ $ownerRef = $media->getOwnerReference(); try{ $owner = GlobalVariables::get("dao")->getFirst($ownerRef->class,array("id"=>$ownerRef->id)); return $owner; }catch(CoreException $ex){ throw new MediaException("Invalid Media Reference trying get Media Owner in MediaHandler::getMEdiaOwner"); } } /** * * @param HasMediaInterface $model * @param MediaInterface $media * @throws MediaException */ public static function setMainMediaToModel(HasMediaInterface $model, MediaInterface $media){ try{ $model->setMainMedia($media); GlobalVariables::get("dao")->save($model); }catch(CoreException $ex){ throw new MediaException("Error while trying to save an HasMediaInterface in ModelHandler::setMainMedia"); } } /** * Prende in ingresso un HasMediaInterface ritorna un array di un elemento array("mainMedia"=>"&value"); * * @param HasMediaInterface $model * @return array */ 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; } return $rval; } } ?>