+ if ($this->conf->get('thumbnails.mode') === self::MODE_COMMON
+ && ! $this->isCommonMediaOrImage($url)
+ ) {
+ return false;
+ }
+
+ 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;
+ }
+
+ /**
+ * We check weather the given URL is from a common media domain,
+ * or if the file extension is an image.
+ *
+ * @param string $url to check
+ *
+ * @return bool true if it's an image or from a common media domain, false otherwise.
+ */
+ public function isCommonMediaOrImage($url)
+ {
+ foreach (self::COMMON_MEDIA_DOMAINS as $domain) {
+ if (strpos($url, $domain) !== false) {
+ return true;
+ }
+ }
+
+ if (endsWith($url, '.jpg') || endsWith($url, '.png') || endsWith($url, '.jpeg')) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Make sure that requirements are match to use thumbnails:
+ * - php-gd is loaded
+ */
+ protected function checkRequirements()
+ {
+ return extension_loaded('gd');