@@ -94,13 +94,13 @@ discard block |
||
94 | 94 | } |
95 | 95 | |
96 | 96 | if ($filesize = filesize($cache_file) ) { |
97 | - $data = fread( $fp, filesize($cache_file) ); |
|
98 | - $rss = $this->unserialize( $data ); |
|
97 | + $data = fread( $fp, filesize($cache_file) ); |
|
98 | + $rss = $this->unserialize( $data ); |
|
99 | 99 | |
100 | - return $rss; |
|
101 | - } |
|
100 | + return $rss; |
|
101 | + } |
|
102 | 102 | |
103 | - return 0; |
|
103 | + return 0; |
|
104 | 104 | } |
105 | 105 | |
106 | 106 | /*=======================================================================*\ |
@@ -134,17 +134,17 @@ discard block |
||
134 | 134 | } |
135 | 135 | } |
136 | 136 | |
137 | - function cache_age( $cache_key ) { |
|
138 | - $filename = $this->file_name( $url ); |
|
139 | - if ( file_exists( $filename ) ) { |
|
140 | - $mtime = filemtime( $filename ); |
|
137 | + function cache_age( $cache_key ) { |
|
138 | + $filename = $this->file_name( $url ); |
|
139 | + if ( file_exists( $filename ) ) { |
|
140 | + $mtime = filemtime( $filename ); |
|
141 | 141 | $age = time() - $mtime; |
142 | - return $age; |
|
143 | - } |
|
144 | - else { |
|
145 | - return -1; |
|
146 | - } |
|
147 | - } |
|
142 | + return $age; |
|
143 | + } |
|
144 | + else { |
|
145 | + return -1; |
|
146 | + } |
|
147 | + } |
|
148 | 148 | |
149 | 149 | /*=======================================================================*\ |
150 | 150 | Function: serialize |
@@ -1,44 +1,44 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | |
3 | 3 | /** This file is part of KCFinder project |
4 | - * |
|
5 | - * @desc GD extension class |
|
6 | - * @package KCFinder |
|
7 | - * @version 2.51 |
|
8 | - * @author Pavel Tzonkov <[email protected]> |
|
9 | - * @copyright 2010, 2011 KCFinder Project |
|
10 | - * @license http://www.opensource.org/licenses/gpl-2.0.php GPLv2 |
|
11 | - * @license http://www.opensource.org/licenses/lgpl-2.1.php LGPLv2 |
|
12 | - * @link http://kcfinder.sunhater.com |
|
13 | - */ |
|
4 | + * |
|
5 | + * @desc GD extension class |
|
6 | + * @package KCFinder |
|
7 | + * @version 2.51 |
|
8 | + * @author Pavel Tzonkov <[email protected]> |
|
9 | + * @copyright 2010, 2011 KCFinder Project |
|
10 | + * @license http://www.opensource.org/licenses/gpl-2.0.php GPLv2 |
|
11 | + * @license http://www.opensource.org/licenses/lgpl-2.1.php LGPLv2 |
|
12 | + * @link http://kcfinder.sunhater.com |
|
13 | + */ |
|
14 | 14 | |
15 | 15 | class gd { |
16 | 16 | |
17 | - /** GD resource |
|
18 | - * @var resource */ |
|
17 | + /** GD resource |
|
18 | + * @var resource */ |
|
19 | 19 | protected $image; |
20 | 20 | |
21 | - /** Image width |
|
22 | - * @var integer */ |
|
21 | + /** Image width |
|
22 | + * @var integer */ |
|
23 | 23 | protected $width; |
24 | 24 | |
25 | - /** Image height |
|
26 | - * @var integer */ |
|
25 | + /** Image height |
|
26 | + * @var integer */ |
|
27 | 27 | protected $height; |
28 | 28 | |
29 | - /** Init error |
|
30 | - * @var bool */ |
|
29 | + /** Init error |
|
30 | + * @var bool */ |
|
31 | 31 | public $init_error = false; |
32 | 32 | |
33 | - /** Last builded image type constant (IMAGETYPE_XXX) |
|
34 | - * @var integer */ |
|
33 | + /** Last builded image type constant (IMAGETYPE_XXX) |
|
34 | + * @var integer */ |
|
35 | 35 | public $type; |
36 | 36 | |
37 | - /** Returns an array. Element 0 - GD resource. Element 1 - width. Element 2 - height. |
|
38 | - * Returns FALSE on failure. The only one parameter $image can be an instance of this class, |
|
39 | - * a GD resource, an array(width, height) or path to image file. |
|
40 | - * @param mixed $image |
|
41 | - * @return array */ |
|
37 | + /** Returns an array. Element 0 - GD resource. Element 1 - width. Element 2 - height. |
|
38 | + * Returns FALSE on failure. The only one parameter $image can be an instance of this class, |
|
39 | + * a GD resource, an array(width, height) or path to image file. |
|
40 | + * @param mixed $image |
|
41 | + * @return array */ |
|
42 | 42 | |
43 | 43 | protected function build_image($image) { |
44 | 44 | |
@@ -87,16 +87,16 @@ discard block |
||
87 | 87 | return $return; |
88 | 88 | } |
89 | 89 | |
90 | - /** Parameter $image can be: |
|
91 | - * 1. An instance of this class (copy instance). |
|
92 | - * 2. A GD resource. |
|
93 | - * 3. An array with two elements. First - width, second - height. Create a blank image. |
|
94 | - * 4. A filename string. Get image form file. |
|
95 | - * The non-required parameter $bigger_size is the bigger dimension (width or height) the image |
|
96 | - * will be resized to. The other dimension (height or width) will be calculated autamaticaly |
|
97 | - * @param mixed $image |
|
98 | - * @param integer $bigger_size |
|
99 | - * @return gd */ |
|
90 | + /** Parameter $image can be: |
|
91 | + * 1. An instance of this class (copy instance). |
|
92 | + * 2. A GD resource. |
|
93 | + * 3. An array with two elements. First - width, second - height. Create a blank image. |
|
94 | + * 4. A filename string. Get image form file. |
|
95 | + * The non-required parameter $bigger_size is the bigger dimension (width or height) the image |
|
96 | + * will be resized to. The other dimension (height or width) will be calculated autamaticaly |
|
97 | + * @param mixed $image |
|
98 | + * @param integer $bigger_size |
|
99 | + * @return gd */ |
|
100 | 100 | |
101 | 101 | public function __construct($image, $bigger_size=null) { |
102 | 102 | $this->image = $this->width = $this->height = null; |
@@ -123,30 +123,30 @@ discard block |
||
123 | 123 | } |
124 | 124 | } |
125 | 125 | |
126 | - /** Returns the GD resource |
|
127 | - * @return resource */ |
|
126 | + /** Returns the GD resource |
|
127 | + * @return resource */ |
|
128 | 128 | |
129 | 129 | public function get_image() { |
130 | 130 | return $this->image; |
131 | 131 | } |
132 | 132 | |
133 | - /** Returns the image width |
|
134 | - * @return integer */ |
|
133 | + /** Returns the image width |
|
134 | + * @return integer */ |
|
135 | 135 | |
136 | 136 | public function get_width() { |
137 | 137 | return $this->width; |
138 | 138 | } |
139 | 139 | |
140 | - /** Returns the image height |
|
141 | - * @return integer */ |
|
140 | + /** Returns the image height |
|
141 | + * @return integer */ |
|
142 | 142 | |
143 | 143 | public function get_height() { |
144 | 144 | return $this->height; |
145 | 145 | } |
146 | 146 | |
147 | - /** Returns calculated proportional width from the given height |
|
148 | - * @param integer $resized_height |
|
149 | - * @return integer */ |
|
147 | + /** Returns calculated proportional width from the given height |
|
148 | + * @param integer $resized_height |
|
149 | + * @return integer */ |
|
150 | 150 | |
151 | 151 | public function get_prop_width($resized_height) { |
152 | 152 | $width = intval(($this->width * $resized_height) / $this->height); |
@@ -154,9 +154,9 @@ discard block |
||
154 | 154 | return $width; |
155 | 155 | } |
156 | 156 | |
157 | - /** Returns calculated proportional height from the given width |
|
158 | - * @param integer $resized_width |
|
159 | - * @return integer */ |
|
157 | + /** Returns calculated proportional height from the given width |
|
158 | + * @param integer $resized_width |
|
159 | + * @return integer */ |
|
160 | 160 | |
161 | 161 | public function get_prop_height($resized_width) { |
162 | 162 | $height = intval(($this->height * $resized_width) / $this->width); |
@@ -164,11 +164,11 @@ discard block |
||
164 | 164 | return $height; |
165 | 165 | } |
166 | 166 | |
167 | - /** Returns an array with calculated proportional width & height. |
|
168 | - * The parameter $bigger_size is the bigger dimension (width or height) of calculated sizes. |
|
169 | - * The other dimension (height or width) will be calculated autamaticaly |
|
170 | - * @param integer $bigger_size |
|
171 | - * @return array */ |
|
167 | + /** Returns an array with calculated proportional width & height. |
|
168 | + * The parameter $bigger_size is the bigger dimension (width or height) of calculated sizes. |
|
169 | + * The other dimension (height or width) will be calculated autamaticaly |
|
170 | + * @param integer $bigger_size |
|
171 | + * @return array */ |
|
172 | 172 | |
173 | 173 | public function get_prop_size($bigger_size) { |
174 | 174 | |
@@ -186,10 +186,10 @@ discard block |
||
186 | 186 | return array($width, $height); |
187 | 187 | } |
188 | 188 | |
189 | - /** Resize image. Returns TRUE on success or FALSE on failure |
|
190 | - * @param integer $width |
|
191 | - * @param integer $height |
|
192 | - * @return bool */ |
|
189 | + /** Resize image. Returns TRUE on success or FALSE on failure |
|
190 | + * @param integer $width |
|
191 | + * @param integer $height |
|
192 | + * @return bool */ |
|
193 | 193 | |
194 | 194 | public function resize($width, $height) { |
195 | 195 | if (!$width) $width = 1; |
@@ -203,10 +203,10 @@ discard block |
||
203 | 203 | ); |
204 | 204 | } |
205 | 205 | |
206 | - /** Resize the given image source (GD, gd object or image file path) to fit in the own image. |
|
207 | - * The outside ares will be cropped out. Returns TRUE on success or FALSE on failure |
|
208 | - * @param mixed $src |
|
209 | - * @return bool */ |
|
206 | + /** Resize the given image source (GD, gd object or image file path) to fit in the own image. |
|
207 | + * The outside ares will be cropped out. Returns TRUE on success or FALSE on failure |
|
208 | + * @param mixed $src |
|
209 | + * @return bool */ |
|
210 | 210 | |
211 | 211 | public function resize_crop($src) { |
212 | 212 | $image_details = $this->build_image($src); |
@@ -233,10 +233,10 @@ discard block |
||
233 | 233 | return false; |
234 | 234 | } |
235 | 235 | |
236 | - /** Resize image to fit in given resolution. Returns TRUE on success or FALSE on failure |
|
237 | - * @param integer $width |
|
238 | - * @param integer $height |
|
239 | - * @return bool */ |
|
236 | + /** Resize image to fit in given resolution. Returns TRUE on success or FALSE on failure |
|
237 | + * @param integer $width |
|
238 | + * @param integer $height |
|
239 | + * @return bool */ |
|
240 | 240 | |
241 | 241 | public function resize_fit($width, $height) { |
242 | 242 | if ((!$width && !$height) || (($width == $this->width) && ($height == $this->height))) |
@@ -250,12 +250,12 @@ discard block |
||
250 | 250 | return $this->resize($width, $height); |
251 | 251 | } |
252 | 252 | |
253 | - /** Neka si predstavim vyobrazhaem pravoygylnik s razmeri $width i $height. |
|
254 | - * Izobrazhenieto shte se preorazmeri taka che to shte izliza ot tozi pravoygylnik, |
|
255 | - * no samo po edno (x ili y) izmerenie |
|
256 | - * @param integer $width |
|
257 | - * @param integer $height |
|
258 | - * @return bool */ |
|
253 | + /** Neka si predstavim vyobrazhaem pravoygylnik s razmeri $width i $height. |
|
254 | + * Izobrazhenieto shte se preorazmeri taka che to shte izliza ot tozi pravoygylnik, |
|
255 | + * no samo po edno (x ili y) izmerenie |
|
256 | + * @param integer $width |
|
257 | + * @param integer $height |
|
258 | + * @return bool */ |
|
259 | 259 | |
260 | 260 | public function resize_overflow($width, $height) { |
261 | 261 | |
@@ -368,30 +368,30 @@ discard block |
||
368 | 368 | |
369 | 369 | |
370 | 370 | |
371 | - /*** gif transparent fix - 1.10.2013 ***/ |
|
371 | + /*** gif transparent fix - 1.10.2013 ***/ |
|
372 | 372 | |
373 | - $transindex = imagecolortransparent($src); |
|
374 | - $palletsize = imagecolorstotal($src); |
|
375 | - if($transindex >= 0 && $transindex < $palletsize) { |
|
376 | - $transcol = imagecolorsforindex($src, $transindex); |
|
373 | + $transindex = imagecolortransparent($src); |
|
374 | + $palletsize = imagecolorstotal($src); |
|
375 | + if($transindex >= 0 && $transindex < $palletsize) { |
|
376 | + $transcol = imagecolorsforindex($src, $transindex); |
|
377 | 377 | |
378 | - /*** end gif transparent fix ***/ |
|
378 | + /*** end gif transparent fix ***/ |
|
379 | 379 | |
380 | - $transindex = imagecolorallocatealpha($this->image, $transcol['red'], $transcol['green'], $transcol['blue'], 127); |
|
381 | - imagefilledrectangle($this->image, 0, 0, $dst_w, $dst_h, $transindex); |
|
382 | - imagecopyresampled($this->image, $src, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); |
|
383 | - imagecolortransparent($this->image, $transindex); |
|
384 | - for($y=0; $y<$dst_h; ++$y) |
|
385 | - for($x=0; $x<$dst_w; ++$x) |
|
386 | - if(((imagecolorat($this->image, $x, $y)>>24) & 0x7F) >= 100) imagesetpixel($this->image, $x, $y, $transindex); |
|
387 | - imagetruecolortopalette($this->image, true, 255); |
|
388 | - } |
|
389 | - else { |
|
390 | - $transparent = imagecolorallocatealpha($this->image, 255, 255, 255, 127); |
|
391 | - imagefilledrectangle($this->image, 0, 0, $dst_w, $dst_h, $transparent); |
|
392 | - imagecopyresampled($this->image, $src, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); |
|
393 | - } |
|
394 | - return $this->image; |
|
380 | + $transindex = imagecolorallocatealpha($this->image, $transcol['red'], $transcol['green'], $transcol['blue'], 127); |
|
381 | + imagefilledrectangle($this->image, 0, 0, $dst_w, $dst_h, $transindex); |
|
382 | + imagecopyresampled($this->image, $src, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); |
|
383 | + imagecolortransparent($this->image, $transindex); |
|
384 | + for($y=0; $y<$dst_h; ++$y) |
|
385 | + for($x=0; $x<$dst_w; ++$x) |
|
386 | + if(((imagecolorat($this->image, $x, $y)>>24) & 0x7F) >= 100) imagesetpixel($this->image, $x, $y, $transindex); |
|
387 | + imagetruecolortopalette($this->image, true, 255); |
|
388 | + } |
|
389 | + else { |
|
390 | + $transparent = imagecolorallocatealpha($this->image, 255, 255, 255, 127); |
|
391 | + imagefilledrectangle($this->image, 0, 0, $dst_w, $dst_h, $transparent); |
|
392 | + imagecopyresampled($this->image, $src, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); |
|
393 | + } |
|
394 | + return $this->image; |
|
395 | 395 | |
396 | 396 | } else |
397 | 397 | return false; |
@@ -419,7 +419,7 @@ discard block |
||
419 | 419 | public function imagegif($filename=null) { |
420 | 420 | if (is_null($filename) && !headers_sent()) |
421 | 421 | header("Content-Type: image/gif"); |
422 | - @imagesavealpha($this->image, true); |
|
422 | + @imagesavealpha($this->image, true); |
|
423 | 423 | return imagegif($this->image, $filename); |
424 | 424 | } |
425 | 425 | } |
@@ -1,16 +1,16 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | |
3 | 3 | /** This file is part of KCFinder project |
4 | - * |
|
5 | - * @desc Base configuration file |
|
6 | - * @package KCFinder |
|
7 | - * @version 2.54 |
|
8 | - * @author Pavel Tzonkov <[email protected]> |
|
9 | - * @copyright 2010-2014 KCFinder Project |
|
10 | - * @license http://www.opensource.org/licenses/gpl-2.0.php GPLv2 |
|
11 | - * @license http://www.opensource.org/licenses/lgpl-2.1.php LGPLv2 |
|
12 | - * @link http://kcfinder.sunhater.com |
|
13 | - */ |
|
4 | + * |
|
5 | + * @desc Base configuration file |
|
6 | + * @package KCFinder |
|
7 | + * @version 2.54 |
|
8 | + * @author Pavel Tzonkov <[email protected]> |
|
9 | + * @copyright 2010-2014 KCFinder Project |
|
10 | + * @license http://www.opensource.org/licenses/gpl-2.0.php GPLv2 |
|
11 | + * @license http://www.opensource.org/licenses/lgpl-2.1.php LGPLv2 |
|
12 | + * @link http://kcfinder.sunhater.com |
|
13 | + */ |
|
14 | 14 | |
15 | 15 | // IMPORTANT!!! Do not remove uncommented settings in this file even if |
16 | 16 | // you are using session configuration. |
@@ -70,7 +70,7 @@ discard block |
||
70 | 70 | 'dirnameChangeChars' => array( |
71 | 71 | ' ' => "_", |
72 | 72 | ':' => "." |
73 | - ), |
|
73 | + ), |
|
74 | 74 | 'mime_magic' => "", |
75 | 75 | |
76 | 76 | 'maxImageWidth' => $modx->config['maxImageWidth'], |
@@ -13,227 +13,227 @@ |
||
13 | 13 | |
14 | 14 | class fastImage |
15 | 15 | { |
16 | - private $strpos = 0; |
|
17 | - private $str; |
|
18 | - private $uri; |
|
19 | - private $type; |
|
20 | - private $handle; |
|
16 | + private $strpos = 0; |
|
17 | + private $str; |
|
18 | + private $uri; |
|
19 | + private $type; |
|
20 | + private $handle; |
|
21 | 21 | |
22 | - public function __construct($uri = null) |
|
23 | - { |
|
24 | - if ($uri) $this->load($uri); |
|
25 | - } |
|
22 | + public function __construct($uri = null) |
|
23 | + { |
|
24 | + if ($uri) $this->load($uri); |
|
25 | + } |
|
26 | 26 | |
27 | 27 | |
28 | - public function load($uri) |
|
29 | - { |
|
30 | - if ($this->handle) $this->close(); |
|
31 | - |
|
32 | - $this->uri = $uri; |
|
33 | - $this->handle = fopen($uri, 'r'); |
|
34 | - } |
|
35 | - |
|
36 | - |
|
37 | - public function close() |
|
38 | - { |
|
39 | - if (is_resource($this->handle)) fclose($this->handle); |
|
40 | - } |
|
28 | + public function load($uri) |
|
29 | + { |
|
30 | + if ($this->handle) $this->close(); |
|
31 | + |
|
32 | + $this->uri = $uri; |
|
33 | + $this->handle = fopen($uri, 'r'); |
|
34 | + } |
|
35 | + |
|
36 | + |
|
37 | + public function close() |
|
38 | + { |
|
39 | + if (is_resource($this->handle)) fclose($this->handle); |
|
40 | + } |
|
41 | 41 | |
42 | 42 | |
43 | - public function getSize() |
|
44 | - { |
|
45 | - $this->strpos = 0; |
|
46 | - if ($this->getType()) |
|
47 | - { |
|
48 | - return array_values($this->parseSize()); |
|
49 | - } |
|
50 | - |
|
51 | - return false; |
|
52 | - } |
|
53 | - |
|
54 | - |
|
55 | - public function getType() |
|
56 | - { |
|
57 | - $this->strpos = 0; |
|
58 | - |
|
59 | - if (!$this->type) |
|
60 | - { |
|
61 | - switch ($this->getChars(2)) |
|
62 | - { |
|
63 | - case "BM": |
|
64 | - return $this->type = 'bmp'; |
|
65 | - case "GI": |
|
66 | - return $this->type = 'gif'; |
|
67 | - case chr(0xFF).chr(0xd8): |
|
68 | - return $this->type = 'jpeg'; |
|
69 | - case chr(0x89).'P': |
|
70 | - return $this->type = 'png'; |
|
71 | - default: |
|
72 | - return false; |
|
73 | - } |
|
74 | - } |
|
75 | - |
|
76 | - return $this->type; |
|
77 | - } |
|
78 | - |
|
79 | - |
|
80 | - private function parseSize() |
|
81 | - { |
|
82 | - $this->strpos = 0; |
|
83 | - |
|
84 | - switch ($this->type) |
|
85 | - { |
|
86 | - case 'png': |
|
87 | - return $this->parseSizeForPNG(); |
|
88 | - case 'gif': |
|
89 | - return $this->parseSizeForGIF(); |
|
90 | - case 'bmp': |
|
91 | - return $this->parseSizeForBMP(); |
|
92 | - case 'jpeg': |
|
93 | - return $this->parseSizeForJPEG(); |
|
94 | - } |
|
95 | - |
|
96 | - return null; |
|
97 | - } |
|
98 | - |
|
99 | - |
|
100 | - private function parseSizeForPNG() |
|
101 | - { |
|
102 | - $chars = $this->getChars(25); |
|
103 | - |
|
104 | - return unpack("N*", substr($chars, 16, 8)); |
|
105 | - } |
|
106 | - |
|
107 | - |
|
108 | - private function parseSizeForGIF() |
|
109 | - { |
|
110 | - $chars = $this->getChars(11); |
|
111 | - |
|
112 | - return unpack("S*", substr($chars, 6, 4)); |
|
113 | - } |
|
114 | - |
|
115 | - |
|
116 | - private function parseSizeForBMP() |
|
117 | - { |
|
118 | - $chars = $this->getChars(29); |
|
119 | - $chars = substr($chars, 14, 14); |
|
120 | - $type = unpack('C', $chars); |
|
121 | - |
|
122 | - return (reset($type) == 40) ? unpack('L*', substr($chars, 4)) : unpack('L*', substr($chars, 4, 8)); |
|
123 | - } |
|
124 | - |
|
125 | - |
|
126 | - private function parseSizeForJPEG() |
|
127 | - { |
|
128 | - $state = null; |
|
129 | - |
|
130 | - while (true) |
|
131 | - { |
|
132 | - switch ($state) |
|
133 | - { |
|
134 | - default: |
|
135 | - $this->getChars(2); |
|
136 | - $state = 'started'; |
|
137 | - break; |
|
138 | - |
|
139 | - case 'started': |
|
140 | - $b = $this->getByte(); |
|
141 | - if ($b === false) return false; |
|
142 | - |
|
143 | - $state = $b == 0xFF ? 'sof' : 'started'; |
|
144 | - break; |
|
145 | - |
|
146 | - case 'sof': |
|
147 | - $b = $this->getByte(); |
|
148 | - if (in_array($b, range(0xe0, 0xef))) |
|
149 | - { |
|
150 | - $state = 'skipframe'; |
|
151 | - } |
|
152 | - elseif (in_array($b, array_merge(range(0xC0,0xC3), range(0xC5,0xC7), range(0xC9,0xCB), range(0xCD,0xCF)))) |
|
153 | - { |
|
154 | - $state = 'readsize'; |
|
155 | - } |
|
156 | - elseif ($b == 0xFF) |
|
157 | - { |
|
158 | - $state = 'sof'; |
|
159 | - } |
|
160 | - else |
|
161 | - { |
|
162 | - $state = 'skipframe'; |
|
163 | - } |
|
164 | - break; |
|
165 | - |
|
166 | - case 'skipframe': |
|
167 | - $skip = $this->readInt($this->getChars(2)) - 2; |
|
168 | - $state = 'doskip'; |
|
169 | - break; |
|
170 | - |
|
171 | - case 'doskip': |
|
172 | - $this->getChars($skip); |
|
173 | - $state = 'started'; |
|
174 | - break; |
|
175 | - |
|
176 | - case 'readsize': |
|
177 | - $c = $this->getChars(7); |
|
178 | - |
|
179 | - return array($this->readInt(substr($c, 5, 2)), $this->readInt(substr($c, 3, 2))); |
|
180 | - } |
|
181 | - } |
|
182 | - } |
|
183 | - |
|
184 | - |
|
185 | - private function getChars($n) |
|
186 | - { |
|
187 | - $response = null; |
|
188 | - |
|
189 | - // do we need more data? |
|
190 | - if ($this->strpos + $n -1 >= strlen($this->str)) |
|
191 | - { |
|
192 | - $end = ($this->strpos + $n); |
|
193 | - |
|
194 | - while (strlen($this->str) < $end && $response !== false) |
|
195 | - { |
|
196 | - // read more from the file handle |
|
197 | - $need = $end - ftell($this->handle); |
|
198 | - |
|
199 | - if ($response = fread($this->handle, $need)) |
|
200 | - { |
|
201 | - $this->str .= $response; |
|
202 | - } |
|
203 | - else |
|
204 | - { |
|
205 | - return false; |
|
206 | - } |
|
207 | - } |
|
208 | - } |
|
209 | - |
|
210 | - $result = substr($this->str, $this->strpos, $n); |
|
211 | - $this->strpos += $n; |
|
212 | - |
|
213 | - // we are dealing with bytes here, so force the encoding |
|
214 | - return mb_convert_encoding($result, "8BIT"); |
|
215 | - } |
|
216 | - |
|
217 | - |
|
218 | - private function getByte() |
|
219 | - { |
|
220 | - $c = $this->getChars(1); |
|
221 | - $b = unpack("C", $c); |
|
222 | - |
|
223 | - return reset($b); |
|
224 | - } |
|
225 | - |
|
226 | - |
|
227 | - private function readInt($str) |
|
228 | - { |
|
229 | - $size = unpack("C*", $str); |
|
230 | - |
|
231 | - return ($size[1] << 8) + $size[2]; |
|
232 | - } |
|
233 | - |
|
234 | - |
|
235 | - public function __destruct() |
|
236 | - { |
|
237 | - $this->close(); |
|
238 | - } |
|
43 | + public function getSize() |
|
44 | + { |
|
45 | + $this->strpos = 0; |
|
46 | + if ($this->getType()) |
|
47 | + { |
|
48 | + return array_values($this->parseSize()); |
|
49 | + } |
|
50 | + |
|
51 | + return false; |
|
52 | + } |
|
53 | + |
|
54 | + |
|
55 | + public function getType() |
|
56 | + { |
|
57 | + $this->strpos = 0; |
|
58 | + |
|
59 | + if (!$this->type) |
|
60 | + { |
|
61 | + switch ($this->getChars(2)) |
|
62 | + { |
|
63 | + case "BM": |
|
64 | + return $this->type = 'bmp'; |
|
65 | + case "GI": |
|
66 | + return $this->type = 'gif'; |
|
67 | + case chr(0xFF).chr(0xd8): |
|
68 | + return $this->type = 'jpeg'; |
|
69 | + case chr(0x89).'P': |
|
70 | + return $this->type = 'png'; |
|
71 | + default: |
|
72 | + return false; |
|
73 | + } |
|
74 | + } |
|
75 | + |
|
76 | + return $this->type; |
|
77 | + } |
|
78 | + |
|
79 | + |
|
80 | + private function parseSize() |
|
81 | + { |
|
82 | + $this->strpos = 0; |
|
83 | + |
|
84 | + switch ($this->type) |
|
85 | + { |
|
86 | + case 'png': |
|
87 | + return $this->parseSizeForPNG(); |
|
88 | + case 'gif': |
|
89 | + return $this->parseSizeForGIF(); |
|
90 | + case 'bmp': |
|
91 | + return $this->parseSizeForBMP(); |
|
92 | + case 'jpeg': |
|
93 | + return $this->parseSizeForJPEG(); |
|
94 | + } |
|
95 | + |
|
96 | + return null; |
|
97 | + } |
|
98 | + |
|
99 | + |
|
100 | + private function parseSizeForPNG() |
|
101 | + { |
|
102 | + $chars = $this->getChars(25); |
|
103 | + |
|
104 | + return unpack("N*", substr($chars, 16, 8)); |
|
105 | + } |
|
106 | + |
|
107 | + |
|
108 | + private function parseSizeForGIF() |
|
109 | + { |
|
110 | + $chars = $this->getChars(11); |
|
111 | + |
|
112 | + return unpack("S*", substr($chars, 6, 4)); |
|
113 | + } |
|
114 | + |
|
115 | + |
|
116 | + private function parseSizeForBMP() |
|
117 | + { |
|
118 | + $chars = $this->getChars(29); |
|
119 | + $chars = substr($chars, 14, 14); |
|
120 | + $type = unpack('C', $chars); |
|
121 | + |
|
122 | + return (reset($type) == 40) ? unpack('L*', substr($chars, 4)) : unpack('L*', substr($chars, 4, 8)); |
|
123 | + } |
|
124 | + |
|
125 | + |
|
126 | + private function parseSizeForJPEG() |
|
127 | + { |
|
128 | + $state = null; |
|
129 | + |
|
130 | + while (true) |
|
131 | + { |
|
132 | + switch ($state) |
|
133 | + { |
|
134 | + default: |
|
135 | + $this->getChars(2); |
|
136 | + $state = 'started'; |
|
137 | + break; |
|
138 | + |
|
139 | + case 'started': |
|
140 | + $b = $this->getByte(); |
|
141 | + if ($b === false) return false; |
|
142 | + |
|
143 | + $state = $b == 0xFF ? 'sof' : 'started'; |
|
144 | + break; |
|
145 | + |
|
146 | + case 'sof': |
|
147 | + $b = $this->getByte(); |
|
148 | + if (in_array($b, range(0xe0, 0xef))) |
|
149 | + { |
|
150 | + $state = 'skipframe'; |
|
151 | + } |
|
152 | + elseif (in_array($b, array_merge(range(0xC0,0xC3), range(0xC5,0xC7), range(0xC9,0xCB), range(0xCD,0xCF)))) |
|
153 | + { |
|
154 | + $state = 'readsize'; |
|
155 | + } |
|
156 | + elseif ($b == 0xFF) |
|
157 | + { |
|
158 | + $state = 'sof'; |
|
159 | + } |
|
160 | + else |
|
161 | + { |
|
162 | + $state = 'skipframe'; |
|
163 | + } |
|
164 | + break; |
|
165 | + |
|
166 | + case 'skipframe': |
|
167 | + $skip = $this->readInt($this->getChars(2)) - 2; |
|
168 | + $state = 'doskip'; |
|
169 | + break; |
|
170 | + |
|
171 | + case 'doskip': |
|
172 | + $this->getChars($skip); |
|
173 | + $state = 'started'; |
|
174 | + break; |
|
175 | + |
|
176 | + case 'readsize': |
|
177 | + $c = $this->getChars(7); |
|
178 | + |
|
179 | + return array($this->readInt(substr($c, 5, 2)), $this->readInt(substr($c, 3, 2))); |
|
180 | + } |
|
181 | + } |
|
182 | + } |
|
183 | + |
|
184 | + |
|
185 | + private function getChars($n) |
|
186 | + { |
|
187 | + $response = null; |
|
188 | + |
|
189 | + // do we need more data? |
|
190 | + if ($this->strpos + $n -1 >= strlen($this->str)) |
|
191 | + { |
|
192 | + $end = ($this->strpos + $n); |
|
193 | + |
|
194 | + while (strlen($this->str) < $end && $response !== false) |
|
195 | + { |
|
196 | + // read more from the file handle |
|
197 | + $need = $end - ftell($this->handle); |
|
198 | + |
|
199 | + if ($response = fread($this->handle, $need)) |
|
200 | + { |
|
201 | + $this->str .= $response; |
|
202 | + } |
|
203 | + else |
|
204 | + { |
|
205 | + return false; |
|
206 | + } |
|
207 | + } |
|
208 | + } |
|
209 | + |
|
210 | + $result = substr($this->str, $this->strpos, $n); |
|
211 | + $this->strpos += $n; |
|
212 | + |
|
213 | + // we are dealing with bytes here, so force the encoding |
|
214 | + return mb_convert_encoding($result, "8BIT"); |
|
215 | + } |
|
216 | + |
|
217 | + |
|
218 | + private function getByte() |
|
219 | + { |
|
220 | + $c = $this->getChars(1); |
|
221 | + $b = unpack("C", $c); |
|
222 | + |
|
223 | + return reset($b); |
|
224 | + } |
|
225 | + |
|
226 | + |
|
227 | + private function readInt($str) |
|
228 | + { |
|
229 | + $size = unpack("C*", $str); |
|
230 | + |
|
231 | + return ($size[1] << 8) + $size[2]; |
|
232 | + } |
|
233 | + |
|
234 | + |
|
235 | + public function __destruct() |
|
236 | + { |
|
237 | + $this->close(); |
|
238 | + } |
|
239 | 239 | } |
@@ -98,8 +98,8 @@ discard block |
||
98 | 98 | # |
99 | 99 | if (!function_exists('xml_parser_create')) { |
100 | 100 | $this->error( "Failed to load PHP's XML Extension. " . |
101 | - "http://www.php.net/manual/en/ref.xml.php", |
|
102 | - E_USER_ERROR ); |
|
101 | + "http://www.php.net/manual/en/ref.xml.php", |
|
102 | + E_USER_ERROR ); |
|
103 | 103 | } |
104 | 104 | |
105 | 105 | list($parser, $source) = $this->create_parser($source, |
@@ -108,8 +108,8 @@ discard block |
||
108 | 108 | |
109 | 109 | if (!is_resource($parser)) { |
110 | 110 | $this->error( "Failed to create an instance of PHP's XML parser. " . |
111 | - "http://www.php.net/manual/en/ref.xml.php", |
|
112 | - E_USER_ERROR ); |
|
111 | + "http://www.php.net/manual/en/ref.xml.php", |
|
112 | + E_USER_ERROR ); |
|
113 | 113 | } |
114 | 114 | |
115 | 115 | |
@@ -445,9 +445,9 @@ discard block |
||
445 | 445 | } |
446 | 446 | |
447 | 447 | /** |
448 | - * return XML parser, and possibly re-encoded source |
|
449 | - * |
|
450 | - */ |
|
448 | + * return XML parser, and possibly re-encoded source |
|
449 | + * |
|
450 | + */ |
|
451 | 451 | function create_parser($source, $out_enc, $in_enc, $detect) { |
452 | 452 | if ( substr(phpversion(),0,1) == 5) { |
453 | 453 | $parser = $this->php5_create_parser($in_enc, $detect); |
@@ -464,14 +464,14 @@ discard block |
||
464 | 464 | } |
465 | 465 | |
466 | 466 | /** |
467 | - * Instantiate an XML parser under PHP5 |
|
468 | - * |
|
469 | - * PHP5 will do a fine job of detecting input encoding |
|
470 | - * if passed an empty string as the encoding. |
|
471 | - * |
|
472 | - * All hail libxml2! |
|
473 | - * |
|
474 | - */ |
|
467 | + * Instantiate an XML parser under PHP5 |
|
468 | + * |
|
469 | + * PHP5 will do a fine job of detecting input encoding |
|
470 | + * if passed an empty string as the encoding. |
|
471 | + * |
|
472 | + * All hail libxml2! |
|
473 | + * |
|
474 | + */ |
|
475 | 475 | function php5_create_parser($in_enc, $detect) { |
476 | 476 | // by default php5 does a fine job of detecting input encodings |
477 | 477 | if(!$detect && $in_enc) { |
@@ -483,20 +483,20 @@ discard block |
||
483 | 483 | } |
484 | 484 | |
485 | 485 | /** |
486 | - * Instaniate an XML parser under PHP4 |
|
487 | - * |
|
488 | - * Unfortunately PHP4's support for character encodings |
|
489 | - * and especially XML and character encodings sucks. As |
|
490 | - * long as the documents you parse only contain characters |
|
491 | - * from the ISO-8859-1 character set (a superset of ASCII, |
|
492 | - * and a subset of UTF-8) you're fine. However once you |
|
493 | - * step out of that comfy little world things get mad, bad, |
|
494 | - * and dangerous to know. |
|
495 | - * |
|
496 | - * The following code is based on SJM's work with FoF |
|
497 | - * @see http://minutillo.com/steve/weblog/2004/6/17/php-xml-and-character-encodings-a-tale-of-sadness-rage-and-data-loss |
|
498 | - * |
|
499 | - */ |
|
486 | + * Instaniate an XML parser under PHP4 |
|
487 | + * |
|
488 | + * Unfortunately PHP4's support for character encodings |
|
489 | + * and especially XML and character encodings sucks. As |
|
490 | + * long as the documents you parse only contain characters |
|
491 | + * from the ISO-8859-1 character set (a superset of ASCII, |
|
492 | + * and a subset of UTF-8) you're fine. However once you |
|
493 | + * step out of that comfy little world things get mad, bad, |
|
494 | + * and dangerous to know. |
|
495 | + * |
|
496 | + * The following code is based on SJM's work with FoF |
|
497 | + * @see http://minutillo.com/steve/weblog/2004/6/17/php-xml-and-character-encodings-a-tale-of-sadness-rage-and-data-loss |
|
498 | + * |
|
499 | + */ |
|
500 | 500 | function php4_create_parser($source, $in_enc, $detect) { |
501 | 501 | if ( !$detect ) { |
502 | 502 | return array(xml_parser_create($in_enc), $source); |
@@ -540,8 +540,8 @@ discard block |
||
540 | 540 | |
541 | 541 | // else |
542 | 542 | $this->error("Feed is in an unsupported character encoding. ($in_enc) " . |
543 | - "You may see strange artifacts, and mangled characters.", |
|
544 | - E_USER_NOTICE); |
|
543 | + "You may see strange artifacts, and mangled characters.", |
|
544 | + E_USER_NOTICE); |
|
545 | 545 | |
546 | 546 | return array(xml_parser_create(), $source); |
547 | 547 | } |
@@ -587,26 +587,26 @@ discard block |
||
587 | 587 | // courtesy, Ryan Currie, [email protected] |
588 | 588 | |
589 | 589 | if (!function_exists('array_change_key_case')) { |
590 | - define('CASE_UPPER', 1); |
|
591 | - define('CASE_LOWER', 0); |
|
590 | + define('CASE_UPPER', 1); |
|
591 | + define('CASE_LOWER', 0); |
|
592 | 592 | |
593 | 593 | |
594 | - function array_change_key_case($array, $case=CASE_LOWER) { |
|
594 | + function array_change_key_case($array, $case=CASE_LOWER) { |
|
595 | 595 | $output = array(); |
596 | 596 | switch($case){ |
597 | - case CASE_LOWER: |
|
597 | + case CASE_LOWER: |
|
598 | 598 | $cmd='strtolower'; |
599 | - break; |
|
600 | - case CASE_UPPER: |
|
599 | + break; |
|
600 | + case CASE_UPPER: |
|
601 | 601 | $cmd='strtoupper'; |
602 | - break; |
|
603 | - default: |
|
602 | + break; |
|
603 | + default: |
|
604 | 604 | $cmd = ''; |
605 | 605 | } |
606 | 606 | foreach($array as $key=>$value) { |
607 | 607 | $output[empty($cmd) ? $key : $cmd($key)] = $value; |
608 | 608 | } |
609 | 609 | return $output; |
610 | - } |
|
610 | + } |
|
611 | 611 | |
612 | 612 | } |
@@ -1,6 +1,6 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | if( ! defined('IN_MANAGER_MODE') || IN_MANAGER_MODE !== true) { |
3 | - die("<b>INCLUDE_ORDERING_ERROR</b><br /><br />Please use the EVO Content Manager instead of accessing this file directly."); |
|
3 | + die("<b>INCLUDE_ORDERING_ERROR</b><br /><br />Please use the EVO Content Manager instead of accessing this file directly."); |
|
4 | 4 | } |
5 | 5 | |
6 | 6 | // (un)publishing of documents, version 2! |
@@ -32,9 +32,9 @@ discard block |
||
32 | 32 | <?php if($num_rows_pub) printf('<p>' . $_lang["refresh_published"] . '</p>', $num_rows_pub) ?> |
33 | 33 | <?php if($num_rows_unpub) printf('<p>' . $_lang["refresh_unpublished"] . '</p>', $num_rows_unpub) ?> |
34 | 34 | <?php |
35 | - $modx->clearCache('full', true); |
|
36 | - // invoke OnSiteRefresh event |
|
37 | - $modx->invokeEvent("OnSiteRefresh"); |
|
38 | - ?> |
|
35 | + $modx->clearCache('full', true); |
|
36 | + // invoke OnSiteRefresh event |
|
37 | + $modx->invokeEvent("OnSiteRefresh"); |
|
38 | + ?> |
|
39 | 39 | </div> |
40 | 40 | </div> |
@@ -1,6 +1,6 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | if( ! defined('IN_MANAGER_MODE') || IN_MANAGER_MODE !== true) { |
3 | - die("<b>INCLUDE_ORDERING_ERROR</b><br /><br />Please use the EVO Content Manager instead of accessing this file directly."); |
|
3 | + die("<b>INCLUDE_ORDERING_ERROR</b><br /><br />Please use the EVO Content Manager instead of accessing this file directly."); |
|
4 | 4 | } |
5 | 5 | $helpBasePath = "actions/help/"; |
6 | 6 | ?> |
@@ -16,36 +16,36 @@ discard block |
||
16 | 16 | </script> |
17 | 17 | |
18 | 18 | <?php |
19 | - if($handle = opendir('actions/help')) { |
|
20 | - while(false !== ($file = readdir($handle))) { |
|
21 | - if($file != "." && $file != ".." && $file != ".svn" && $file != 'index.html' && !is_dir($helpBasePath . $file)) { |
|
22 | - $help[] = $file; |
|
23 | - } |
|
24 | - } |
|
25 | - closedir($handle); |
|
26 | - } |
|
27 | - |
|
28 | - natcasesort($help); |
|
29 | - |
|
30 | - foreach($help as $k => $v) { |
|
31 | - |
|
32 | - $helpname = substr($v, 0, strrpos($v, '.')); |
|
33 | - |
|
34 | - $prefix = substr($helpname, 0, 2); |
|
35 | - if(is_numeric($prefix)) { |
|
36 | - $helpname = substr($helpname, 2, strlen($helpname) - 1); |
|
37 | - } |
|
38 | - |
|
39 | - $hnLower = strtolower($helpname); |
|
40 | - $helpname = isset($_lang[$hnLower]) ? $_lang[$hnLower] : str_replace('_', ' ', $helpname); |
|
41 | - |
|
42 | - echo '<div class="tab-page" id="tab' . $k . 'Help">'; |
|
43 | - echo '<h2 class="tab">' . $helpname . '</h2>'; |
|
44 | - echo '<script type="text/javascript">tp.addTabPage( document.getElementById( "tab' . $k . 'Help" ) );</script>'; |
|
45 | - include_once($helpBasePath . "{$v}"); |
|
46 | - echo '</div>'; |
|
47 | - } |
|
48 | - ?> |
|
19 | + if($handle = opendir('actions/help')) { |
|
20 | + while(false !== ($file = readdir($handle))) { |
|
21 | + if($file != "." && $file != ".." && $file != ".svn" && $file != 'index.html' && !is_dir($helpBasePath . $file)) { |
|
22 | + $help[] = $file; |
|
23 | + } |
|
24 | + } |
|
25 | + closedir($handle); |
|
26 | + } |
|
27 | + |
|
28 | + natcasesort($help); |
|
29 | + |
|
30 | + foreach($help as $k => $v) { |
|
31 | + |
|
32 | + $helpname = substr($v, 0, strrpos($v, '.')); |
|
33 | + |
|
34 | + $prefix = substr($helpname, 0, 2); |
|
35 | + if(is_numeric($prefix)) { |
|
36 | + $helpname = substr($helpname, 2, strlen($helpname) - 1); |
|
37 | + } |
|
38 | + |
|
39 | + $hnLower = strtolower($helpname); |
|
40 | + $helpname = isset($_lang[$hnLower]) ? $_lang[$hnLower] : str_replace('_', ' ', $helpname); |
|
41 | + |
|
42 | + echo '<div class="tab-page" id="tab' . $k . 'Help">'; |
|
43 | + echo '<h2 class="tab">' . $helpname . '</h2>'; |
|
44 | + echo '<script type="text/javascript">tp.addTabPage( document.getElementById( "tab' . $k . 'Help" ) );</script>'; |
|
45 | + include_once($helpBasePath . "{$v}"); |
|
46 | + echo '</div>'; |
|
47 | + } |
|
48 | + ?> |
|
49 | 49 | </div> |
50 | 50 | </div> |
51 | 51 | <script> |
@@ -1,9 +1,9 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | if( ! defined('IN_MANAGER_MODE') || IN_MANAGER_MODE !== true) { |
3 | - die("<b>INCLUDE_ORDERING_ERROR</b><br /><br />Please use the EVO Content Manager instead of accessing this file directly."); |
|
3 | + die("<b>INCLUDE_ORDERING_ERROR</b><br /><br />Please use the EVO Content Manager instead of accessing this file directly."); |
|
4 | 4 | } |
5 | 5 | if(!$modx->hasPermission('export_static')) { |
6 | - $modx->webAlertAndQuit($_lang["error_no_privileges"]); |
|
6 | + $modx->webAlertAndQuit($_lang["error_no_privileges"]); |
|
7 | 7 | } |
8 | 8 | |
9 | 9 | // figure out the base of the server, so we know where to get the documents in order to export them |
@@ -35,11 +35,11 @@ discard block |
||
35 | 35 | |
36 | 36 | <div class="container container-body"> |
37 | 37 | <?php |
38 | - if(isset($_POST['export'])) { |
|
39 | - $rs = include_once(MODX_MANAGER_PATH . 'processors/export_site.processor.php'); |
|
40 | - echo $rs; |
|
41 | - } else { |
|
42 | - ?> |
|
38 | + if(isset($_POST['export'])) { |
|
39 | + $rs = include_once(MODX_MANAGER_PATH . 'processors/export_site.processor.php'); |
|
40 | + echo $rs; |
|
41 | + } else { |
|
42 | + ?> |
|
43 | 43 | <form action="index.php" method="post" name="exportFrm"> |
44 | 44 | <input type="hidden" name="export" value="export" /> |
45 | 45 | <input type="hidden" name="a" value="83" /> |
@@ -81,8 +81,8 @@ discard block |
||
81 | 81 | </script> |
82 | 82 | </form> |
83 | 83 | <?php |
84 | - } |
|
85 | - ?> |
|
84 | + } |
|
85 | + ?> |
|
86 | 86 | </div> |
87 | 87 | </div> |
88 | 88 |
@@ -7,8 +7,8 @@ |
||
7 | 7 | <div class="sectionHeader">Changelog</div> |
8 | 8 | <div class="sectionBody"> |
9 | 9 | <?php |
10 | - $changeLog = MODX_BASE_PATH . 'assets/docs/changelog.txt'; |
|
11 | - if(is_readable($changeLog)) |
|
12 | - echo str_replace("\n",'<br>',file_get_contents($changeLog)); |
|
10 | + $changeLog = MODX_BASE_PATH . 'assets/docs/changelog.txt'; |
|
11 | + if(is_readable($changeLog)) |
|
12 | + echo str_replace("\n",'<br>',file_get_contents($changeLog)); |
|
13 | 13 | ?> |
14 | 14 | </div> |