From 4dc69c156dca867a1922c3e8c5d047ad333be7f7 Mon Sep 17 00:00:00 2001 From: Lorenzo Giacomelli Date: Wed, 13 Jan 2016 12:25:25 +0100 Subject: [PATCH] Creazione gruppo media parte 2 (ancora in lavorazione) --- private/lib/media/HasMediaInterface.php | 14 +++++++++++++- private/lib/media/HasMediaModel.php | 8 ++++++++ private/lib/media/MediaHandler.php | 4 ++-- private/lib/media/MediaModel.php | 12 ++++++++++++ private/lib/media/lib.inclusion.php | 4 ++++ private/lib/media/mediaRenderers/MediaImage.php | 17 ++++++++++------- private/lib/media/mediaRenderers/MediaPdf.php | 17 +++++++++++++++++ .../lib/media/mediaRenderers/MediaYoutube.php | 17 ++++++++++------- 8 files changed, 76 insertions(+), 17 deletions(-) diff --git a/private/lib/media/HasMediaInterface.php b/private/lib/media/HasMediaInterface.php index cc8eab3..be52276 100644 --- a/private/lib/media/HasMediaInterface.php +++ b/private/lib/media/HasMediaInterface.php @@ -8,8 +8,20 @@ interface HasMediaInterface{ */ public function getReference(); + /** + * Setta la referenza ai media + * @param array $references + */ public function setMediaReferences(array $references); - + + /** + * Ritorna un array contentente le referenze ai media + * @return array + */ public function getMediaReferences(); + + public function setMainMedia(); + + public function getMainMedia(); } ?> \ No newline at end of file diff --git a/private/lib/media/HasMediaModel.php b/private/lib/media/HasMediaModel.php index d38665c..980248a 100644 --- a/private/lib/media/HasMediaModel.php +++ b/private/lib/media/HasMediaModel.php @@ -14,6 +14,10 @@ abstract class HasMediaModel extends Model implements HasMediaInterface{ return $rval; } + /** + * (non-PHPdoc) + * @see HasMediaInterface::setMediaReferences() + */ public function setMediaReferences(array $medias){ $this->mediaReferences = array(); if(sizeof($medias)>0){ @@ -25,6 +29,10 @@ abstract class HasMediaModel extends Model implements HasMediaInterface{ } } + /** + * (non-PHPdoc) + * @see HasMediaInterface::getMediaReferences() + */ public function getMediaReferences(){ if(!property_exists($this, "mediaReferences")){ $this->mediaReferences = array(); diff --git a/private/lib/media/MediaHandler.php b/private/lib/media/MediaHandler.php index ad406de..e7b4b1d 100644 --- a/private/lib/media/MediaHandler.php +++ b/private/lib/media/MediaHandler.php @@ -10,10 +10,10 @@ class MediaHandler{ * Ritorna un array coi i media della news */ public static function getMedias(HasMediaModel $model,MediaModel $media){ - $newsReference = $model->getReference(); + $newsReference = $model->getMediaReferences(); $rval = array(); - $rval = $dao->query(MediaModel::COLLECTION_NAME,array($newsReference->id),array(),"MediaModel"); + $rval = $dao->query("MediaModel",array($newsReference["id"]),array()); return $rval; } diff --git a/private/lib/media/MediaModel.php b/private/lib/media/MediaModel.php index c3dded2..dd8f25f 100644 --- a/private/lib/media/MediaModel.php +++ b/private/lib/media/MediaModel.php @@ -9,6 +9,18 @@ class MediaModel extends Model implements MediaInterface{ if ($this->type == self::TYPE_HTML5){ $this->mediaRenderer = new MediaHtml5($this); } + if ($this->type == self::TYPE_LOCALVIDEO){ + $this->mediaRenderer = new MediaLocalVideo($this); + } + if ($this->type == self::TYPE_IMAGE){ + $this->mediaRenderer = new MediaImage($this); + } + if ($this->type == self::TYPE_PDF){ + $this->mediaRenderer = new MediaPdf($this); + } + if ($this->type == self::TYPE_YOUTUBE){ + $this->mediaRenderer = new MediaYoutube($this); + } } else{ throw new MediaException("Invalid media type for Media; mediatype '".$mediaType."'"); diff --git a/private/lib/media/lib.inclusion.php b/private/lib/media/lib.inclusion.php index ec207e2..c35e337 100644 --- a/private/lib/media/lib.inclusion.php +++ b/private/lib/media/lib.inclusion.php @@ -13,6 +13,10 @@ require_once(dirname(__FILE__)."/HasMediaInterface.php"); require_once(dirname(__FILE__)."/HasMediaModel.php"); require_once(dirname(__FILE__)."/MediaRendererInterface.php"); require_once(dirname(__FILE__)."/mediaRenderers/MediaHtml5.php"); +require_once(dirname(__FILE__)."/mediaRenderers/MediaImage.php"); +require_once(dirname(__FILE__)."/mediaRenderers/MediaPdf.php"); +require_once(dirname(__FILE__)."/mediaRenderers/MediaLocalVideo.php"); +require_once(dirname(__FILE__)."/mediaRenderers/MediaYoutube.php"); require_once(dirname(__FILE__)."/MediaHandler.php"); GenericDao::registerModel("MediaModel"); diff --git a/private/lib/media/mediaRenderers/MediaImage.php b/private/lib/media/mediaRenderers/MediaImage.php index ad2c050..8171d10 100644 --- a/private/lib/media/mediaRenderers/MediaImage.php +++ b/private/lib/media/mediaRenderers/MediaImage.php @@ -1,14 +1,17 @@ path = $path; +class MediaImage implements MediaRendererInterface{ + private $modelRef; + + public function __construct(MediaModel $model){ + $this->modelRef = $model; } public function asText(){ - echo $this->path; + return $this->modelRef->path; + } + + public function render(){ + echo $this->asText(); } } ?> \ No newline at end of file diff --git a/private/lib/media/mediaRenderers/MediaPdf.php b/private/lib/media/mediaRenderers/MediaPdf.php index b3d9bbc..6ff1375 100644 --- a/private/lib/media/mediaRenderers/MediaPdf.php +++ b/private/lib/media/mediaRenderers/MediaPdf.php @@ -1 +1,18 @@ modelRef = $model; + } + + public function asText(){ + return $this->modelRef->path; + } + + public function render(){ + echo $this->asText(); + } +} +?> \ No newline at end of file diff --git a/private/lib/media/mediaRenderers/MediaYoutube.php b/private/lib/media/mediaRenderers/MediaYoutube.php index 1862d4f..c9bb181 100644 --- a/private/lib/media/mediaRenderers/MediaYoutube.php +++ b/private/lib/media/mediaRenderers/MediaYoutube.php @@ -1,15 +1,18 @@ link = $link; + public function __construct(MediaModel $model){ + $this->modelRef = $model; + } + + public function asText(){ + return $this->modelRef->link; } - public function asText(){ - echo "iframe ".$this->link; + public function render(){ + echo $this->asText(); } } ?> \ No newline at end of file