Changeset 14735 for trunk/include
- Timestamp:
- May 4, 2012, 6:29:44 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/derivative.inc.php
r14143 r14735 24 24 const IS_ORIGINAL = 0x01; 25 25 const IS_MIMETYPE = 0x02; 26 const DIM_NOT_GIVEN = 0x04; 26 27 27 28 public $id; … … 52 53 $this->rel_path = trigger_event('get_mimetype_location', get_themeconf('mime_icon_dir').$ext.'.png', $ext ); 53 54 $this->flags |= self::IS_MIMETYPE; 54 $this->size = @getimagesize(PHPWG_ROOT_PATH.$this->rel_path); 55 } 56 57 if (!$this->size && isset($infos['width']) && isset($infos['height'])) 58 { 59 $width = $infos['width']; 60 $height = $infos['height']; 61 62 $this->rotation = intval($infos['rotation']) % 4; 63 // 1 or 5 => 90 clockwise 64 // 3 or 7 => 270 clockwise 65 if ($this->rotation % 2) 66 { 67 $width = $infos['height']; 68 $height = $infos['width']; 69 } 70 71 $this->size = array($width, $height); 55 if ( ($size=@getimagesize(PHPWG_ROOT_PATH.$this->rel_path)) === false) 56 { 57 $this->rel_path = get_themeconf('mime_icon_dir').'unknown.png'; 58 $size = getimagesize(PHPWG_ROOT_PATH.$this->rel_path); 59 } 60 $this->size = array($size[0],$size[1]); 61 } 62 63 if (!$this->size) 64 { 65 if (isset($infos['width']) && isset($infos['height'])) 66 { 67 $width = $infos['width']; 68 $height = $infos['height']; 69 70 $this->rotation = intval($infos['rotation']) % 4; 71 // 1 or 5 => 90 clockwise 72 // 3 or 7 => 270 clockwise 73 if ($this->rotation % 2) 74 { 75 $width = $infos['height']; 76 $height = $infos['width']; 77 } 78 79 $this->size = array($width, $height); 80 } 81 elseif (!array_key_exists('width', $infos)) 82 { 83 $this->flags |= self::DIM_NOT_GIVEN; 84 } 72 85 } 73 86 } … … 106 119 { 107 120 if ($this->size == null) 108 not_implemented(); // get size from file 121 { 122 if ($this->flags & self::DIM_NOT_GIVEN) 123 fatal_error('SrcImage dimensions required but not provided'); 124 // probably not metadata synced 125 if ( ($size = getimagesize( $this->get_path() )) !== false) 126 { 127 $this->size = array($size[0],$size[1]); 128 pwg_query('UPDATE '.IMAGES_TABLE.' SET width='.$size[0].', height='.$size[1].' WHERE id='.$this->id); 129 } 130 } 109 131 return $this->size; 110 132 }
Note: See TracChangeset
for help on using the changeset viewer.