diff --git a/private/lib/dao/DaoSaveableDefaultImplementation.php b/private/lib/dao/DaoSaveableDefaultImplementation.php
index 8b10c44..7aafaf1 100644
--- a/private/lib/dao/DaoSaveableDefaultImplementation.php
+++ b/private/lib/dao/DaoSaveableDefaultImplementation.php
@@ -16,8 +16,10 @@ abstract class DaoSaveableDefaultImplementation implements DaoSaveable {
}
public function __set($attr,$value){
- if (strcmp($attr,"id")==0){
- $attr = "_id";
+ if (strcmp($attr,"id")==0 || strcmp($attr,"_id")==0){
+ if (strcmp($attr,"id")==0){
+ $attr = "_id";
+ }
if (!($value instanceof MongoId)){
$value = new MongoId($value);
}
@@ -26,10 +28,23 @@ abstract class DaoSaveableDefaultImplementation implements DaoSaveable {
}
public function &__get($attr){
- if (strcmp($attr,"id")==0){
- $attr = "_id";
+ $rval = null;
+ if (strcmp($attr,"id")==0 || strcmp($attr,"_id")==0){
+ if (strcmp($attr,"id")==0){
+ $attr = "_id";
+ }
+ if ($this->hasProperty($attr)){
+ $idf = '$id';
+ $rval = &$this->saveableObject->$attr->$idf;
+ }
+ else {
+ $rval = null;
+ }
}
- $rval = &$this->saveableObject->$attr;
+ else {
+ $rval = &$this->saveableObject->$attr;
+ }
+
return $rval;
}
diff --git a/private/lib/dao/GenericDao.php b/private/lib/dao/GenericDao.php
index c2bb5b9..2dc0973 100644
--- a/private/lib/dao/GenericDao.php
+++ b/private/lib/dao/GenericDao.php
@@ -58,6 +58,10 @@ class GenericDao{
unset($useFilter["id"]);
}
+ if (array_key_exists("_id",$useFilter) && is_string($useFilter["_id"])){
+ $useFilter["_id"] = new MongoId($useFilter["_id"]);
+ }
+
$cursor = $collection->find($useFilter);
if (array_key_exists("sort",$options)){
diff --git a/private/lib/dao/mediaModels/DaoMediaHandler.php b/private/lib/dao/mediaModels/DaoMediaHandler.php
index 34f569e..ab6677b 100644
--- a/private/lib/dao/mediaModels/DaoMediaHandler.php
+++ b/private/lib/dao/mediaModels/DaoMediaHandler.php
@@ -1,7 +1,6 @@
paths->media;
+ $info = pathinfo($filePath);
+ $media = new MediaModel($saveableObj);
+ $media->extension = $info["extension"];
+ GlobalVariables::get("dao")->save($media);
+ SFSManager::copyFile($filePath, $basepath."/".$media->id.".".$media->extension);
+ return $media;
+ }
+
}
?>
\ No newline at end of file
diff --git a/private/lib/dao/mediaModels/MediaModel.php b/private/lib/dao/mediaModels/MediaModel.php
index 855aeea..00db583 100644
--- a/private/lib/dao/mediaModels/MediaModel.php
+++ b/private/lib/dao/mediaModels/MediaModel.php
@@ -21,22 +21,31 @@ class MediaModel extends Model implements MediaInterface{
public function __construct($saveableObject = null){
parent::__construct($saveableObject);
+ $this->setMediaRenderer();
+ }
+
+ public function setMediaRenderer(){
if($this->hasProperty("mediaType")){
if ($this->mediaType == self::TYPE_HTML5){
- $this->mediaRenderer = new MediaHtml5($this);
+ if ($this->hasProperty("code")){
+ $this->mediaRenderer = new MediaHtml5($this->code);
+ }
+ else {
+ throw new MediaException("Media of type 'HTML5' has no code field");
+ }
}
if ($this->mediaType == self::TYPE_LOCALVIDEO){
$this->mediaRenderer = new MediaLocalVideo($this);
}
if ($this->mediaType == self::TYPE_IMAGE){
- $this->mediaRenderer = new MediaImage($this);
+ $this->mediaRenderer = new MediaImage($this->id);
}
if ($this->mediaType == self::TYPE_PDF){
$this->mediaRenderer = new MediaPdf($this);
}
if ($this->mediaType == self::TYPE_YOUTUBE){
$this->mediaRenderer = new MediaYoutube($this);
- }
+ }
}
else{
throw new MediaException("Missing mediatype for Media in MediaModel construct");
@@ -72,6 +81,9 @@ class MediaModel extends Model implements MediaInterface{
return $this->id;
}
-
+ public function updateFromSaveableObj($saveableObject){
+ parent::updateFromSaveableObj($saveableObject);
+ $this->setMediaRenderer();
+ }
}
?>
\ No newline at end of file
diff --git a/private/lib/media/mediaRenderers/MediaHtml5.php b/private/lib/media/mediaRenderers/MediaHtml5.php
index e3fcd13..a0555b1 100644
--- a/private/lib/media/mediaRenderers/MediaHtml5.php
+++ b/private/lib/media/mediaRenderers/MediaHtml5.php
@@ -1,14 +1,14 @@
modelRef = $model;
+ public function __construct($code){
+ $this->code = $code;
}
public function asText(){
- return $this->modelRef->code;
+ return $this->code;
}
public function render(){
diff --git a/private/lib/media/mediaRenderers/MediaImage.php b/private/lib/media/mediaRenderers/MediaImage.php
index 8171d10..768132d 100644
--- a/private/lib/media/mediaRenderers/MediaImage.php
+++ b/private/lib/media/mediaRenderers/MediaImage.php
@@ -1,13 +1,15 @@
modelRef = $model;
+ public function __construct($id){
+ $this->id = $id;
}
public function asText(){
- return $this->modelRef->path;
+ return ''.
+ '
'.
+ '';
}
public function render(){
diff --git a/public/getImage.php b/public/getImage.php
new file mode 100644
index 0000000..76cc0c2
--- /dev/null
+++ b/public/getImage.php
@@ -0,0 +1,54 @@
+getFirst("MediaModel",array("id"=>$_GET['id']));
+
+ if (!is_null($img)){
+ $basepath = GlobalVariables::get("config")->paths->media;
+ $thumb = new Imagick($basepath."/".$img->id.".".$img->extension);
+
+ if ($size == "small"){
+ $thumb->thumbnailimage(0, 100);
+ }
+
+ header('Content-type: image/png');
+ echo $thumb;
+
+
+// switch ($size){
+// case "big":
+// $img = ThumbnailGenerator::renderBigThumbnail($content);
+// break;
+// case "med":
+// $img = ThumbnailGenerator::renderMediumThumbnail($content);
+// break;
+// case "small":
+// $img = ThumbnailGenerator::renderSmallThumbnail($content);
+// break;
+// case "mini":
+// $img = ThumbnailGenerator::renderMiniThumbnail($content);
+// break;
+// case "topbar":
+// header("Cache-Control: no-cache, must-revalidate");
+// $img = ThumbnailGenerator::renderThumbnail($content,150,0);
+// break;
+// default:
+// $img = ThumbnailGenerator::renderOriginal($content);
+// break;
+// }
+ }
+}
+?>
\ No newline at end of file
diff --git a/public/index.php b/public/index.php
index ac7bc3a..356d69f 100644
--- a/public/index.php
+++ b/public/index.php
@@ -57,6 +57,8 @@ try {
DaoMediaHandler::deleteMedia($news,$media2);
echo "
";
var_dump($news);
+
+// var_dump($media->id);
// echo "
";
// var_dump($media);