DataObjects/Core_notify.php
[Pman.Core] / DataObjects / Images.php
index b858191..b9fae2a 100644 (file)
@@ -26,7 +26,6 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
     public $linkurl;                         // string(254)  not_null
     public $descript;                        // blob(65535)  not_null blob
     public $title;                           // string(128)  not_null
-
     
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
@@ -35,14 +34,13 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
     {
         // default permissons are to
         // allow create / edit / if the user has
+        
         if (!$au) {
             
           
             
             return false;
         }
-         
-        
         
         $o = $this->object();
         //print_r($o);
@@ -56,9 +54,39 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
         
     }
     
-    
-    
-    
+    function beforeInsert($q, $roo) 
+    {
+        if (isset($q['_remote_upload'])) {
+            require_once 'System.php';
+            $tmpdir  = System::mktemp("-d remote_upload");
+            
+            $path = $tmpdir . '/' . basename($q['_remote_upload']);
+            if(!file_exists($path)){
+               file_put_contents($path, file_get_contents($q['_remote_upload'])); 
+            }
+            
+            $imageInfo = getimagesize($path);
+            require_once 'File/MimeType.php';
+            $y = new File_MimeType();
+            $ext = $y->toExt(trim((string) $imageInfo['mime'] ));
+            
+            if (!preg_match("/\." . $ext."$/", $path, $matches)) {
+                rename($path,$path.$ext);
+            }
+            
+            $this->createFrom($path);
+            
+            $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->URL(-1,'/Images') . '#attachment-'.  $r->id);
+        }
+        
+    }
     
     
     /**
@@ -150,7 +178,6 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
         ));
           
     }
-
      
     /**
      * deletes all the image instances of it...
@@ -228,6 +255,7 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
     }
     
     // direct via roo...
+    /// ctrl not used??
     function onUpload($ctrl)
     {
         
@@ -267,7 +295,15 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
         require_once 'File/MimeType.php';
         $y = new File_MimeType();
         $this->mimetype = $_FILES['imageUpload']['type'];
-        if (in_array($this->mimetype, array('text/application', 'application/octet-stream'))) { // weird tyeps..
+        if (in_array($this->mimetype, array(
+                        'text/application',
+                        'application/octet-stream',
+                        'image/x-png',  // WTF does this?
+                        'image/pjpeg',  // WTF does this?
+                        'application/x-apple-msg-attachment', /// apple doing it's magic...
+                        'application/vnd.ms-excel',   /// sometimes windows reports csv as excel???
+                        'application/csv-tab-delimited-table', // windows again!!?
+                ))) { // weird tyeps..
             $inf = pathinfo($_FILES['imageUpload']['name']);
             $this->mimetype  = $y->fromExt($inf['extension']);
         }
@@ -403,6 +439,17 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
         //-- max?
         //$size = max(100, (int) $size);
         //$size = min(1024, (int) $size);
+        // the size should 200x150 to convert
+        $sizear = preg_split('/(x|c)/', $size);
+        if(empty($sizear[1])){
+            $sizear[1] = 0;
+        }
+        $size = implode(strpos($size,'c') > -1 ? 'c' : 'x', $sizear);
+//        print_r($size);
+        $fc = $this->toFileConvert();
+//        print_r($size);
+//        exit;
+        $fc->convert($this->mimetype, $size);
         
         
         return $baseURL . $provider . "/$size/{$this->id}/{$this->filename}";
@@ -451,6 +498,17 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
         return $fc;
         
     }
+    
+    function fileExt()
+    {
+        require_once 'File/MimeType.php';
+        
+        $y = new File_MimeType();
+        return  $y->toExt($this->mimetype);
+        
+        
+    }
+    
     /**
      *
      *
@@ -511,6 +569,8 @@ class Pman_Core_DataObjects_Images extends DB_DataObject
             $roo->jerr("IMAGE UPLOAD PERMISSION DENIED");
         }
         
+        
+        
         if (!isset($_FILES['imageUpload'])) {
             return; // standard update...
         }