X-Git-Url: http://git.roojs.org/?p=Pman.Base;a=blobdiff_plain;f=Pman%2FImages.php;fp=Pman%2FImages.php;h=04110fb0186acdff7d198c687f16f54e5b00d47a;hp=c4ea1b3f1232313b6973ddbf6ee30dff847412af;hb=941f9cb9198e9d535df05cee004189a74344d617;hpb=7c9e812e4f0108a777a353bbe71f09abf1db3e9f diff --git a/Pman/Images.php b/Pman/Images.php index c4ea1b3..04110fb 100644 --- a/Pman/Images.php +++ b/Pman/Images.php @@ -1,186 +1,9 @@ getAuthUser(); - //if (!$au) { - // die("Access denied"); - // } - $this->authUser = $au; - - return true; - } - var $thumb = false; - var $as_mimetype = false; - var $method = 'inline'; - function get($s) // determin what to serve!!!! - { - $this->as_mimetype = empty($_REQUEST['as']) ? '' : $_REQUEST['as']; - - $bits= explode('/', $s); - $id = 0; - // without id as first part... - if (!empty($bits[0]) && $bits[0] == 'Thumb') { - $this->thumb = true; - $this->as_mimetype = 'image/jpeg'; - $this->size = empty($bits[1]) ? '0x0' : $bits[1]; - $id = empty($bits[2]) ? 0 : $bits[2]; - - } else if (!empty($bits[0]) && $bits[0] == 'Download') { - $this->method = 'attachment'; - $id = empty($bits[1]) ? 0 : $bits[1]; - - } else if (!empty($bits[1]) && $bits[1] == 'Thumb') { // with id as first part. - $this->thumb = true; - $this->as_mimetype = 'image/jpeg'; - $this->size = empty($bits[2]) ? '0x0' : $bits[2]; - $id = empty($bits[3]) ? 0 : $bits[3]; - - } else { - $id = empty($bits[0]) ? 0 : $bits[0]; - } - - if (strpos($id,':') > 0) { // id format tablename:id:-imgtype - $onbits = explode(':', $id); - if ((count($onbits) < 2) || empty($onbits[1]) || !is_numeric($onbits[1]) || !strlen($onbits[0])) { - die("Bad url"); - } - //DB_DataObject::debugLevel(1); - $img = DB_DataObjecT::factory('Images'); - $img->ontable = $onbits[0]; - $img->onid = $onbits[1]; - if (empty($_REQUEST['anytype'])) { - $img->whereAdd("mimetype like 'image/%'"); - } - - if (isset($onbits[2])) { - $img->imgtype = $onbits[2]; - } - $img->limit(1); - if (!$img->find(true)) { - header('Location: ' . $this->rootURL . '/Pman/templates/images/file-broken.png?reason=' . - urlencode("no images for that item: " . htmlspecialchars($id))); - } - - $id = $img->id; - - - } - $id = (int) $id; - - // depreciated - should use ontable:onid:type here... - if (!empty($_REQUEST['ontable'])) { - - //DB_DataObjecT::debugLevel(1); - $img = DB_DataObjecT::factory('Images'); - $img->setFrom($_REQUEST); - // use imgtype now... - // if (!empty($_REQUEST['query']['filename'])){ - // $img->whereAdd("filename LIKE '". $img->escape($_REQUEST['query']['filename']).".%'"); - // } - - - $img->limit(1); - if (!$img->find(true)) { - header('Location: ' . $this->rootURL . '/Pman/templates/images/file-broken.png?reason='. - urlencode("No file exists")); - } - $id = $img->id; - - } - - - - $img = DB_DataObjecT::factory('Images'); - if (!$id || !$img->get($id)) { - - header('Location: ' . $this->rootURL . '/Pman/templates/images/file-broken.png?reason=' . - urlencode("image has been removed or deleted.")); - } - $this->serve($img); - exit; - } - - function serve($img) - { - require_once 'File/Convert.php'; - if (!file_exists($img->getStoreName())) { - //print_r($img);exit; - header('Location: ' . $this->rootURL . '/Pman/templates/images/file-broken.png?reason=' . - urlencode("Original file was missing : " . $img->getStoreName())); - - } - - $x = new File_Convert($img->getStoreName(), $img->mimetype); - if (empty($this->as_mimetype)) { - $this->as_mimetype = $img->mimetype; - } - if (!$this->thumb) { - $x->convert( $this->as_mimetype); - $x->serve($this->method); - exit; - } - //echo "SKALING? $this->size"; - $this->validateSize(); - $x->convert( $this->as_mimetype, $this->size); - $x->serve(); - exit; - - - - - } - function validateSize() - { - $sizes = array( - '100', - '100x100', - '150', - '150x150', - '200', - '200x0', - '200x200', - '400x0', - '300x100', // logo on login. - '500' - ); - - // this should be configurable... - $ff = HTML_FlexyFramework::get(); - if (!empty($ff->Pman_Images['sizes'])) { - $sizes = array_merge($sizes , $ff->Pman_Images['sizes']); - } - - - if (!in_array($this->size, $sizes)) { - die("invalid scale - ".$this->size); - } - } } \ No newline at end of file