Uncommited changes synced
[Pman.Core] / DataObjects / Images.php
index 5478f16..1af82d6 100644 (file)
@@ -446,14 +446,14 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
     }
     
      
-    function toRooArray($req) {
+    function toRooArray($req)
+    {
         
         $ret= $this->toArray();
       
-        static $ff = false;
-        if (!$ff) {
-            $ff = HTML_FlexyFramework::get();
-        }
+         
+        $ff = HTML_FlexyFramework::get();
+        
         
         $ret['public_baseURL'] = isset($ff->Pman_Images['public_baseURL']) ?
                     $ff->Pman_Images['public_baseURL'] : $ff->baseURL;
@@ -471,8 +471,9 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
                 $ret['url_thumb'] = $this->URL($req['query']['imagesize'], '/Images/Thumb',$baseURL);
             }
             
-            $ret['shorten_name'] = $this->shorten_name();
+            
         }
+        $ret['shorten_name'] = $ret['filename'] = $this->shorten_name();
         
         return $ret;
     }
@@ -501,7 +502,7 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
         if ($size < 0) {
             $provider = preg_replace('#/Thumb$#', '', $provider);
             
-            return $baseURL . $provider . "/{$this->id}/{$shorten_name}";
+            return $baseURL . $provider . "/{$this->id}/{$shorten_name}"; // -- this breaks the rss feed #image-{$this->id}";
         }
         //-- max?
         //$size = max(100, (int) $size);
@@ -523,9 +524,32 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
         
         $fc->convert($mt, $size);
         
-        return $baseURL . $provider . "/$size/{$this->id}/{$shorten_name}";
+        return $baseURL . $provider . "/$size/{$this->id}/{$shorten_name}"; // -- this breaks the rss feed #image-{$this->id}";
+    }
+    
+    function getFromHashURL($url)
+    {
+        $id = false;
+        if (preg_match('/#image-([0-9]+)$/', $url, $matches)) {
+            $id = $matches[1];
+        } else if (preg_match('#Images/Thumb/[^/]+/([0-9]+)/#', $url, $matches)) {
+            $id = $matches[1];
+        } else if (preg_match('#Images/([0-9]+)/#', $url, $matches)) {
+            $id = $matches[1];
+        }
+        
+        if ($id === false ||  $id < 1) {
+            return false;
+        }
+        
+        $img = DB_DAtaObject::Factory('images');
+        if ($img->get($id)) {
+            return $img;
+        }
+        return false;
     }
     
+    
     function shorten_name()
     {
         if(empty($this->filename)) {
@@ -534,7 +558,7 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
         
         $filename = explode('.', $this->filename);
         $ext = array_pop($filename);
-        $name = preg_replace("/[^A-Za-z0-9.]+/", '-', implode('-', $filename)) ;
+        $name = preg_replace("/[^A-Z0-9.]+/i", '-', implode('-', $filename)) ;
         
         if(strlen($name) > 32) {
             $name = substr($name, 0, 32);
@@ -660,11 +684,12 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
             $roo->addEvent("ADD", $this, $this->toEventString());
             
             $r = DB_DataObject::factory($this->tableName());
+            
             $r->id = $this->id;
             $roo->loadMap($r);
             $r->limit(1);
             $r->find(true);
-            $roo->jok($r->toArray());
+            $roo->jok($r->toRooArray($ar));
             
             
         }
@@ -679,8 +704,7 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
         if (!$this->checkPerm($this->id ? 'A' : 'E', $roo->authUser))  {
             $roo->jerr("IMAGE UPLOAD PERMISSION DENIED");
         }
-        
-        
+         
         
         if (!isset($_FILES['imageUpload'])) {
             return; // standard update...
@@ -700,7 +724,7 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
         $roo->loadMap($r);
         $r->limit(1);
         $r->find(true);
-        $roo->jok($r->toArray());
+        $roo->jok($r->toRooArray($ar));
          
     }