Update thumbnail integration after rebasing the branch
This commit is contained in:
parent
a3724717ec
commit
e85b7a05a1
21 changed files with 453 additions and 210 deletions
|
@ -1,6 +1,11 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
namespace Shaarli;
|
||||||
|
|
||||||
|
use Shaarli\Config\ConfigManager;
|
||||||
|
use WebThumbnailer\Exception\WebThumbnailerException;
|
||||||
use WebThumbnailer\WebThumbnailer;
|
use WebThumbnailer\WebThumbnailer;
|
||||||
|
use WebThumbnailer\Application\ConfigManager as WTConfigManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Thumbnailer
|
* Class Thumbnailer
|
||||||
|
@ -28,7 +33,7 @@ public function __construct($conf)
|
||||||
{
|
{
|
||||||
$this->conf = $conf;
|
$this->conf = $conf;
|
||||||
$this->wt = new WebThumbnailer();
|
$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'))
|
$this->wt->maxWidth($this->conf->get('thumbnails.width'))
|
||||||
->maxHeight($this->conf->get('thumbnails.height'))
|
->maxHeight($this->conf->get('thumbnails.height'))
|
||||||
->crop(true)
|
->crop(true)
|
||||||
|
@ -44,6 +49,12 @@ public function __construct($conf)
|
||||||
*/
|
*/
|
||||||
public function get($url)
|
public function get($url)
|
||||||
{
|
{
|
||||||
|
try {
|
||||||
return $this->wt->thumbnail($url);
|
return $this->wt->thumbnail($url);
|
||||||
|
} catch (WebThumbnailerException $e) {
|
||||||
|
// Exceptions are only thrown in debug mode.
|
||||||
|
error_log(get_class($e) .': '. $e->getMessage());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -480,7 +480,19 @@ public function updateMethodDownloadSizeAndTimeoutConf()
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->conf->write($this->isLoggedIn);
|
$this->conf->write($this->isLoggedIn);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* * Move thumbnails management to WebThumbnailer, coming with new settings.
|
||||||
|
*/
|
||||||
|
public function updateMethodWebThumbnailer()
|
||||||
|
{
|
||||||
|
$this->conf->set('thumbnails.enabled', $this->conf->get('thumbnail.enable_thumbnails', true));
|
||||||
|
$this->conf->set('thumbnails.width', 125);
|
||||||
|
$this->conf->set('thumbnails.height', 90);
|
||||||
|
$this->conf->remove('thumbnail');
|
||||||
|
$this->conf->write(true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
import Blazy from 'blazy';
|
|
||||||
|
|
||||||
(() => {
|
|
||||||
const picwall = document.getElementById('picwall_container');
|
|
||||||
if (picwall != null) {
|
|
||||||
// Suppress ESLint error because that's how bLazy works
|
|
||||||
/* eslint-disable no-new */
|
|
||||||
new Blazy();
|
|
||||||
}
|
|
||||||
})();
|
|
7
assets/common/js/thumbnails.js
Normal file
7
assets/common/js/thumbnails.js
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
import Blazy from 'blazy';
|
||||||
|
|
||||||
|
(() => {
|
||||||
|
// Suppress ESLint error because that's how bLazy works
|
||||||
|
/* eslint-disable no-new */
|
||||||
|
new Blazy();
|
||||||
|
})();
|
|
@ -146,6 +146,10 @@ body,
|
||||||
background-color: $main-green;
|
background-color: $main-green;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.page-single-alert {
|
||||||
|
margin-top: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
.anchor {
|
.anchor {
|
||||||
&:target {
|
&:target {
|
||||||
padding-top: 40px;
|
padding-top: 40px;
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
"shaarli/netscape-bookmark-parser": "^2.0",
|
"shaarli/netscape-bookmark-parser": "^2.0",
|
||||||
"erusev/parsedown": "^1.6",
|
"erusev/parsedown": "^1.6",
|
||||||
"slim/slim": "^3.0",
|
"slim/slim": "^3.0",
|
||||||
"arthurhoaro/web-thumbnailer": "dev-master",
|
"arthurhoaro/web-thumbnailer": "^1.0",
|
||||||
"pubsubhubbub/publisher": "dev-master",
|
"pubsubhubbub/publisher": "dev-master",
|
||||||
"gettext/gettext": "^4.4"
|
"gettext/gettext": "^4.4"
|
||||||
},
|
},
|
||||||
|
|
43
composer.lock
generated
43
composer.lock
generated
|
@ -4,8 +4,49 @@
|
||||||
"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#composer-lock-the-lock-file",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "308a35eab91602fbb449f2c669c445ed",
|
"content-hash": "efa8b74ec9a15bb8c18e4a36fd13d480",
|
||||||
"packages": [
|
"packages": [
|
||||||
|
{
|
||||||
|
"name": "arthurhoaro/web-thumbnailer",
|
||||||
|
"version": "v1.0.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/ArthurHoaro/web-thumbnailer.git",
|
||||||
|
"reference": "10e2919c2aa0bf55f4593c8b05508a98c79d6706"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/ArthurHoaro/web-thumbnailer/zipball/10e2919c2aa0bf55f4593c8b05508a98c79d6706",
|
||||||
|
"reference": "10e2919c2aa0bf55f4593c8b05508a98c79d6706",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.6"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "5.2.*"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": {
|
||||||
|
"WebThumbnailer\\": [
|
||||||
|
"src/",
|
||||||
|
"tests/"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Arthur Hoaro",
|
||||||
|
"homepage": "http://hoa.ro"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2017-11-11T15:39:49+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "container-interop/container-interop",
|
"name": "container-interop/container-interop",
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Shaarli\n"
|
"Project-Id-Version: Shaarli\n"
|
||||||
"POT-Creation-Date: 2018-01-24 18:43+0100\n"
|
"POT-Creation-Date: 2018-05-05 12:47+0200\n"
|
||||||
"PO-Revision-Date: 2018-03-06 18:44+0100\n"
|
"PO-Revision-Date: 2018-05-05 12:47+0200\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Shaarli\n"
|
"Language-Team: Shaarli\n"
|
||||||
"Language: fr_FR\n"
|
"Language: fr_FR\n"
|
||||||
|
@ -56,7 +56,7 @@ msgstr "Liens directs"
|
||||||
|
|
||||||
#: application/FeedBuilder.php:153
|
#: application/FeedBuilder.php:153
|
||||||
#: tmp/daily.b91ef64efc3688266305ea9b42e5017e.rtpl.php:88
|
#: tmp/daily.b91ef64efc3688266305ea9b42e5017e.rtpl.php:88
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:178
|
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:177
|
||||||
msgid "Permalink"
|
msgid "Permalink"
|
||||||
msgstr "Permalien"
|
msgstr "Permalien"
|
||||||
|
|
||||||
|
@ -68,18 +68,22 @@ msgstr "Le fichier d'historique n'est pas accessible en lecture ou en écriture"
|
||||||
msgid "Could not parse history file"
|
msgid "Could not parse history file"
|
||||||
msgstr "Format incorrect pour le fichier d'historique"
|
msgstr "Format incorrect pour le fichier d'historique"
|
||||||
|
|
||||||
#: application/Languages.php:161
|
#: application/Languages.php:177
|
||||||
msgid "Automatic"
|
msgid "Automatic"
|
||||||
msgstr "Automatique"
|
msgstr "Automatique"
|
||||||
|
|
||||||
#: application/Languages.php:162
|
#: application/Languages.php:178
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr "Anglais"
|
msgstr "Anglais"
|
||||||
|
|
||||||
#: application/Languages.php:163
|
#: application/Languages.php:179
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Français"
|
msgstr "Français"
|
||||||
|
|
||||||
|
#: application/Languages.php:180
|
||||||
|
msgid "German"
|
||||||
|
msgstr "Allemand"
|
||||||
|
|
||||||
#: application/LinkDB.php:136
|
#: application/LinkDB.php:136
|
||||||
msgid "You are not authorized to add a link."
|
msgid "You are not authorized to add a link."
|
||||||
msgstr "Vous n'êtes pas autorisé à ajouter un lien."
|
msgstr "Vous n'êtes pas autorisé à ajouter un lien."
|
||||||
|
@ -163,11 +167,11 @@ msgstr ""
|
||||||
"a été importé avec succès en %d secondes : %d liens importés, %d liens "
|
"a été importé avec succès en %d secondes : %d liens importés, %d liens "
|
||||||
"écrasés, %d liens ignorés."
|
"écrasés, %d liens ignorés."
|
||||||
|
|
||||||
#: application/PageBuilder.php:168
|
#: application/PageBuilder.php:173
|
||||||
msgid "The page you are trying to reach does not exist or has been deleted."
|
msgid "The page you are trying to reach does not exist or has been deleted."
|
||||||
msgstr "La page que vous essayez de consulter n'existe pas ou a été supprimée."
|
msgstr "La page que vous essayez de consulter n'existe pas ou a été supprimée."
|
||||||
|
|
||||||
#: application/PageBuilder.php:170
|
#: application/PageBuilder.php:175
|
||||||
msgid "404 Not Found"
|
msgid "404 Not Found"
|
||||||
msgstr "404 Introuvable"
|
msgstr "404 Introuvable"
|
||||||
|
|
||||||
|
@ -180,17 +184,17 @@ msgstr "Les fichiers de l'extension \"%s\" sont introuvables."
|
||||||
msgid "Couldn't retrieve Updater class methods."
|
msgid "Couldn't retrieve Updater class methods."
|
||||||
msgstr "Impossible de récupérer les méthodes de la classe Updater."
|
msgstr "Impossible de récupérer les méthodes de la classe Updater."
|
||||||
|
|
||||||
#: application/Updater.php:506
|
#: application/Updater.php:544
|
||||||
msgid "An error occurred while running the update "
|
msgid "An error occurred while running the update "
|
||||||
msgstr "Une erreur s'est produite lors de l'exécution de la mise à jour "
|
msgstr "Une erreur s'est produite lors de l'exécution de la mise à jour "
|
||||||
|
|
||||||
#: application/Updater.php:546
|
#: application/Updater.php:584
|
||||||
msgid "Updates file path is not set, can't write updates."
|
msgid "Updates file path is not set, can't write updates."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Le chemin vers le fichier de mise à jour n'est pas défini, impossible "
|
"Le chemin vers le fichier de mise à jour n'est pas défini, impossible "
|
||||||
"d'écrire les mises à jour."
|
"d'écrire les mises à jour."
|
||||||
|
|
||||||
#: application/Updater.php:551
|
#: application/Updater.php:589
|
||||||
msgid "Unable to write updates in "
|
msgid "Unable to write updates in "
|
||||||
msgstr "Impossible d'écrire les mises à jour dans "
|
msgstr "Impossible d'écrire les mises à jour dans "
|
||||||
|
|
||||||
|
@ -230,6 +234,7 @@ msgstr ""
|
||||||
"Shaarli a les droits d'écriture dans le dossier dans lequel il est installé."
|
"Shaarli a les droits d'écriture dans le dossier dans lequel il est installé."
|
||||||
|
|
||||||
#: application/config/ConfigManager.php:135
|
#: application/config/ConfigManager.php:135
|
||||||
|
#: application/config/ConfigManager.php:162
|
||||||
msgid "Invalid setting key parameter. String expected, got: "
|
msgid "Invalid setting key parameter. String expected, got: "
|
||||||
msgstr "Clé de paramétrage invalide. Chaîne de caractères obtenue, attendu : "
|
msgstr "Clé de paramétrage invalide. Chaîne de caractères obtenue, attendu : "
|
||||||
|
|
||||||
|
@ -251,135 +256,133 @@ msgstr "Vous n'êtes pas autorisé à modifier la configuration."
|
||||||
msgid "Error accessing"
|
msgid "Error accessing"
|
||||||
msgstr "Une erreur s'est produite en accédant à"
|
msgstr "Une erreur s'est produite en accédant à"
|
||||||
|
|
||||||
#: index.php:142
|
#: index.php:143
|
||||||
msgid "Shared links on "
|
msgid "Shared links on "
|
||||||
msgstr "Liens partagés sur "
|
msgstr "Liens partagés sur "
|
||||||
|
|
||||||
#: index.php:164
|
#: index.php:165
|
||||||
msgid "Insufficient permissions:"
|
msgid "Insufficient permissions:"
|
||||||
msgstr "Permissions insuffisantes :"
|
msgstr "Permissions insuffisantes :"
|
||||||
|
|
||||||
#: index.php:303
|
#: index.php:304
|
||||||
msgid "I said: NO. You are banned for the moment. Go away."
|
msgid "I said: NO. You are banned for the moment. Go away."
|
||||||
msgstr "NON. Vous êtes banni pour le moment. Revenez plus tard."
|
msgstr "NON. Vous êtes banni pour le moment. Revenez plus tard."
|
||||||
|
|
||||||
#: index.php:368
|
#: index.php:369
|
||||||
msgid "Wrong login/password."
|
msgid "Wrong login/password."
|
||||||
msgstr "Nom d'utilisateur ou mot de passe incorrects."
|
msgstr "Nom d'utilisateur ou mot de passe incorrects."
|
||||||
|
|
||||||
#: index.php:576 tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:42
|
#: index.php:577 tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:46
|
||||||
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:42
|
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:46
|
||||||
msgid "Daily"
|
msgid "Daily"
|
||||||
msgstr "Quotidien"
|
msgstr "Quotidien"
|
||||||
|
|
||||||
#: index.php:681 tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:28
|
#: index.php:682 tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:28
|
||||||
#: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:44
|
#: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:44
|
||||||
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:71
|
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:75
|
||||||
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:95
|
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:99
|
||||||
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:71
|
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:75
|
||||||
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:95
|
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:99
|
||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "Connexion"
|
msgstr "Connexion"
|
||||||
|
|
||||||
#: index.php:722 tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:39
|
#: index.php:750 tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:41
|
||||||
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:39
|
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:41
|
||||||
msgid "Picture wall"
|
msgid "Picture wall"
|
||||||
msgstr "Mur d'images"
|
msgstr "Mur d'images"
|
||||||
|
|
||||||
#: index.php:770 tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36
|
#: index.php:798 tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36
|
||||||
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:36
|
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:36
|
||||||
#: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:19
|
#: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:19
|
||||||
msgid "Tag cloud"
|
msgid "Tag cloud"
|
||||||
msgstr "Nuage de tags"
|
msgstr "Nuage de tags"
|
||||||
|
|
||||||
#: index.php:803 tmp/tag.list.b91ef64efc3688266305ea9b42e5017e.rtpl.php:19
|
#: index.php:831 tmp/tag.list.b91ef64efc3688266305ea9b42e5017e.rtpl.php:19
|
||||||
msgid "Tag list"
|
msgid "Tag list"
|
||||||
msgstr "Liste des tags"
|
msgstr "Liste des tags"
|
||||||
|
|
||||||
#: index.php:1028 tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:31
|
#: index.php:1056 tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:31
|
||||||
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:31
|
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:31
|
||||||
msgid "Tools"
|
msgid "Tools"
|
||||||
msgstr "Outils"
|
msgstr "Outils"
|
||||||
|
|
||||||
#: index.php:1037
|
#: index.php:1065
|
||||||
msgid "You are not supposed to change a password on an Open Shaarli."
|
msgid "You are not supposed to change a password on an Open Shaarli."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Vous n'êtes pas censé modifier le mot de passe d'un Shaarli en mode ouvert."
|
"Vous n'êtes pas censé modifier le mot de passe d'un Shaarli en mode ouvert."
|
||||||
|
|
||||||
#: index.php:1042 index.php:1084 index.php:1162 index.php:1193 index.php:1293
|
#: index.php:1070 index.php:1112 index.php:1189 index.php:1220 index.php:1325
|
||||||
msgid "Wrong token."
|
msgid "Wrong token."
|
||||||
msgstr "Jeton invalide."
|
msgstr "Jeton invalide."
|
||||||
|
|
||||||
#: index.php:1047
|
#: index.php:1075
|
||||||
msgid "The old password is not correct."
|
msgid "The old password is not correct."
|
||||||
msgstr "L'ancien mot de passe est incorrect."
|
msgstr "L'ancien mot de passe est incorrect."
|
||||||
|
|
||||||
#: index.php:1067
|
#: index.php:1095
|
||||||
msgid "Your password has been changed"
|
msgid "Your password has been changed"
|
||||||
msgstr "Votre mot de passe a été modifié"
|
msgstr "Votre mot de passe a été modifié"
|
||||||
|
|
||||||
#: index.php:1072
|
#: index.php:1100
|
||||||
#: tmp/changepassword.b91ef64efc3688266305ea9b42e5017e.rtpl.php:13
|
#: tmp/changepassword.b91ef64efc3688266305ea9b42e5017e.rtpl.php:13
|
||||||
#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:29
|
#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:29
|
||||||
msgid "Change password"
|
msgid "Change password"
|
||||||
msgstr "Modification du mot de passe"
|
msgstr "Modification du mot de passe"
|
||||||
|
|
||||||
#: index.php:1121
|
#: index.php:1149
|
||||||
msgid "Configuration was saved."
|
msgid "Configuration was saved."
|
||||||
msgstr "La configuration a été sauvegardé."
|
msgstr "La configuration a été sauvegardé."
|
||||||
|
|
||||||
#: index.php:1145 tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:24
|
#: index.php:1172 tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:24
|
||||||
msgid "Configure"
|
msgid "Configure"
|
||||||
msgstr "Configurer"
|
msgstr "Configurer"
|
||||||
|
|
||||||
#: index.php:1156 tmp/changetag.b91ef64efc3688266305ea9b42e5017e.rtpl.php:13
|
#: index.php:1183 tmp/changetag.b91ef64efc3688266305ea9b42e5017e.rtpl.php:13
|
||||||
#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36
|
#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36
|
||||||
msgid "Manage tags"
|
msgid "Manage tags"
|
||||||
msgstr "Gérer les tags"
|
msgstr "Gérer les tags"
|
||||||
|
|
||||||
#: index.php:1174
|
#: index.php:1201
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "The tag was removed from %d link."
|
msgid "The tag was removed from %d link."
|
||||||
msgid_plural "The tag was removed from %d links."
|
msgid_plural "The tag was removed from %d links."
|
||||||
msgstr[0] "Le tag a été supprimé de %d lien."
|
msgstr[0] "Le tag a été supprimé de %d lien."
|
||||||
msgstr[1] "Le tag a été supprimé de %d liens."
|
msgstr[1] "Le tag a été supprimé de %d liens."
|
||||||
|
|
||||||
#: index.php:1175
|
#: index.php:1202
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "The tag was renamed in %d link."
|
msgid "The tag was renamed in %d link."
|
||||||
msgid_plural "The tag was renamed in %d links."
|
msgid_plural "The tag was renamed in %d links."
|
||||||
msgstr[0] "Le tag a été renommé dans %d lien."
|
msgstr[0] "Le tag a été renommé dans %d lien."
|
||||||
msgstr[1] "Le tag a été renommé dans %d liens."
|
msgstr[1] "Le tag a été renommé dans %d liens."
|
||||||
|
|
||||||
#: index.php:1183 tmp/addlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:13
|
#: index.php:1210 tmp/addlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:13
|
||||||
msgid "Shaare a new link"
|
msgid "Shaare a new link"
|
||||||
msgstr "Partager un nouveau lien"
|
msgstr "Partager un nouveau lien"
|
||||||
|
|
||||||
#: index.php:1353 tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:14
|
#: index.php:1385 tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:169
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:170
|
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Modifier"
|
msgstr "Modifier"
|
||||||
|
|
||||||
#: index.php:1353 index.php:1418
|
#: index.php:1385 index.php:1455
|
||||||
#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16
|
|
||||||
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:26
|
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:26
|
||||||
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:26
|
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:26
|
||||||
msgid "Shaare"
|
msgid "Shaare"
|
||||||
msgstr "Shaare"
|
msgstr "Shaare"
|
||||||
|
|
||||||
#: index.php:1387
|
#: index.php:1424
|
||||||
msgid "Note: "
|
msgid "Note: "
|
||||||
msgstr "Note : "
|
msgstr "Note : "
|
||||||
|
|
||||||
#: index.php:1427 tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:65
|
#: index.php:1464 tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:65
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "Exporter"
|
msgstr "Exporter"
|
||||||
|
|
||||||
#: index.php:1489 tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:83
|
#: index.php:1526 tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:83
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "Importer"
|
msgstr "Importer"
|
||||||
|
|
||||||
#: index.php:1499
|
#: index.php:1536
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"The file you are trying to upload is probably bigger than what this "
|
"The file you are trying to upload is probably bigger than what this "
|
||||||
|
@ -389,16 +392,16 @@ msgstr ""
|
||||||
"le serveur web peut accepter (%s). Merci de l'envoyer en parties plus "
|
"le serveur web peut accepter (%s). Merci de l'envoyer en parties plus "
|
||||||
"légères."
|
"légères."
|
||||||
|
|
||||||
#: index.php:1538 tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:26
|
#: index.php:1575 tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:26
|
||||||
#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:22
|
#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:22
|
||||||
msgid "Plugin administration"
|
msgid "Plugin administration"
|
||||||
msgstr "Administration des extensions"
|
msgstr "Administration des extensions"
|
||||||
|
|
||||||
#: index.php:1703
|
#: index.php:1759
|
||||||
msgid "Search: "
|
msgid "Search: "
|
||||||
msgstr "Recherche : "
|
msgstr "Recherche : "
|
||||||
|
|
||||||
#: index.php:1930
|
#: index.php:1798
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<pre>Sessions do not seem to work correctly on your server.<br>Make sure the "
|
"<pre>Sessions do not seem to work correctly on your server.<br>Make sure the "
|
||||||
|
@ -417,7 +420,7 @@ msgstr ""
|
||||||
"cookies. Nous vous recommandons d'accéder à votre serveur depuis son adresse "
|
"cookies. Nous vous recommandons d'accéder à votre serveur depuis son adresse "
|
||||||
"IP ou un <em>Fully Qualified Domain Name</em>.<br>"
|
"IP ou un <em>Fully Qualified Domain Name</em>.<br>"
|
||||||
|
|
||||||
#: index.php:1940
|
#: index.php:1808
|
||||||
msgid "Click to try again."
|
msgid "Click to try again."
|
||||||
msgstr "Cliquer ici pour réessayer."
|
msgstr "Cliquer ici pour réessayer."
|
||||||
|
|
||||||
|
@ -577,11 +580,11 @@ msgstr "URL de l'API Wallabag"
|
||||||
msgid "Wallabag API version (1 or 2)"
|
msgid "Wallabag API version (1 or 2)"
|
||||||
msgstr "Version de l'API Wallabag (1 ou 2)"
|
msgstr "Version de l'API Wallabag (1 ou 2)"
|
||||||
|
|
||||||
#: tests/LanguagesTest.php:188 tests/LanguagesTest.php:201
|
#: tests/LanguagesTest.php:214 tests/LanguagesTest.php:227
|
||||||
#: tests/languages/fr/LanguagesFrTest.php:160
|
#: tests/languages/fr/LanguagesFrTest.php:160
|
||||||
#: tests/languages/fr/LanguagesFrTest.php:173
|
#: tests/languages/fr/LanguagesFrTest.php:173
|
||||||
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:81
|
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:85
|
||||||
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:81
|
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:85
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgid_plural "Search"
|
msgid_plural "Search"
|
||||||
msgstr[0] "Rechercher"
|
msgstr[0] "Rechercher"
|
||||||
|
@ -625,8 +628,8 @@ msgid "Rename"
|
||||||
msgstr "Renommer"
|
msgstr "Renommer"
|
||||||
|
|
||||||
#: tmp/changetag.b91ef64efc3688266305ea9b42e5017e.rtpl.php:35
|
#: tmp/changetag.b91ef64efc3688266305ea9b42e5017e.rtpl.php:35
|
||||||
#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:79
|
#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:77
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:172
|
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:171
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Supprimer"
|
msgstr "Supprimer"
|
||||||
|
|
||||||
|
@ -736,8 +739,29 @@ msgstr ""
|
||||||
msgid "API secret"
|
msgid "API secret"
|
||||||
msgstr "Clé d'API secrète"
|
msgstr "Clé d'API secrète"
|
||||||
|
|
||||||
#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:274
|
#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:277
|
||||||
#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:74
|
msgid "Enable thumbnails"
|
||||||
|
msgstr "Activer les miniatures"
|
||||||
|
|
||||||
|
#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:279
|
||||||
|
msgid "Warning: "
|
||||||
|
msgstr "Attention : "
|
||||||
|
|
||||||
|
#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:281
|
||||||
|
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
|
||||||
|
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/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:72
|
||||||
#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:139
|
#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:139
|
||||||
#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:199
|
#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:199
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
|
@ -763,25 +787,27 @@ msgstr "Tous les liens d'un jour sur une page."
|
||||||
msgid "Next day"
|
msgid "Next day"
|
||||||
msgstr "Jour suivant"
|
msgstr "Jour suivant"
|
||||||
|
|
||||||
#: tpl/editlink.html
|
#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:14
|
||||||
msgid "Edit Shaare"
|
msgid "Edit Shaare"
|
||||||
msgstr "Modifier le Shaare"
|
msgstr "Modifier le Shaare"
|
||||||
|
|
||||||
|
#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:14
|
||||||
msgid "New Shaare"
|
msgid "New Shaare"
|
||||||
msgstr "Nouveau Shaare"
|
msgstr "Nouveau Shaare"
|
||||||
|
|
||||||
#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:25
|
#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:23
|
||||||
msgid "Created:"
|
msgid "Created:"
|
||||||
msgstr "Création :"
|
msgstr "Création :"
|
||||||
|
|
||||||
#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:28
|
#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:26
|
||||||
msgid "URL"
|
msgid "URL"
|
||||||
msgstr "URL"
|
msgstr "URL"
|
||||||
|
|
||||||
#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:34
|
#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:32
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "Titre"
|
msgstr "Titre"
|
||||||
|
|
||||||
#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:40
|
#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:38
|
||||||
#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:42
|
#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:42
|
||||||
#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:75
|
#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:75
|
||||||
#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:99
|
#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:99
|
||||||
|
@ -789,17 +815,17 @@ msgstr "Titre"
|
||||||
msgid "Description"
|
msgid "Description"
|
||||||
msgstr "Description"
|
msgstr "Description"
|
||||||
|
|
||||||
#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:46
|
#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:44
|
||||||
msgid "Tags"
|
msgid "Tags"
|
||||||
msgstr "Tags"
|
msgstr "Tags"
|
||||||
|
|
||||||
#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:59
|
#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:57
|
||||||
#: tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36
|
#: tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:168
|
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:167
|
||||||
msgid "Private"
|
msgid "Private"
|
||||||
msgstr "Privé"
|
msgstr "Privé"
|
||||||
|
|
||||||
#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:74
|
#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:72
|
||||||
msgid "Apply Changes"
|
msgid "Apply Changes"
|
||||||
msgstr "Appliquer"
|
msgstr "Appliquer"
|
||||||
|
|
||||||
|
@ -876,15 +902,15 @@ msgstr ""
|
||||||
|
|
||||||
#: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:33
|
#: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:33
|
||||||
#: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:30
|
#: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:30
|
||||||
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:147
|
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:151
|
||||||
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:147
|
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:151
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "Nom d'utilisateur"
|
msgstr "Nom d'utilisateur"
|
||||||
|
|
||||||
#: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:48
|
#: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:48
|
||||||
#: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:34
|
#: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:34
|
||||||
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:148
|
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:152
|
||||||
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:148
|
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:152
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Mot de passe"
|
msgstr "Mot de passe"
|
||||||
|
|
||||||
|
@ -901,28 +927,28 @@ msgid "Install"
|
||||||
msgstr "Installer"
|
msgstr "Installer"
|
||||||
|
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:14
|
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:14
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:80
|
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:79
|
||||||
msgid "shaare"
|
msgid "shaare"
|
||||||
msgid_plural "shaares"
|
msgid_plural "shaares"
|
||||||
msgstr[0] "shaare"
|
msgstr[0] "shaare"
|
||||||
msgstr[1] "shaares"
|
msgstr[1] "shaares"
|
||||||
|
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:18
|
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:18
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:84
|
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:83
|
||||||
msgid "private link"
|
msgid "private link"
|
||||||
msgid_plural "private links"
|
msgid_plural "private links"
|
||||||
msgstr[0] "lien privé"
|
msgstr[0] "lien privé"
|
||||||
msgstr[1] "liens privés"
|
msgstr[1] "liens privés"
|
||||||
|
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:31
|
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:30
|
||||||
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:117
|
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:121
|
||||||
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:117
|
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:121
|
||||||
msgid "Search text"
|
msgid "Search text"
|
||||||
msgstr "Recherche texte"
|
msgstr "Recherche texte"
|
||||||
|
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:38
|
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:37
|
||||||
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:124
|
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:128
|
||||||
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:124
|
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:128
|
||||||
#: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36
|
#: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36
|
||||||
#: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:64
|
#: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:64
|
||||||
#: tmp/tag.list.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36
|
#: tmp/tag.list.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36
|
||||||
|
@ -930,52 +956,52 @@ msgstr "Recherche texte"
|
||||||
msgid "Filter by tag"
|
msgid "Filter by tag"
|
||||||
msgstr "Filtrer par tag"
|
msgstr "Filtrer par tag"
|
||||||
|
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:111
|
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:110
|
||||||
msgid "Nothing found."
|
msgid "Nothing found."
|
||||||
msgstr "Aucun résultat."
|
msgstr "Aucun résultat."
|
||||||
|
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:119
|
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:118
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%s result"
|
msgid "%s result"
|
||||||
msgid_plural "%s results"
|
msgid_plural "%s results"
|
||||||
msgstr[0] "%s résultat"
|
msgstr[0] "%s résultat"
|
||||||
msgstr[1] "%s résultats"
|
msgstr[1] "%s résultats"
|
||||||
|
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:123
|
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:122
|
||||||
msgid "for"
|
msgid "for"
|
||||||
msgstr "pour"
|
msgstr "pour"
|
||||||
|
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:130
|
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:129
|
||||||
msgid "tagged"
|
msgid "tagged"
|
||||||
msgstr "taggé"
|
msgstr "taggé"
|
||||||
|
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:134
|
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:133
|
||||||
msgid "Remove tag"
|
msgid "Remove tag"
|
||||||
msgstr "Retirer le tag"
|
msgstr "Retirer le tag"
|
||||||
|
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:143
|
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:142
|
||||||
msgid "with status"
|
msgid "with status"
|
||||||
msgstr "avec le statut"
|
msgstr "avec le statut"
|
||||||
|
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:154
|
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:153
|
||||||
msgid "without any tag"
|
msgid "without any tag"
|
||||||
msgstr "sans tag"
|
msgstr "sans tag"
|
||||||
|
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:174
|
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:173
|
||||||
#: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:42
|
#: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:42
|
||||||
#: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:42
|
#: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:42
|
||||||
msgid "Fold"
|
msgid "Fold"
|
||||||
msgstr "Replier"
|
msgstr "Replier"
|
||||||
|
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:176
|
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:175
|
||||||
msgid "Edited: "
|
msgid "Edited: "
|
||||||
msgstr "Modifié : "
|
msgstr "Modifié : "
|
||||||
|
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:180
|
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:179
|
||||||
msgid "permalink"
|
msgid "permalink"
|
||||||
msgstr "permalien"
|
msgstr "permalien"
|
||||||
|
|
||||||
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:182
|
#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:181
|
||||||
msgid "Add tag"
|
msgid "Add tag"
|
||||||
msgstr "Ajouter un tag"
|
msgstr "Ajouter un tag"
|
||||||
|
|
||||||
|
@ -1021,8 +1047,8 @@ msgstr ""
|
||||||
"réessayer plus tard."
|
"réessayer plus tard."
|
||||||
|
|
||||||
#: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:41
|
#: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:41
|
||||||
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:151
|
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:155
|
||||||
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:151
|
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:155
|
||||||
msgid "Remember me"
|
msgid "Remember me"
|
||||||
msgstr "Rester connecté"
|
msgstr "Rester connecté"
|
||||||
|
|
||||||
|
@ -1053,35 +1079,40 @@ msgstr "Déplier tout"
|
||||||
msgid "Are you sure you want to delete this link?"
|
msgid "Are you sure you want to delete this link?"
|
||||||
msgstr "Êtes-vous sûr de vouloir supprimer ce lien ?"
|
msgstr "Êtes-vous sûr de vouloir supprimer ce lien ?"
|
||||||
|
|
||||||
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:61
|
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:65
|
||||||
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:86
|
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:90
|
||||||
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:61
|
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:65
|
||||||
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:86
|
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:90
|
||||||
msgid "RSS Feed"
|
msgid "RSS Feed"
|
||||||
msgstr "Flux RSS"
|
msgstr "Flux RSS"
|
||||||
|
|
||||||
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:66
|
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:70
|
||||||
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:102
|
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:106
|
||||||
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:66
|
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:70
|
||||||
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:102
|
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:106
|
||||||
msgid "Logout"
|
msgid "Logout"
|
||||||
msgstr "Déconnexion"
|
msgstr "Déconnexion"
|
||||||
|
|
||||||
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:169
|
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:173
|
||||||
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:169
|
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:173
|
||||||
msgid "is available"
|
msgid "is available"
|
||||||
msgstr "est disponible"
|
msgstr "est disponible"
|
||||||
|
|
||||||
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:176
|
#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:180
|
||||||
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:176
|
#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:180
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Erreur"
|
msgstr "Erreur"
|
||||||
|
|
||||||
#: tmp/picwall.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16
|
#: tmp/picwall.b91ef64efc3688266305ea9b42e5017e.rtpl.php:14
|
||||||
|
msgid "Picture wall unavailable (thumbnails are disabled)."
|
||||||
|
msgstr ""
|
||||||
|
"Le mur d'images n'est pas disponible (les miniatures sont désactivées)."
|
||||||
|
|
||||||
|
#: tmp/picwall.b91ef64efc3688266305ea9b42e5017e.rtpl.php:25
|
||||||
msgid "Picture Wall"
|
msgid "Picture Wall"
|
||||||
msgstr "Mur d'images"
|
msgstr "Mur d'images"
|
||||||
|
|
||||||
#: tmp/picwall.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16
|
#: tmp/picwall.b91ef64efc3688266305ea9b42e5017e.rtpl.php:25
|
||||||
msgid "pics"
|
msgid "pics"
|
||||||
msgstr "images"
|
msgstr "images"
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,10 @@
|
||||||
"default": {
|
"default": {
|
||||||
"_comment": "infinite cache",
|
"_comment": "infinite cache",
|
||||||
"cache_duration": -1,
|
"cache_duration": -1,
|
||||||
"timeout": 60
|
"timeout": 10
|
||||||
|
},
|
||||||
|
"path": {
|
||||||
|
"cache": "cache/"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
39
index.php
39
index.php
|
@ -74,13 +74,13 @@
|
||||||
require_once 'application/Utils.php';
|
require_once 'application/Utils.php';
|
||||||
require_once 'application/PluginManager.php';
|
require_once 'application/PluginManager.php';
|
||||||
require_once 'application/Router.php';
|
require_once 'application/Router.php';
|
||||||
require_once 'application/Thumbnailer.php';
|
|
||||||
require_once 'application/Updater.php';
|
require_once 'application/Updater.php';
|
||||||
use \Shaarli\Languages;
|
|
||||||
use \Shaarli\ThemeUtils;
|
|
||||||
use \Shaarli\Config\ConfigManager;
|
use \Shaarli\Config\ConfigManager;
|
||||||
|
use \Shaarli\Languages;
|
||||||
use \Shaarli\Security\LoginManager;
|
use \Shaarli\Security\LoginManager;
|
||||||
use \Shaarli\Security\SessionManager;
|
use \Shaarli\Security\SessionManager;
|
||||||
|
use \Shaarli\ThemeUtils;
|
||||||
|
use \Shaarli\Thumbnailer;
|
||||||
|
|
||||||
// Ensure the PHP version is supported
|
// Ensure the PHP version is supported
|
||||||
try {
|
try {
|
||||||
|
@ -603,7 +603,7 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager,
|
||||||
if ($targetPage == Router::$PAGE_PICWALL)
|
if ($targetPage == Router::$PAGE_PICWALL)
|
||||||
{
|
{
|
||||||
if (! $conf->get('thumbnails.enabled')) {
|
if (! $conf->get('thumbnails.enabled')) {
|
||||||
header('Location: ?');
|
$PAGE->renderPage('picwall');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -614,23 +614,19 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager,
|
||||||
$thumbnailer = new Thumbnailer($conf);
|
$thumbnailer = new Thumbnailer($conf);
|
||||||
|
|
||||||
|
|
||||||
$cpt = 0;
|
$newThumbnailsCpt = 0;
|
||||||
// Get only links which have a thumbnail.
|
// Get only links which have a thumbnail.
|
||||||
foreach($links as $link)
|
foreach($links as $key => $link)
|
||||||
{
|
{
|
||||||
$permalink='?'.$link['shorturl'];
|
|
||||||
// Not a note,
|
// Not a note,
|
||||||
// and (never retrieved yet or no valid cache file)
|
// and (never retrieved yet or no valid cache file)
|
||||||
if ($link['url'][0] != '?'
|
if ($link['url'][0] != '?'
|
||||||
&& (! isset($link['thumbnail']) || ($link['thumbnail'] !== false && ! is_file($link['thumbnail'])))
|
&& (! isset($link['thumbnail']) || ($link['thumbnail'] !== false && ! is_file($link['thumbnail'])))
|
||||||
) {
|
) {
|
||||||
$link['thumbnail'] = $thumbnailer->get($link['url']);
|
$item = $LINKSDB[$key];
|
||||||
// FIXME! we really need to get rid of ArrayAccess...
|
$item['thumbnail'] = $thumbnailer->get($link['url']);
|
||||||
$item = $LINKSDB[$link['linkdate']];
|
$LINKSDB[$key] = $item;
|
||||||
$item['thumbnail'] = $link['thumbnail'];
|
$newThumbnailsCpt++;
|
||||||
$LINKSDB[$link['linkdate']] = $item;
|
|
||||||
$updateDB = true;
|
|
||||||
$cpt++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($link['thumbnail']) && $link['thumbnail'] !== false) {
|
if (isset($link['thumbnail']) && $link['thumbnail'] !== false) {
|
||||||
|
@ -639,14 +635,13 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager,
|
||||||
|
|
||||||
// If we retrieved new thumbnails, we update the database every 20 links.
|
// If we retrieved new thumbnails, we update the database every 20 links.
|
||||||
// Downloading everything the first time may take a very long time
|
// Downloading everything the first time may take a very long time
|
||||||
if (!empty($updateDB) && $cpt == 20) {
|
if ($newThumbnailsCpt == 20) {
|
||||||
$LINKSDB->save($conf->get('resource.page_cache'));
|
$LINKSDB->save($conf->get('resource.page_cache'));
|
||||||
$updateDB = false;
|
$newThumbnailsCpt = 0;
|
||||||
$cpt = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($updateDB)) {
|
if ($newThumbnailsCpt > 0) {
|
||||||
$LINKSDB->save($conf->get('resource.page_cache'));
|
$LINKSDB->save($conf->get('resource.page_cache'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1619,11 +1614,9 @@ function buildLinkList($PAGE, $LINKSDB, $conf, $pluginManager, $loginManager)
|
||||||
if ($conf->get('thumbnails.enabled') && $link['url'][0] != '?'
|
if ($conf->get('thumbnails.enabled') && $link['url'][0] != '?'
|
||||||
&& (! isset($link['thumbnail']) || ($link['thumbnail'] !== false && ! is_file($link['thumbnail'])))
|
&& (! isset($link['thumbnail']) || ($link['thumbnail'] !== false && ! is_file($link['thumbnail'])))
|
||||||
) {
|
) {
|
||||||
$link['thumbnail'] = $thumbnailer->get($link['url']);
|
$elem = $LINKSDB[$keys[$i]];
|
||||||
// FIXME! we really need to get rid of ArrayAccess...
|
$elem['thumbnail'] = $thumbnailer->get($link['url']);
|
||||||
$item = $LINKSDB[$keys[$i]];
|
$LINKSDB[$keys[$i]] = $elem;
|
||||||
$item['thumbnail'] = $link['thumbnail'];
|
|
||||||
$LINKSDB[$keys[$i]] = $item;
|
|
||||||
$updateDB = true;
|
$updateDB = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
require_once 'application/Thumbnailer.php';
|
namespace Shaarli;
|
||||||
require_once 'application/config/ConfigManager.php';
|
|
||||||
|
use PHPUnit\Framework\TestCase;
|
||||||
|
use Shaarli\Config\ConfigManager;
|
||||||
|
use WebThumbnailer\Application\ConfigManager as WTConfigManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class ThumbnailerTest
|
* Class ThumbnailerTest
|
||||||
|
@ -11,31 +14,48 @@
|
||||||
* 1. the thumbnailer library is itself tested
|
* 1. the thumbnailer library is itself tested
|
||||||
* 2. we don't want to make too many external requests during the tests
|
* 2. we don't want to make too many external requests during the tests
|
||||||
*/
|
*/
|
||||||
class ThumbnailerTest extends PHPUnit_Framework_TestCase
|
class ThumbnailerTest extends TestCase
|
||||||
{
|
{
|
||||||
|
const WIDTH = 190;
|
||||||
|
|
||||||
|
const HEIGHT = 210;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var Thumbnailer;
|
||||||
|
*/
|
||||||
|
protected $thumbnailer;
|
||||||
|
|
||||||
|
public function setUp()
|
||||||
|
{
|
||||||
|
$conf = new ConfigManager('tests/utils/config/configJson');
|
||||||
|
$conf->set('thumbnails.width', self::WIDTH);
|
||||||
|
$conf->set('thumbnails.height', self::HEIGHT);
|
||||||
|
$conf->set('dev.debug', true);
|
||||||
|
|
||||||
|
$this->thumbnailer = new Thumbnailer($conf);
|
||||||
|
// cache files in the sandbox
|
||||||
|
WTConfigManager::addFile('tests/utils/config/wt.json');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function tearDown()
|
||||||
|
{
|
||||||
|
$this->rrmdirContent('sandbox/');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test a thumbnail with a custom size.
|
* Test a thumbnail with a custom size.
|
||||||
*/
|
*/
|
||||||
public function testThumbnailValid()
|
public function testThumbnailValid()
|
||||||
{
|
{
|
||||||
$conf = new ConfigManager('tests/utils/config/configJson');
|
$thumb = $this->thumbnailer->get('https://github.com/shaarli/Shaarli/');
|
||||||
$width = 200;
|
|
||||||
$height = 200;
|
|
||||||
$conf->set('thumbnails.width', $width);
|
|
||||||
$conf->set('thumbnails.height', $height);
|
|
||||||
|
|
||||||
$thumbnailer = new Thumbnailer($conf);
|
|
||||||
$thumb = $thumbnailer->get('https://github.com/shaarli/Shaarli/');
|
|
||||||
$this->assertNotFalse($thumb);
|
$this->assertNotFalse($thumb);
|
||||||
$image = imagecreatefromstring(file_get_contents($thumb));
|
$image = imagecreatefromstring(file_get_contents($thumb));
|
||||||
$this->assertEquals($width, imagesx($image));
|
$this->assertEquals(self::WIDTH, imagesx($image));
|
||||||
$this->assertEquals($height, imagesy($image));
|
$this->assertEquals(self::HEIGHT, imagesy($image));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test a thumbnail that can't be retrieved.
|
* Test a thumbnail that can't be retrieved.
|
||||||
*
|
|
||||||
* @expectedException WebThumbnailer\Exception\ThumbnailNotFoundException
|
|
||||||
*/
|
*/
|
||||||
public function testThumbnailNotValid()
|
public function testThumbnailNotValid()
|
||||||
{
|
{
|
||||||
|
@ -48,4 +68,18 @@ public function testThumbnailNotValid()
|
||||||
|
|
||||||
ini_set('error_log', $oldlog);
|
ini_set('error_log', $oldlog);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function rrmdirContent($dir) {
|
||||||
|
if (is_dir($dir)) {
|
||||||
|
$objects = scandir($dir);
|
||||||
|
foreach ($objects as $object) {
|
||||||
|
if ($object != "." && $object != "..") {
|
||||||
|
if (is_dir($dir."/".$object))
|
||||||
|
$this->rrmdirContent($dir."/".$object);
|
||||||
|
else
|
||||||
|
unlink($dir."/".$object);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -684,4 +684,19 @@ public function testUpdateMethodDownloadSizeAndTimeoutConfOnlyTimeout()
|
||||||
$this->assertEquals(4194304, $this->conf->get('general.download_max_size'));
|
$this->assertEquals(4194304, $this->conf->get('general.download_max_size'));
|
||||||
$this->assertEquals(3, $this->conf->get('general.download_timeout'));
|
$this->assertEquals(3, $this->conf->get('general.download_timeout'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test updateMethodAtomDefault with show_atom set to true.
|
||||||
|
* => nothing to do
|
||||||
|
*/
|
||||||
|
public function testUpdateMethodWebThumbnailerEnabled()
|
||||||
|
{
|
||||||
|
$this->conf->set('thumbnail.enable_thumbnails', true);
|
||||||
|
$updater = new Updater([], [], $this->conf, true);
|
||||||
|
$this->assertTrue($updater->updateMethodWebThumbnailer());
|
||||||
|
$this->assertFalse($this->conf->exists('thumbnail'));
|
||||||
|
$this->assertTrue($this->conf->get('thumbnails.enabled'));
|
||||||
|
$this->assertEquals(125, $this->conf->get('thumbnails.width'));
|
||||||
|
$this->assertEquals(90, $this->conf->get('thumbnails.height'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,33 +6,79 @@
|
||||||
"salt": "salt"
|
"salt": "salt"
|
||||||
},
|
},
|
||||||
"security": {
|
"security": {
|
||||||
"session_protection_disabled":false
|
"session_protection_disabled": false,
|
||||||
|
"ban_after": 4,
|
||||||
|
"ban_duration": 1800,
|
||||||
|
"open_shaarli": false,
|
||||||
|
"allowed_protocols": [
|
||||||
|
"ftp",
|
||||||
|
"ftps",
|
||||||
|
"magnet"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"general": {
|
"general": {
|
||||||
"timezone": "Europe\/Paris",
|
"timezone": "Europe\/Paris",
|
||||||
"title": "Shaarli",
|
"title": "Shaarli",
|
||||||
"header_link": "?"
|
"header_link": "?",
|
||||||
|
"links_per_page": 20,
|
||||||
|
"enabled_plugins": [
|
||||||
|
"qrcode"
|
||||||
|
],
|
||||||
|
"default_note_title": "Note: "
|
||||||
},
|
},
|
||||||
"privacy": {
|
"privacy": {
|
||||||
"default_private_links":true
|
"default_private_links": true,
|
||||||
|
"hide_public_links": false,
|
||||||
|
"force_login": false,
|
||||||
|
"hide_timestamps": false,
|
||||||
|
"remember_user_default": true
|
||||||
},
|
},
|
||||||
"redirector": {
|
"redirector": {
|
||||||
"url":"lala"
|
"url": "lala",
|
||||||
|
"encode_url": true
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"foo": "bar"
|
"foo": "bar"
|
||||||
},
|
},
|
||||||
"resource": {
|
"resource": {
|
||||||
"datastore": "tests\/utils\/config\/datastore.php",
|
"datastore": "tests\/utils\/config\/datastore.php",
|
||||||
"data_dir": "sandbox/",
|
"data_dir": "sandbox\/",
|
||||||
"raintpl_tpl": "tpl/"
|
"raintpl_tpl": "tpl\/",
|
||||||
|
"config": "data\/config.php",
|
||||||
|
"ban_file": "data\/ipbans.php",
|
||||||
|
"updates": "data\/updates.txt",
|
||||||
|
"log": "data\/log.txt",
|
||||||
|
"update_check": "data\/lastupdatecheck.txt",
|
||||||
|
"history": "data\/history.php",
|
||||||
|
"theme": "default",
|
||||||
|
"raintpl_tmp": "tmp\/",
|
||||||
|
"thumbnails_cache": "cache",
|
||||||
|
"page_cache": "pagecache"
|
||||||
},
|
},
|
||||||
"plugins": {
|
"plugins": {
|
||||||
"WALLABAG_VERSION": 1
|
"WALLABAG_VERSION": 1
|
||||||
},
|
},
|
||||||
"dev": {
|
"dev": {
|
||||||
"debug": true
|
"debug": true
|
||||||
|
},
|
||||||
|
"thumbnails": {
|
||||||
|
"enabled": true,
|
||||||
|
"width": 125,
|
||||||
|
"height": 90
|
||||||
|
},
|
||||||
|
"updates": {
|
||||||
|
"check_updates": false,
|
||||||
|
"check_updates_branch": "stable",
|
||||||
|
"check_updates_interval": 86400
|
||||||
|
},
|
||||||
|
"feed": {
|
||||||
|
"rss_permalinks": true,
|
||||||
|
"show_atom": true
|
||||||
|
},
|
||||||
|
"translation": {
|
||||||
|
"language": "auto",
|
||||||
|
"mode": "php",
|
||||||
|
"extensions": []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/ ?>
|
*/ ?>
|
||||||
|
|
||||||
|
|
12
tests/utils/config/wt.json
Normal file
12
tests/utils/config/wt.json
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"default": {
|
||||||
|
"_comment": "infinite cache",
|
||||||
|
"cache_duration": -1,
|
||||||
|
"timeout": 10
|
||||||
|
},
|
||||||
|
"path": {
|
||||||
|
"cache": "sandbox/"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -242,6 +242,26 @@ <h2 class="window-title">{'Configure'|t}</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="pure-g">
|
||||||
|
<div class="pure-u-lg-{$ratioLabel} pure-u-{$ratioLabelMobile}">
|
||||||
|
<div class="form-label">
|
||||||
|
<label for="enableThumbnails">
|
||||||
|
<span class="label-name">{'Enable thumbnails'|t}</span><br>
|
||||||
|
<span class="label-desc">
|
||||||
|
{'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}
|
||||||
|
</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="pure-u-lg-{$ratioInput} pure-u-{$ratioInputMobile}">
|
||||||
|
<div class="form-input">
|
||||||
|
<input type="checkbox" name="enableThumbnails" id="enableThumbnails"
|
||||||
|
{if="$thumbnails_enabled"}checked{/if}/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="center">
|
<div class="center">
|
||||||
<input type="submit" value="{'Save'|t}" name="save">
|
<input type="submit" value="{'Save'|t}" name="save">
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -131,9 +131,17 @@
|
||||||
|
|
||||||
<div class="linklist-item linklist-item{if="$value.class"} {$value.class}{/if}" data-id="{$value.id}">
|
<div class="linklist-item linklist-item{if="$value.class"} {$value.class}{/if}" data-id="{$value.id}">
|
||||||
<div class="linklist-item-title">
|
<div class="linklist-item-title">
|
||||||
{$thumb=thumbnail($value.url)}
|
{if="$thumbnails_enabled && !empty($value.thumbnail)"}
|
||||||
{if="$thumb!=false"}
|
<div class="linklist-item-thumbnail">
|
||||||
<div class="linklist-item-thumbnail">{$thumb}</div>
|
<div class="thumbnail">
|
||||||
|
<a href="{$value.real_url}">
|
||||||
|
{ignore}RainTPL hack: put the 2 src on two different line to avoid path replace bug{/ignore}
|
||||||
|
<img data-src="{$value.thumbnail}#" class="b-lazy"
|
||||||
|
src="#"
|
||||||
|
alt="thumbnail" width="{$thumbnails_width}" height="{$thumbnails_height}" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{if="$is_logged_in"}
|
{if="$is_logged_in"}
|
||||||
|
@ -268,5 +276,6 @@ <h2>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{include="page.footer"}
|
{include="page.footer"}
|
||||||
|
<script src="js/thumbnails.min.js?v={$version_hash}"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -30,9 +30,11 @@
|
||||||
<li class="pure-menu-item" id="shaarli-menu-tags">
|
<li class="pure-menu-item" id="shaarli-menu-tags">
|
||||||
<a href="?do=tagcloud" class="pure-menu-link">{'Tag cloud'|t}</a>
|
<a href="?do=tagcloud" class="pure-menu-link">{'Tag cloud'|t}</a>
|
||||||
</li>
|
</li>
|
||||||
|
{if="$thumbnails_enabled"}
|
||||||
<li class="pure-menu-item" id="shaarli-menu-picwall">
|
<li class="pure-menu-item" id="shaarli-menu-picwall">
|
||||||
<a href="?do=picwall{$searchcrits}" class="pure-menu-link">{'Picture wall'|t}</a>
|
<a href="?do=picwall{$searchcrits}" class="pure-menu-link">{'Picture wall'|t}</a>
|
||||||
</li>
|
</li>
|
||||||
|
{/if}
|
||||||
<li class="pure-menu-item" id="shaarli-menu-daily">
|
<li class="pure-menu-item" id="shaarli-menu-daily">
|
||||||
<a href="?do=daily" class="pure-menu-link">{'Daily'|t}</a>
|
<a href="?do=daily" class="pure-menu-link">{'Daily'|t}</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -5,7 +5,13 @@
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
{include="page.header"}
|
{include="page.header"}
|
||||||
|
{if="!$thumbnails_enabled"}
|
||||||
|
<div class="pure-g pure-alert pure-alert-warning page-single-alert">
|
||||||
|
<div class="pure-u-1 center">
|
||||||
|
{'Picture wall unavailable (thumbnails are disabled).'|t}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{else}
|
||||||
<div class="pure-g">
|
<div class="pure-g">
|
||||||
<div class="pure-u-lg-1-6 pure-u-1-24"></div>
|
<div class="pure-u-lg-1-6 pure-u-1-24"></div>
|
||||||
<div class="pure-u-lg-2-3 pure-u-22-24 page-form page-visitor">
|
<div class="pure-u-lg-2-3 pure-u-22-24 page-form page-visitor">
|
||||||
|
@ -20,8 +26,12 @@ <h2 class="window-title">{'Picture Wall'|t} - {$countPics} {'pics'|t}</h2>
|
||||||
|
|
||||||
<div id="picwall_container" class="picwall-container">
|
<div id="picwall_container" class="picwall-container">
|
||||||
{loop="$linksToDisplay"}
|
{loop="$linksToDisplay"}
|
||||||
<div class="picwall-pictureframe">
|
<div class="picwall_pictureframe">
|
||||||
{$value.thumbnail}<a href="{$value.real_url}"><span class="info">{$value.title}</span></a>
|
{ignore}RainTPL hack: put the 2 src on two different line to avoid path replace bug{/ignore}
|
||||||
|
<img data-src="{$value.thumbnail}#" class="b-lazy"
|
||||||
|
src="#"
|
||||||
|
alt="thumbnail" width="{$thumbnails_width}" height="{$thumbnails_height}" />
|
||||||
|
<a href="{$value.real_url}"><span class="info">{$value.title}</span></a>
|
||||||
{loop="$value.picwall_plugin"}
|
{loop="$value.picwall_plugin"}
|
||||||
{$value}
|
{$value}
|
||||||
{/loop}
|
{/loop}
|
||||||
|
@ -36,10 +46,12 @@ <h2 class="window-title">{'Picture Wall'|t} - {$countPics} {'pics'|t}</h2>
|
||||||
{/loop}
|
{/loop}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="pure-u-lg-1-6 pure-u-1-24"></div>
|
||||||
</div>
|
</div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
{include="page.footer"}
|
{include="page.footer"}
|
||||||
<script src="js/picwall.min.js?v={$version_hash}"></script>
|
<script src="js/thumbnails.min.js?v={$version_hash}"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
|
@ -154,6 +154,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{include="page.footer"}
|
{include="page.footer"}
|
||||||
|
<script src="js/thumbnails.min.js"></script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -38,6 +38,6 @@
|
||||||
|
|
||||||
{include="page.footer"}
|
{include="page.footer"}
|
||||||
|
|
||||||
<script src="js/picwall.min.js"></script>
|
<script src="js/thumbnails.min.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -23,7 +23,7 @@ const extractCssVintage = new ExtractTextPlugin({
|
||||||
module.exports = [
|
module.exports = [
|
||||||
{
|
{
|
||||||
entry: {
|
entry: {
|
||||||
picwall: './assets/common/js/picwall.js',
|
thumbnails: './assets/common/js/thumbnails.js',
|
||||||
pluginsadmin: './assets/default/js/plugins-admin.js',
|
pluginsadmin: './assets/default/js/plugins-admin.js',
|
||||||
shaarli: [
|
shaarli: [
|
||||||
'./assets/default/js/base.js',
|
'./assets/default/js/base.js',
|
||||||
|
@ -96,7 +96,7 @@ module.exports = [
|
||||||
'./assets/vintage/css/reset.css',
|
'./assets/vintage/css/reset.css',
|
||||||
'./assets/vintage/css/shaarli.css',
|
'./assets/vintage/css/shaarli.css',
|
||||||
].concat(glob.sync('./assets/vintage/img/*')),
|
].concat(glob.sync('./assets/vintage/img/*')),
|
||||||
picwall: './assets/common/js/picwall.js',
|
thumbnails: './assets/common/js/thumbnails.js',
|
||||||
},
|
},
|
||||||
output: {
|
output: {
|
||||||
filename: '[name].min.js',
|
filename: '[name].min.js',
|
||||||
|
|
Loading…
Reference in a new issue