Applied patch #411
[elgg.git] / lib / iconslib.php
blobfefe44b47ba9885566b32a42a163127eb75de2c0
1 <?php
2 //
3 // icon functions - just phpthumb handlers for now
4 //
6 require_once($CFG->dirroot . 'lib/filelib.php');
7 require_once($CFG->dirroot . 'lib/phpthumb/phpthumb.class.php');
8 require_once($CFG->dirroot . 'lib/phpthumb/phpThumb.config.php');
11 // a cut-down functionised version of the standard phpThumb.php
12 // outputs an image to the browser and exits
13 function spit_phpthumb_image($filepath, $configarray = array()) {
15 // set up class
16 global $CFG, $PHPTHUMB_CONFIG;
17 $phpThumb = new phpThumb();
19 // import default config
20 if (!empty($PHPTHUMB_CONFIG)) {
21 foreach ($PHPTHUMB_CONFIG as $key => $value) {
22 $keyname = 'config_'.$key;
23 $phpThumb->setParameter($keyname, $value);
27 // import passed params
28 if (!empty($configarray)) {
29 foreach ($configarray as $key => $value) {
30 $keyname = $key;
31 $phpThumb->setParameter($keyname, $value);
35 $phpThumb->setSourceFilename($filepath);
37 if (!is_file($phpThumb->sourceFilename) && !phpthumb_functions::gd_version()) {
38 if (!headers_sent()) {
39 // base64-encoded error image in GIF format
40 $ERROR_NOGD = 'R0lGODlhIAAgALMAAAAAABQUFCQkJDY2NkZGRldXV2ZmZnJycoaGhpSUlKWlpbe3t8XFxdXV1eTk5P7+/iwAAAAAIAAgAAAE/vDJSau9WILtTAACUinDNijZtAHfCojS4W5H+qxD8xibIDE9h0OwWaRWDIljJSkUJYsN4bihMB8th3IToAKs1VtYM75cyV8sZ8vygtOE5yMKmGbO4jRdICQCjHdlZzwzNW4qZSQmKDaNjhUMBX4BBAlmMywFSRWEmAI6b5gAlhNxokGhooAIK5o/pi9vEw4Lfj4OLTAUpj6IabMtCwlSFw0DCKBoFqwAB04AjI54PyZ+yY3TD0ss2YcVmN/gvpcu4TOyFivWqYJlbAHPpOntvxNAACcmGHjZzAZqzSzcq5fNjxFmAFw9iFRunD1epU6tsIPmFCAJnWYE0FURk7wJDA0MTKpEzoWAAskiAAA7';
41 header('Content-Type: image/gif');
42 echo base64_decode($ERROR_NOGD);
43 } else {
44 echo '*** ERROR: No PHP-GD support available ***';
46 exit;
49 $phpThumb->SetCacheFilename();
51 if (!file_exists($phpThumb->cache_filename) && is_writable(dirname($phpThumb->cache_filename))) {
52 // error_log("generating to cache: " . $phpThumb->cache_filename);
53 $phpThumb->CleanUpCacheDirectory();
54 $phpThumb->GenerateThumbnail();
55 $phpThumb->RenderToFile($phpThumb->cache_filename);
58 if (is_file($phpThumb->cache_filename)) {
59 // error_log("sending from cache: " . $phpThumb->cache_filename);
60 if ($getimagesize = @GetImageSize($phpThumb->cache_filename)) {
61 $mimetype = phpthumb_functions::ImageTypeToMIMEtype($getimagesize[2]);
63 spitfile_with_mtime_check ($phpThumb->cache_filename, $mimetype);
64 } else {
65 // error_log("phpthumb cache file doesn't exist: " . $phpThumb->cache_filename);
66 $phpThumb->GenerateThumbnail();
67 $phpThumb->OutputThumbnail();
68 exit;