X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=DataObjects%2FImages.php;h=87f188944a3e9406752c24578f127f686b15b7dd;hp=10c92f198cc46559e778b089e4c44591d0d4ebc7;hb=2f05e281e57df70ead5aac9084df0dce8b3e3a4c;hpb=0240d255376ca95b458e45be50e071ffd6a0e759 diff --git a/DataObjects/Images.php b/DataObjects/Images.php index 10c92f19..87f18894 100644 --- a/DataObjects/Images.php +++ b/DataObjects/Images.php @@ -29,6 +29,18 @@ class Pman_Core_DataObjects_Images extends DB_DataObject /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE + function applyFilters($q, $au, $roo) + { + $tn = $this->tableName(); + + if(!empty($q['search']['filename'])){ + $this->whereAdd(" + $tn.filename LIKE '%{$this->escape($q['search']['filename'])}%' OR $tn.title LIKE '%{$this->escape($q['search']['filename'])}%' + "); + } + + + } function checkPerm($lvl, $au) { @@ -118,9 +130,10 @@ class Pman_Core_DataObjects_Images extends DB_DataObject $this->mimetype = $y->fromFilename($filename); } - $this->mimetype= strtolower($this->mimetype); + $this->mimetype = strtolower($this->mimetype); - if (array_shift(explode('/', $this->mimetype)) == 'image') { + $mta = explode('/', $this->mimetype); + if (array_shift($mta) == 'image') { $imgs = @getimagesize($file); @@ -185,7 +198,6 @@ class Pman_Core_DataObjects_Images extends DB_DataObject { $opts = HTML_FlexyFramework::get()->Pman; $fn = preg_replace('/[^a-z0-9\.]+/i', '_', $this->filename); - print_r($opts);exit; return implode( '/', array( $opts['storedir'], '_images_', date('Y/m', strtotime($this->created)), $this->id . '-'. $fn )); @@ -197,21 +209,42 @@ class Pman_Core_DataObjects_Images extends DB_DataObject * * */ - function beforeDelete() + function beforeDelete($dependants_array, $roo) { + + $opts = HTML_FlexyFramework::get()->Pman; + $deldir = $opts['storedir']. '/_deleted_images_'; + if (!file_exists( $deldir )) { + mkdir($deldir, 0755); + } + $fn = $this->getStoreName(); + $b = basename($fn); if (file_exists($fn)) { - unlink($fn); + + if (file_exists($deldir . '/'. $b)) { + unlink($fn); + } else { + rename($fn, $deldir .'/'. $b); + } + + } // delete thumbs.. - $b = basename($fn); + $d = dirname($fn); if (file_exists($d)) { $dh = opendir($d); while (false !== ($fn = readdir($dh))) { if (substr($fn, 0, strlen($b)) == $b) { - unlink($d. '/'. $fn); + + if (file_exists($deldir . '/'. $fn)) { + unlink($d. '/'. $fn); + continue; + } + rename($d. '/'. $fn, $deldir .'/'. $fn); + } } } @@ -722,7 +755,8 @@ class Pman_Core_DataObjects_Images extends DB_DataObject $ext = $y->toExt(trim((string) $this->mimetype )); - if(array_pop(explode('.', $this->filename)) != $ext){ + $explode_filename = explode('.', $this->filename); + if(array_pop($explode_filename) != $ext){ $this->filename = $this->filename .'.'. $ext; } @@ -739,7 +773,9 @@ class Pman_Core_DataObjects_Images extends DB_DataObject $this->mimetype= strtolower($this->mimetype); - if (array_shift(explode('/', $this->mimetype)) == 'image') { + $explode_mimetype = explode('/', $this->mimetype); + + if (array_shift($explode_mimetype) == 'image') { $imgs = @getimagesize($data); @@ -829,4 +865,28 @@ class Pman_Core_DataObjects_Images extends DB_DataObject return $page; } + function rotate($blob) + { + $imagick = new Imagick(); + $imagick->readImageBlob($blob); + + $orientation = $imagick->getImageOrientation(); + + switch($orientation) { + case Imagick::ORIENTATION_BOTTOMRIGHT: + $imagick->rotateimage(new ImagickPixel('#00000000'), 180); // rotate 180 degrees + break; + + case Imagick::ORIENTATION_RIGHTTOP: + $imagick->rotateimage(new ImagickPixel('#00000000'), 90); // rotate 90 degrees CW + break; + + case Imagick::ORIENTATION_LEFTBOTTOM: + $imagick->rotateimage(new ImagickPixel('#00000000'), -90); // rotate 90 degrees CCW + break; + } + + return $imagick->getImageBlob(); + } + }