X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=application%2FThumbnailer.php;h=d2284e795eb3b43261cfc4577832e610a390b036;hb=787faa42f3a2bcbf83a7853f23f3667a6febf9da;hp=b669adaedef74afcbca8d80219901b91f8a12b7c;hpb=1b93137e16694f52952c930848e1a7928e8a00a6;p=github%2Fshaarli%2FShaarli.git diff --git a/application/Thumbnailer.php b/application/Thumbnailer.php index b669adae..d2284e79 100644 --- a/application/Thumbnailer.php +++ b/application/Thumbnailer.php @@ -1,6 +1,11 @@ conf = $conf; + + if (! $this->checkRequirements()) { + $this->conf->set('thumbnails.enabled', false); + $this->conf->write(true); + // TODO: create a proper error handling system able to catch exceptions... + die(t('php-gd extension must be loaded to use thumbnails. Thumbnails are now disabled. Please reload the page.')); + } + $this->wt = new WebThumbnailer(); - \WebThumbnailer\Application\ConfigManager::addFile('inc/web-thumbnailer.json'); + WTConfigManager::addFile('inc/web-thumbnailer.json'); $this->wt->maxWidth($this->conf->get('thumbnails.width')) ->maxHeight($this->conf->get('thumbnails.height')) ->crop(true) @@ -44,6 +57,21 @@ class Thumbnailer */ public function get($url) { - return $this->wt->thumbnail($url); + try { + return $this->wt->thumbnail($url); + } catch (WebThumbnailerException $e) { + // Exceptions are only thrown in debug mode. + error_log(get_class($e) .': '. $e->getMessage()); + return false; + } + } + + /** + * Make sure that requirements are match to use thumbnails: + * - php-gd is loaded + */ + protected function checkRequirements() + { + return extension_loaded('gd'); } }