diff --git a/application/Thumbnailer.php b/application/Thumbnailer.php index 9cf5dac..d2284e7 100644 --- a/application/Thumbnailer.php +++ b/application/Thumbnailer.php @@ -32,6 +32,14 @@ class Thumbnailer public function __construct($conf) { $this->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(); WTConfigManager::addFile('inc/web-thumbnailer.json'); $this->wt->maxWidth($this->conf->get('thumbnails.width')) @@ -57,4 +65,13 @@ class Thumbnailer return false; } } + + /** + * Make sure that requirements are match to use thumbnails: + * - php-gd is loaded + */ + protected function checkRequirements() + { + return extension_loaded('gd'); + } } diff --git a/composer.json b/composer.json index bdf52fc..99ef0b5 100644 --- a/composer.json +++ b/composer.json @@ -19,7 +19,7 @@ "shaarli/netscape-bookmark-parser": "^2.0", "erusev/parsedown": "^1.6", "slim/slim": "^3.0", - "arthurhoaro/web-thumbnailer": "^1.0", + "arthurhoaro/web-thumbnailer": "^1.1", "pubsubhubbub/publisher": "dev-master", "gettext/gettext": "^4.4" }, diff --git a/composer.lock b/composer.lock index 3f9ef7e..f97a688 100644 --- a/composer.lock +++ b/composer.lock @@ -1,30 +1,35 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "efa8b74ec9a15bb8c18e4a36fd13d480", + "content-hash": "da7a0c081b61d949154c5d2e5370cbab", "packages": [ { "name": "arthurhoaro/web-thumbnailer", - "version": "v1.0.1", + "version": "v1.1.2", "source": { "type": "git", "url": "https://github.com/ArthurHoaro/web-thumbnailer.git", - "reference": "10e2919c2aa0bf55f4593c8b05508a98c79d6706" + "reference": "21cf6493014cb0949a7485bfc170763d964aefd4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ArthurHoaro/web-thumbnailer/zipball/10e2919c2aa0bf55f4593c8b05508a98c79d6706", - "reference": "10e2919c2aa0bf55f4593c8b05508a98c79d6706", + "url": "https://api.github.com/repos/ArthurHoaro/web-thumbnailer/zipball/21cf6493014cb0949a7485bfc170763d964aefd4", + "reference": "21cf6493014cb0949a7485bfc170763d964aefd4", "shasum": "" }, "require": { "php": ">=5.6" }, + "conflict": { + "phpunit/php-timer": ">=2" + }, "require-dev": { - "phpunit/phpunit": "5.2.*" + "php-coveralls/php-coveralls": "^2.0", + "phpunit/phpunit": "5.2.*", + "squizlabs/php_codesniffer": "^3.2" }, "type": "library", "autoload": { @@ -45,7 +50,8 @@ "homepage": "http://hoa.ro" } ], - "time": "2017-11-11T15:39:49+00:00" + "description": "PHP library which will retrieve a thumbnail for any given URL", + "time": "2018-05-05T10:32:59+00:00" }, { "name": "container-interop/container-interop", @@ -126,16 +132,16 @@ }, { "name": "gettext/gettext", - "version": "v4.4.4", + "version": "v4.5.0", "source": { "type": "git", "url": "https://github.com/oscarotero/Gettext.git", - "reference": "ab5e863de2f60806d02e6e6081e21efd45249168" + "reference": "81c05cb213e8e4828db7aabd9dd363367ebca9f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/oscarotero/Gettext/zipball/ab5e863de2f60806d02e6e6081e21efd45249168", - "reference": "ab5e863de2f60806d02e6e6081e21efd45249168", + "url": "https://api.github.com/repos/oscarotero/Gettext/zipball/81c05cb213e8e4828db7aabd9dd363367ebca9f2", + "reference": "81c05cb213e8e4828db7aabd9dd363367ebca9f2", "shasum": "" }, "require": { @@ -184,7 +190,7 @@ "po", "translation" ], - "time": "2018-02-21T18:49:59+00:00" + "time": "2018-04-23T17:22:10+00:00" }, { "name": "gettext/languages", @@ -639,16 +645,16 @@ }, { "name": "slim/slim", - "version": "3.9.2", + "version": "3.10.0", "source": { "type": "git", "url": "https://github.com/slimphp/Slim.git", - "reference": "4086d0106cf5a7135c69fce4161fe355a8feb118" + "reference": "d8aabeacc3688b25e2f2dd2db91df91ec6fdd748" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/slimphp/Slim/zipball/4086d0106cf5a7135c69fce4161fe355a8feb118", - "reference": "4086d0106cf5a7135c69fce4161fe355a8feb118", + "url": "https://api.github.com/repos/slimphp/Slim/zipball/d8aabeacc3688b25e2f2dd2db91df91ec6fdd748", + "reference": "d8aabeacc3688b25e2f2dd2db91df91ec6fdd748", "shasum": "" }, "require": { @@ -706,7 +712,7 @@ "micro", "router" ], - "time": "2017-11-26T19:13:09+00:00" + "time": "2018-04-19T19:29:08+00:00" } ], "packages-dev": [ @@ -1063,23 +1069,23 @@ }, { "name": "phpspec/prophecy", - "version": "1.7.5", + "version": "1.7.6", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401" + "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/dfd6be44111a7c41c2e884a336cc4f461b3b2401", - "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/33a7e3c4fda54e912ff6338c48823bd5c0f0b712", + "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0", + "sebastian/comparator": "^1.1|^2.0|^3.0", "sebastian/recursion-context": "^1.0|^2.0|^3.0" }, "require-dev": { @@ -1122,7 +1128,7 @@ "spy", "stub" ], - "time": "2018-02-19T10:16:54+00:00" + "time": "2018-04-18T13:57:24+00:00" }, { "name": "phpunit/php-code-coverage", @@ -2248,16 +2254,16 @@ }, { "name": "symfony/config", - "version": "v3.4.6", + "version": "v3.4.9", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "05e10567b529476a006b00746c5f538f1636810e" + "reference": "7c2a9d44f4433863e9bca682e7f03609234657f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/05e10567b529476a006b00746c5f538f1636810e", - "reference": "05e10567b529476a006b00746c5f538f1636810e", + "url": "https://api.github.com/repos/symfony/config/zipball/7c2a9d44f4433863e9bca682e7f03609234657f9", + "reference": "7c2a9d44f4433863e9bca682e7f03609234657f9", "shasum": "" }, "require": { @@ -2307,20 +2313,20 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2018-02-14T10:03:57+00:00" + "time": "2018-03-19T22:32:39+00:00" }, { "name": "symfony/console", - "version": "v3.4.6", + "version": "v3.4.9", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "067339e9b8ec30d5f19f5950208893ff026b94f7" + "reference": "5b1fdfa8eb93464bcc36c34da39cedffef822cdf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/067339e9b8ec30d5f19f5950208893ff026b94f7", - "reference": "067339e9b8ec30d5f19f5950208893ff026b94f7", + "url": "https://api.github.com/repos/symfony/console/zipball/5b1fdfa8eb93464bcc36c34da39cedffef822cdf", + "reference": "5b1fdfa8eb93464bcc36c34da39cedffef822cdf", "shasum": "" }, "require": { @@ -2341,7 +2347,7 @@ "symfony/process": "~3.3|~4.0" }, "suggest": { - "psr/log": "For using the console logger", + "psr/log-implementation": "For using the console logger", "symfony/event-dispatcher": "", "symfony/lock": "", "symfony/process": "" @@ -2376,20 +2382,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2018-02-26T15:46:28+00:00" + "time": "2018-04-30T01:22:56+00:00" }, { "name": "symfony/debug", - "version": "v3.4.6", + "version": "v3.4.9", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "9b1071f86e79e1999b3d3675d2e0e7684268b9bc" + "reference": "1b95888cfd996484527cb41e8952d9a5eaf7454f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/9b1071f86e79e1999b3d3675d2e0e7684268b9bc", - "reference": "9b1071f86e79e1999b3d3675d2e0e7684268b9bc", + "url": "https://api.github.com/repos/symfony/debug/zipball/1b95888cfd996484527cb41e8952d9a5eaf7454f", + "reference": "1b95888cfd996484527cb41e8952d9a5eaf7454f", "shasum": "" }, "require": { @@ -2432,20 +2438,20 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2018-02-28T21:49:22+00:00" + "time": "2018-04-30T16:53:52+00:00" }, { "name": "symfony/dependency-injection", - "version": "v3.4.6", + "version": "v3.4.9", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "12e901abc1cb0d637a0e5abe9923471361d96b07" + "reference": "54ff9d78b56429f9a1ac12e60bfb6d169c0468e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/12e901abc1cb0d637a0e5abe9923471361d96b07", - "reference": "12e901abc1cb0d637a0e5abe9923471361d96b07", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/54ff9d78b56429f9a1ac12e60bfb6d169c0468e3", + "reference": "54ff9d78b56429f9a1ac12e60bfb6d169c0468e3", "shasum": "" }, "require": { @@ -2503,11 +2509,11 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2018-03-04T03:54:53+00:00" + "time": "2018-04-29T14:04:08+00:00" }, { "name": "symfony/filesystem", - "version": "v3.4.6", + "version": "v3.4.9", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", @@ -2556,16 +2562,16 @@ }, { "name": "symfony/finder", - "version": "v3.4.6", + "version": "v3.4.9", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "a479817ce0a9e4adfd7d39c6407c95d97c254625" + "reference": "bd14efe8b1fabc4de82bf50dce62f05f9a102433" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/a479817ce0a9e4adfd7d39c6407c95d97c254625", - "reference": "a479817ce0a9e4adfd7d39c6407c95d97c254625", + "url": "https://api.github.com/repos/symfony/finder/zipball/bd14efe8b1fabc4de82bf50dce62f05f9a102433", + "reference": "bd14efe8b1fabc4de82bf50dce62f05f9a102433", "shasum": "" }, "require": { @@ -2601,20 +2607,20 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2018-03-05T18:28:11+00:00" + "time": "2018-04-04T05:07:11+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.7.0", + "version": "v1.8.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b" + "reference": "3296adf6a6454a050679cde90f95350ad604b171" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b", - "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/3296adf6a6454a050679cde90f95350ad604b171", + "reference": "3296adf6a6454a050679cde90f95350ad604b171", "shasum": "" }, "require": { @@ -2626,7 +2632,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7-dev" + "dev-master": "1.8-dev" } }, "autoload": { @@ -2660,20 +2666,20 @@ "portable", "shim" ], - "time": "2018-01-30T19:27:44+00:00" + "time": "2018-04-26T10:06:28+00:00" }, { "name": "symfony/yaml", - "version": "v3.4.6", + "version": "v3.4.9", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "6af42631dcf89e9c616242c900d6c52bd53bd1bb" + "reference": "033cfa61ef06ee0847e056e530201842b6e926c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/6af42631dcf89e9c616242c900d6c52bd53bd1bb", - "reference": "6af42631dcf89e9c616242c900d6c52bd53bd1bb", + "url": "https://api.github.com/repos/symfony/yaml/zipball/033cfa61ef06ee0847e056e530201842b6e926c3", + "reference": "033cfa61ef06ee0847e056e530201842b6e926c3", "shasum": "" }, "require": { @@ -2718,7 +2724,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2018-02-16T09:50:28+00:00" + "time": "2018-04-08T08:21:29+00:00" }, { "name": "theseer/fdomdocument", diff --git a/doc/md/Server-configuration.md b/doc/md/Server-configuration.md index ca82b2e..e281dc8 100644 --- a/doc/md/Server-configuration.md +++ b/doc/md/Server-configuration.md @@ -29,7 +29,7 @@ Extension | Required? | Usage ---|:---:|--- [`openssl`](http://php.net/manual/en/book.openssl.php) | All | OpenSSL, HTTPS [`php-mbstring`](http://php.net/manual/en/book.mbstring.php) | CentOS, Fedora, RHEL, Windows, some hosting providers | multibyte (Unicode) string support -[`php-gd`](http://php.net/manual/en/book.image.php) | optional | thumbnail resizing +[`php-gd`](http://php.net/manual/en/book.image.php) | optional | required to use thumbnails [`php-intl`](http://php.net/manual/en/book.intl.php) | optional | localized text sorting (e.g. `e->è->f`) [`php-curl`](http://php.net/manual/en/book.curl.php) | optional | using cURL for fetching webpages and thumbnails in a more robust way [`php-gettext`](http://php.net/manual/en/book.gettext.php) | optional | Use the translation system in gettext mode (faster) diff --git a/inc/languages/fr/LC_MESSAGES/shaarli.po b/inc/languages/fr/LC_MESSAGES/shaarli.po index 15c8b2b..f518947 100644 --- a/inc/languages/fr/LC_MESSAGES/shaarli.po +++ b/inc/languages/fr/LC_MESSAGES/shaarli.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: Shaarli\n" -"POT-Creation-Date: 2018-05-05 12:47+0200\n" -"PO-Revision-Date: 2018-05-05 12:47+0200\n" +"POT-Creation-Date: 2018-05-05 12:48+0200\n" +"PO-Revision-Date: 2018-05-05 12:49+0200\n" "Last-Translator: \n" "Language-Team: Shaarli\n" "Language: fr_FR\n" @@ -180,6 +180,14 @@ msgstr "404 Introuvable" msgid "Plugin \"%s\" files not found." msgstr "Les fichiers de l'extension \"%s\" sont introuvables." +#: application/Thumbnailer.php:40 +msgid "" +"php-gd extension must be loaded to use thumbnails. Thumbnails are now " +"disabled. Please reload the page." +msgstr "" +"php-gd extension must be loaded to use thumbnails. Thumbnails are now " +"disabled. Please reload the page." + #: application/Updater.php:76 msgid "Couldn't retrieve Updater class methods." msgstr "Impossible de récupérer les méthodes de la classe Updater." @@ -311,7 +319,7 @@ msgid "You are not supposed to change a password on an Open Shaarli." msgstr "" "Vous n'êtes pas censé modifier le mot de passe d'un Shaarli en mode ouvert." -#: index.php:1070 index.php:1112 index.php:1189 index.php:1220 index.php:1325 +#: index.php:1070 index.php:1112 index.php:1190 index.php:1221 index.php:1326 msgid "Wrong token." msgstr "Jeton invalide." @@ -333,56 +341,56 @@ msgstr "Modification du mot de passe" msgid "Configuration was saved." msgstr "La configuration a été sauvegardé." -#: index.php:1172 tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:24 +#: index.php:1173 tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:24 msgid "Configure" msgstr "Configurer" -#: index.php:1183 tmp/changetag.b91ef64efc3688266305ea9b42e5017e.rtpl.php:13 +#: index.php:1184 tmp/changetag.b91ef64efc3688266305ea9b42e5017e.rtpl.php:13 #: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36 msgid "Manage tags" msgstr "Gérer les tags" -#: index.php:1201 +#: index.php:1202 #, php-format msgid "The tag was removed from %d link." msgid_plural "The tag was removed from %d links." msgstr[0] "Le tag a été supprimé de %d lien." msgstr[1] "Le tag a été supprimé de %d liens." -#: index.php:1202 +#: index.php:1203 #, php-format msgid "The tag was renamed in %d link." msgid_plural "The tag was renamed in %d links." msgstr[0] "Le tag a été renommé dans %d lien." msgstr[1] "Le tag a été renommé dans %d liens." -#: index.php:1210 tmp/addlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:13 +#: index.php:1211 tmp/addlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:13 msgid "Shaare a new link" msgstr "Partager un nouveau lien" -#: index.php:1385 tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:169 +#: index.php:1386 tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:169 msgid "Edit" msgstr "Modifier" -#: index.php:1385 index.php:1455 +#: index.php:1386 index.php:1456 #: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:26 #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:26 msgid "Shaare" msgstr "Shaare" -#: index.php:1424 +#: index.php:1425 msgid "Note: " msgstr "Note : " -#: index.php:1464 tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:65 +#: index.php:1465 tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:65 msgid "Export" msgstr "Exporter" -#: index.php:1526 tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:83 +#: index.php:1527 tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:83 msgid "Import" msgstr "Importer" -#: index.php:1536 +#: index.php:1537 #, php-format msgid "" "The file you are trying to upload is probably bigger than what this " @@ -392,16 +400,16 @@ msgstr "" "le serveur web peut accepter (%s). Merci de l'envoyer en parties plus " "légères." -#: index.php:1575 tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:26 +#: index.php:1576 tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:26 #: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:22 msgid "Plugin administration" msgstr "Administration des extensions" -#: index.php:1759 +#: index.php:1761 msgid "Search: " msgstr "Recherche : " -#: index.php:1798 +#: index.php:1800 #, php-format msgid "" "
Sessions do not seem to work correctly on your server.
Make sure the " @@ -420,7 +428,7 @@ msgstr "" "cookies. Nous vous recommandons d'accéder à votre serveur depuis son adresse " "IP ou un Fully Qualified Domain Name.
" -#: index.php:1808 +#: index.php:1810 msgid "Click to try again." msgstr "Cliquer ici pour réessayer." @@ -747,20 +755,26 @@ msgstr "Activer les miniatures" msgid "Warning: " msgstr "Attention : " -#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:281 +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:283 msgid "It's recommended to visit the picture wall after enabling this feature." msgstr "" "Il est recommandé de visiter le Mur d'images après avoir activé cette " "fonctionnalité." -#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:283 +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:285 msgid "" "If you have a large database, the first retrieval may take a few minutes." msgstr "" "Si vous avez beaucoup de liens, la première récupération peut prendre " "plusieurs minutes." -#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:297 +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:289 +msgid "You need to enable the extension php-gd to use thumbnails." +msgstr "" +"Vous devez activer l'extension php-gd pour utiliser les " +"miniatures." + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:305 #: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:72 #: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:139 #: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:199 diff --git a/inc/web-thumbnailer.json b/inc/web-thumbnailer.json index 263529f..b8db561 100644 --- a/inc/web-thumbnailer.json +++ b/inc/web-thumbnailer.json @@ -1,6 +1,7 @@ { "settings": { "default": { + "download_mode": "HOTLINK", "_comment": "infinite cache", "cache_duration": -1, "timeout": 10 diff --git a/index.php b/index.php index 899edd6..953f108 100644 --- a/index.php +++ b/index.php @@ -1036,7 +1036,7 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager, $conf->set('api.enabled', !empty($_POST['enableApi'])); $conf->set('api.secret', escape($_POST['apiSecret'])); $conf->set('translation.language', escape($_POST['language'])); - $conf->set('thumbnails.enabled', !empty($_POST['enableThumbnails'])); + $conf->set('thumbnails.enabled', extension_loaded('gd') && !empty($_POST['enableThumbnails'])); try { $conf->write($loginManager->isLoggedIn()); @@ -1076,6 +1076,7 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager, $PAGE->assign('api_secret', $conf->get('api.secret')); $PAGE->assign('languages', Languages::getAvailableLanguages()); $PAGE->assign('language', $conf->get('translation.language')); + $PAGE->assign('gd_enabled', extension_loaded('gd')); $PAGE->assign('pagetitle', t('Configure') .' - '. $conf->get('general.title', 'Shaarli')); $PAGE->renderPage('configure'); exit; @@ -1618,6 +1619,7 @@ function buildLinkList($PAGE, $LINKSDB, $conf, $pluginManager, $loginManager) $elem['thumbnail'] = $thumbnailer->get($link['url']); $LINKSDB[$keys[$i]] = $elem; $updateDB = true; + $link['thumbnail'] = $elem['thumbnail']; } // Check for both signs of a note: starting with ? and 7 chars long. diff --git a/tpl/default/configure.html b/tpl/default/configure.html index b91fc07..5695ae8 100644 --- a/tpl/default/configure.html +++ b/tpl/default/configure.html @@ -249,8 +249,12 @@ {'Enable thumbnails'|t}
{'Warning: '|t} - {'It\'s recommended to visit the picture wall after enabling this feature.'|t} - {'If you have a large database, the first retrieval may take a few minutes.'|t} + {if="$gd_enabled"} + {'It\'s recommended to visit the picture wall after enabling this feature.'|t} + {'If you have a large database, the first retrieval may take a few minutes.'|t} + {else} + {'You need to enable the extension php-gd to use thumbnails.'|t} + {/if} @@ -258,7 +262,7 @@
+ {if="$thumbnails_enabled"}checked{/if} {if="!$gd_enabled"}disabled{/if} />