diff --git a/private/lib/dao/mediaModels/DaoMediaHandler.php b/private/lib/dao/mediaModels/DaoMediaHandler.php
index ab6677b..ee78ee5 100644
--- a/private/lib/dao/mediaModels/DaoMediaHandler.php
+++ b/private/lib/dao/mediaModels/DaoMediaHandler.php
@@ -151,7 +151,13 @@ class DaoMediaHandler implements MediaHandlerInterface{
return $tmp;
}
-
+ /**
+ * Richiede un saveable object con almeno la proprietà mediaType e il path del file
+ *
+ * @param stdClass $saveableObj
+ * @param string $filePath
+ * @return MediaModel
+ */
public static function createNewFileBasedMedia($saveableObj, $filePath){
$basepath = GlobalVariables::get("config")->paths->media;
$info = pathinfo($filePath);
@@ -162,6 +168,17 @@ class DaoMediaHandler implements MediaHandlerInterface{
return $media;
}
+ /**
+ * Richiede un saveable object con la proprietà mediaType settata
+ *
+ * @param stdClass $saveable
+ * @return MediaModel
+ */
+ public static function createNewTextBasedMedia($saveable){
+ $media = new MediaModel($saveable);
+ return $media;
+ }
+
}
?>
\ No newline at end of file
diff --git a/private/lib/media/mediaRenderers/MediaImage.php b/private/lib/media/mediaRenderers/MediaImage.php
index 768132d..61ac098 100644
--- a/private/lib/media/mediaRenderers/MediaImage.php
+++ b/private/lib/media/mediaRenderers/MediaImage.php
@@ -6,14 +6,12 @@ class MediaImage implements MediaRendererInterface{
$this->id = $id;
}
- public function asText(){
- return ''.
- ''.
- '';
+ public function asText($size){
+ return '
';
}
- public function render(){
- echo $this->asText();
+ public function render($size = "small"){
+ echo $this->asText($size);
}
}
?>
\ No newline at end of file
diff --git a/private/lib/media/mediaRenderers/MediaLocalVideo.php b/private/lib/media/mediaRenderers/MediaLocalVideo.php
index cc7cd88..7e8ee0c 100644
--- a/private/lib/media/mediaRenderers/MediaLocalVideo.php
+++ b/private/lib/media/mediaRenderers/MediaLocalVideo.php
@@ -1,14 +1,14 @@
modelRef = $model;
+ public function __construct($id){
+ $this->id = $id;
}
public function asText(){
- return $this->modelRef->path;
+ return $this->id;
}
public function render(){
diff --git a/private/lib/media/mediaRenderers/MediaPdf.php b/private/lib/media/mediaRenderers/MediaPdf.php
index 6ff1375..4ad7eb1 100644
--- a/private/lib/media/mediaRenderers/MediaPdf.php
+++ b/private/lib/media/mediaRenderers/MediaPdf.php
@@ -1,14 +1,14 @@
modelRef = $model;
+ public function __construct($id){
+ $this->id = $model;
}
public function asText(){
- return $this->modelRef->path;
+ return $this->id;
}
public function render(){
diff --git a/private/lib/media/mediaRenderers/MediaYoutube.php b/private/lib/media/mediaRenderers/MediaYoutube.php
index 3812f19..3397a46 100644
--- a/private/lib/media/mediaRenderers/MediaYoutube.php
+++ b/private/lib/media/mediaRenderers/MediaYoutube.php
@@ -8,7 +8,9 @@ class MediaYoutube implements MediaRendererInterface{
}
public function asText(){
- return $this->link;
+ return '';
}
public function render(){
diff --git a/public/admin/addMultimedia.php b/public/admin/addMultimedia.php
new file mode 100644
index 0000000..830c09e
--- /dev/null
+++ b/public/admin/addMultimedia.php
@@ -0,0 +1,142 @@
+hasRole(AdminModel::ADMIN_TYPE_EDITORE_SUPERVISOR) &&
+ !AdminLoginManager::getLogged()->hasRole(AdminModel::ADMIN_TYPE_EDITORE)){
+ GUIHandler::redirect("admin/index.php");
+}
+
+try{
+ $error = "";
+ $notiziaId = PostHandler::get("id");
+
+ $notizia = new stdClass();
+ if(is_null($notiziaId) || strcmp($notiziaId, "")==0){
+ throw new CoreException("Trying to add a media to an invalid model with id '".$notiziaId. "'");
+ }
+ else{
+ $mediaTypeSaved = PostHandler::get("mediaType");
+ if(array_key_exists("action", $_POST) && strcmp(PostHandler::get("action"), "save")==0){
+ $notizia = GlobalVariables::get("dao")->getFirst("NotiziaModel",array("id"=>$notiziaId));
+
+ $file = "";
+
+ $mediaType = PostHandler::get("mediaType");
+ if(strcmp($mediaType, "")!=0){
+ $tmp = array();
+ $saveable = new stdClass();
+ $saveable->mediaType = $mediaType;
+ if(strcmp($mediaType,MediaModel::TYPE_YOUTUBE)==0){
+ $saveable->link = PostHandler::get("data");
+ $media = DaoMediaHandler::createNewTextBasedMedia($saveable);
+ }
+ else if(strcmp($mediaType,MediaModel::TYPE_HTML5)==0){
+ $saveable->code = PostHandler::get("data");
+ $media = DaoMediaHandler::createNewTextBasedMedia($saveable);
+ }
+ else {
+ $saveable->path = PostHandler::get("data");
+ $file = $_FILES['data']['tmp_name'];
+// $file = PostHandler::get("data");
+ $media = DaoMediaHandler::createNewFileBasedMedia($saveable, $file);
+ }
+
+ if(!is_null($media)){
+ GlobalVariables::get("dao")->save($media);
+ DaoMediaHandler::addMedia($notizia, $media);
+ GlobalVariables::get("dao")->save($notizia);
+ }
+ else{
+ throw new Exception("Cannot save a null media in the news with id '".$notiziaId."'");
+ }
+ }
+ else{
+ throw new Exception("Invalid mediaType '".$mediaType."' while trying to add the media in addMultimedia");
+ }
+
+ GUIHandler::redirectPost("admin/homeMultimedia.php",array("id"=>$notiziaId));
+ }
+ }
+
+ $formFile = '
+ ';
+
+ $formYoutube = 'url: ';
+
+ $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.";
+}
+
+MenuGenerator::generateMenu();
+HTMLHelper::generateAdminHead();
+?>
+