]> git.immae.eu Git - github/shaarli/Shaarli.git/commitdiff
Merge pull request #1020 from ArthurHoaro/feature/curl-chunk
authorArthurHoaro <arthur@hoa.ro>
Sun, 26 Nov 2017 10:34:44 +0000 (11:34 +0100)
committerGitHub <noreply@github.com>
Sun, 26 Nov 2017 10:34:44 +0000 (11:34 +0100)
Increase buffer size for cURL download

Makefile
application/SessionManager.php
application/Updater.php
doc/md/Download-and-Installation.md
doc/md/Unit-tests.md
inc/languages/fr/LC_MESSAGES/shaarli.po
tests/SessionManagerTest.php
tests/utils/FakeConfigManager.php [new file with mode: 0644]
tpl/default/img/apple-touch-icon.png [new file with mode: 0644]
tpl/default/includes.html
tpl/default/pluginsadmin.html

index c2d5594605943f87e16da7dee295acfff5e074ab..d659d908e45aad561638d8f7617b30b3ed51c35a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,17 +1,6 @@
 # The personal, minimalist, super-fast, database free, bookmarking service.
 # Makefile for PHP code analysis & testing, documentation and release generation
 
-# Prerequisites:
-# - install Composer, either:
-#   - from your distro's package manager;
-#   - from the official website (https://getcomposer.org/download/);
-# - install/update test dependencies:
-#   $ composer install  # 1st setup
-#   $ composer update
-# - install Xdebug for PHPUnit code coverage reports:
-#   - see http://xdebug.org/docs/install
-#   - enable in php.ini
-
 BIN = vendor/bin
 PHP_SOURCE = index.php application tests plugins
 PHP_COMMA_SOURCE = index.php,application,tests,plugins
index 3aa4ddfc7be9f80866538f0f73f4512beaf52af8..71f0b38dc227e38e2a9022a5c6c7a417060db935 100644 (file)
@@ -12,12 +12,12 @@ class SessionManager
      * Constructor
      *
      * @param array         $session The $_SESSION array (reference)
-     * @param ConfigManager $conf    ConfigManager instance (reference)
+     * @param ConfigManager $conf    ConfigManager instance
      */
-    public function __construct(& $session, $conf)
+    public function __construct(& $session, $conf)
     {
         $this->session = &$session;
-        $this->conf = &$conf;
+        $this->conf = $conf;
     }
 
     /**
index bc859536f61a846d9a5923e03f35ea33e9fae77d..8d2bd577d1a27c3f60588f9949f4ab5a311da433 100644 (file)
@@ -443,6 +443,7 @@ class Updater
     public function updateMethodReorderDatastore()
     {
         $this->linkDB->save($this->conf->get('resource.page_cache'));
+        return true;
     }
 }
 
index be848c97e9ab44f8629b5ffbeb2ad69d82c67b31..e64d1a43e25b55c4d53e64579e625335eb02b2b4 100644 (file)
@@ -17,40 +17,44 @@ Using one of the following methods:
 - by cloning the Git repository
 - using Docker: [see the documentation](docker/shaarli-images)
 
----
+--------------------------------------------------------------------------------
 
 ## Latest release (recommended)
+
 ### Download as an archive
-Get the latest released version from the [releases](https://github.com/shaarli/Shaarli/releases) page.
 
-**Download our *shaarli-full* archive** to include dependencies.
+In most cases, you should download the latest Shaarli release from the [releases](https://github.com/shaarli/Shaarli/releases) page. **Download our *shaarli-full* archive** to include dependencies.
 
 The current latest released version is `v0.9.1`
 
-Or in command lines:
-
 ```bash
 $ wget https://github.com/shaarli/Shaarli/releases/download/v0.9.1/shaarli-v0.9.1-full.zip
 $ unzip shaarli-v0.9.1-full.zip
 $ mv Shaarli /path/to/shaarli/
 ```
 
-In most cases, download Shaarli from the [releases](https://github.com/shaarli/Shaarli/releases) page. 
-Cloning using `git` or downloading Github branches as zip files requires additional steps (see below).
-
 ### Using git
 
+Cloning using `git` or downloading Github branches as zip files requires additional steps:
+
+ * Install [Composer](Unit-tests.md#install_composer) to manage Shaarli dependencies.
+ * Install [python3-virtualenv](https://pypi.python.org/pypi/virtualenv) to build the local HTML documentation.
+
 ```
 $ mkdir -p /path/to/shaarli && cd /path/to/shaarli/
 $ git clone -b latest https://github.com/shaarli/Shaarli.git .
 $ composer install --no-dev --prefer-dist
 $ make translate
+$ make htmldoc
 ```
 
+--------------------------------------------------------------------------------
+
 ## Stable version
 
 The stable version has been experienced by Shaarli users, and will receive security updates.
 
+
 ### Download as an archive
 
 As a .zip archive:
@@ -69,9 +73,9 @@ $ tar xvf stable.tar.gz
 $ mv Shaarli-stable /path/to/shaarli/
 ```
 
-### Clone with Git 
+### Using git
 
-[Composer](https://getcomposer.org/) is required to build a functional Shaarli installation when pulling from git.
+Install [Composer](Unit-tests.md#install_composer) to manage Shaarli dependencies.
 
 ```bash
 $ git clone https://github.com/shaarli/Shaarli.git -b stable /path/to/shaarli/
@@ -80,10 +84,15 @@ $ cd /path/to/shaarli/
 $ composer install --no-dev --prefer-dist
 ```
 
+
+--------------------------------------------------------------------------------
+
 ## Development version (mainline)
 
 _Use at your own risk!_
 
+Install [Composer](Unit-tests.md#install_composer) to manage Shaarli dependencies.
+
 To get the latest changes from the `master` branch:
 
 ```bash
@@ -93,8 +102,11 @@ $ git clone https://github.com/shaarli/Shaarli.git -b master /path/to/shaarli/
 $ cd /path/to/shaarli
 $ composer install --no-dev --prefer-dist
 $ make translate
+$ make htmldoc
 ```
 
+-------------------------------------------------------------------------------
+
 ## Finish Installation
 
 Once Shaarli is downloaded and files have been placed at the correct location, open it this location your favorite browser.
index d200634f6ea6513ff5094abc7971e0752cd2b543..f6030d5c2f6134848b58ed8987f1458c8dd4df23 100644 (file)
@@ -2,12 +2,12 @@
 
 The framework used is [PHPUnit](https://phpunit.de/); it can be installed with [Composer](https://getcomposer.org/), which is a dependency management tool.
 
-Regarding Composer, you can either use:
+### Install composer
 
-- a system-wide version, e.g. installed through your distro's package manager
-- a local version, downloadable [here](https://getcomposer.org/download/)
+You can either use:
 
-#### Sample usage
+- a system-wide version, e.g. installed through your distro's package manager
+- a local version, downloadable [here](https://getcomposer.org/download/).
 
 ```bash
 # system-wide version
@@ -29,6 +29,8 @@ $ composer update
 
 #### Install and enable Xdebug to generate PHPUnit coverage reports
 
+See http://xdebug.org/docs/install
+
 For Debian-based distros:
 ```bash
 $ aptitude install php5-xdebug
index 6b2de950a095f9b39325e304de014c608ae5c8c2..323c6111ed793681084d19059c2458c8ba62d959 100644 (file)
@@ -1,8 +1,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Shaarli\n"
-"POT-Creation-Date: 2017-10-22 13:13+0200\n"
-"PO-Revision-Date: 2017-10-22 13:14+0200\n"
+"POT-Creation-Date: 2017-11-11 10:59+0100\n"
+"PO-Revision-Date: 2017-11-11 11:00+0100\n"
 "Last-Translator: \n"
 "Language-Team: Shaarli\n"
 "Language: fr_FR\n"
@@ -161,11 +161,11 @@ msgstr ""
 "a été importé avec succès en %d secondes : %d liens importés, %d liens "
 "écrasés, %d liens ignorés."
 
-#: application/PageBuilder.php:165
+#: application/PageBuilder.php:167
 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."
 
-#: application/PageBuilder.php:167
+#: application/PageBuilder.php:169
 msgid "404 Not Found"
 msgstr "404 Introuvable"
 
@@ -178,44 +178,44 @@ msgstr "Les fichiers de l'extension \"%s\" sont introuvables."
 msgid "Couldn't retrieve Updater class methods."
 msgstr "Impossible de récupérer les méthodes de la classe Updater."
 
-#: application/Updater.php:485
+#: application/Updater.php:493
 msgid "An error occurred while running the update "
 msgstr "Une erreur s'est produite lors de l'exécution de la mise à jour "
 
-#: application/Updater.php:525
+#: application/Updater.php:533
 msgid "Updates file path is not set, can't write updates."
 msgstr ""
 "Le chemin vers le fichier de mise à jour n'est pas défini, impossible "
 "d'écrire les mises à jour."
 
-#: application/Updater.php:530
+#: application/Updater.php:538
 msgid "Unable to write updates in "
 msgstr "Impossible d'écrire les mises à jour dans "
 
-#: application/Utils.php:406 tests/UtilsTest.php:398
+#: application/Utils.php:376 tests/UtilsTest.php:340
 msgid "Setting not set"
 msgstr "Paramètre non défini"
 
-#: application/Utils.php:413 tests/UtilsTest.php:396 tests/UtilsTest.php:397
+#: application/Utils.php:383 tests/UtilsTest.php:338 tests/UtilsTest.php:339
 msgid "Unlimited"
 msgstr "Illimité"
 
-#: application/Utils.php:416 tests/UtilsTest.php:393 tests/UtilsTest.php:394
-#: tests/UtilsTest.php:408
+#: application/Utils.php:386 tests/UtilsTest.php:335 tests/UtilsTest.php:336
+#: tests/UtilsTest.php:350
 msgid "B"
 msgstr "o"
 
-#: application/Utils.php:416 tests/UtilsTest.php:387 tests/UtilsTest.php:388
-#: tests/UtilsTest.php:395
+#: application/Utils.php:386 tests/UtilsTest.php:329 tests/UtilsTest.php:330
+#: tests/UtilsTest.php:337
 msgid "kiB"
 msgstr "ko"
 
-#: application/Utils.php:416 tests/UtilsTest.php:389 tests/UtilsTest.php:390
-#: tests/UtilsTest.php:406 tests/UtilsTest.php:407
+#: application/Utils.php:386 tests/UtilsTest.php:331 tests/UtilsTest.php:332
+#: tests/UtilsTest.php:348 tests/UtilsTest.php:349
 msgid "MiB"
 msgstr "Mo"
 
-#: application/Utils.php:416 tests/UtilsTest.php:391 tests/UtilsTest.php:392
+#: application/Utils.php:386 tests/UtilsTest.php:333 tests/UtilsTest.php:334
 msgid "GiB"
 msgstr "Go"
 
@@ -249,62 +249,62 @@ msgstr "Vous n'êtes pas autorisé à modifier la configuration."
 msgid "Error accessing"
 msgstr "Une erreur s'est produite en accédant à"
 
-#: index.php:133
+#: index.php:135
 msgid "Shared links on "
 msgstr "Liens partagés sur "
 
-#: index.php:155
+#: index.php:157
 msgid "Insufficient permissions:"
 msgstr "Permissions insuffisantes :"
 
-#: index.php:382
+#: index.php:384
 msgid "I said: NO. You are banned for the moment. Go away."
 msgstr "NON. Vous êtes banni pour le moment. Revenez plus tard."
 
-#: index.php:447
+#: index.php:449
 msgid "Wrong login/password."
 msgstr "Nom d'utilisateur ou mot de passe incorrects."
 
-#: index.php:1107
+#: index.php:1092
 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:1112 index.php:1153 index.php:1229 index.php:1259 index.php:1359
+#: index.php:1097 index.php:1138 index.php:1214 index.php:1244 index.php:1344
 msgid "Wrong token."
 msgstr "Jeton invalide."
 
-#: index.php:1117
+#: index.php:1102
 msgid "The old password is not correct."
 msgstr "L'ancien mot de passe est incorrect."
 
-#: index.php:1137
+#: index.php:1122
 msgid "Your password has been changed"
 msgstr "Votre mot de passe a été modifié"
 
-#: index.php:1190
+#: index.php:1175
 msgid "Configuration was saved."
 msgstr "La configuration a été sauvegardé."
 
-#: index.php:1241
+#: index.php:1226
 #, 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:1242
+#: index.php:1227
 #, 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:1458
+#: index.php:1443
 msgid "Note: "
 msgstr "Note : "
 
-#: index.php:1567
+#: index.php:1552
 #, php-format
 msgid ""
 "The file you are trying to upload is probably bigger than what this "
@@ -314,7 +314,7 @@ msgstr ""
 "le serveur web peut accepter (%s). Merci de l'envoyer en parties plus "
 "légères."
 
-#: index.php:1983
+#: index.php:1972
 #, php-format
 msgid ""
 "<pre>Sessions do not seem to work correctly on your server.<br>Make sure the "
@@ -333,7 +333,7 @@ msgstr ""
 "cookies. Nous vous recommandons d'accéder à votre serveur depuis son adresse "
 "IP ou un <em>Fully Qualified Domain Name</em>.<br>"
 
-#: index.php:1993
+#: index.php:1982
 msgid "Click to try again."
 msgstr "Cliquer ici pour réessayer."
 
@@ -608,84 +608,72 @@ msgstr "Continent"
 msgid "City"
 msgstr "Ville"
 
-#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:163
-msgid "Redirector"
-msgstr "Redirecteur"
-
-#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:164
-msgid "e. g."
-msgstr "ex :"
-
 #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:164
-msgid "will mask the HTTP_REFERER"
-msgstr "masque le HTTP_REFERER"
-
-#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:179
 msgid "Disable session cookie hijacking protection"
 msgstr "Désactiver la protection contre le détournement de cookies"
 
-#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:181
+#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:166
 msgid "Check this if you get disconnected or if your IP address changes often"
 msgstr ""
 "Cocher cette case si vous êtes souvent déconnecté ou si votre adresse IP "
 "change souvent"
 
-#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:198
+#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:183
 msgid "Private links by default"
 msgstr "Liens privés par défaut"
 
-#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:199
+#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:184
 msgid "All new links are private by default"
 msgstr "Tous les nouveaux liens sont privés par défaut"
 
-#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:214
+#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:199
 msgid "RSS direct links"
 msgstr "Liens directs dans le flux RSS"
 
-#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:215
+#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:200
 msgid "Check this to use direct URL instead of permalink in feeds"
 msgstr ""
 "Cocher cette case pour utiliser des liens directs au lieu des permaliens "
 "dans le flux RSS"
 
-#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:230
+#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:215
 msgid "Hide public links"
 msgstr "Cacher les liens publics"
 
-#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:231
+#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:216
 msgid "Do not show any links if the user is not logged in"
 msgstr "N'afficher aucun lien sans être connecté"
 
-#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:246
+#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:231
 #: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:150
 msgid "Check updates"
 msgstr "Vérifier les mises à jour"
 
-#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:247
+#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:232
 #: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:152
 msgid "Notify me when a new release is ready"
 msgstr "Me notifier lorsqu'une nouvelle version est disponible"
 
-#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:262
+#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:247
 #: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:169
 msgid "Enable REST API"
 msgstr "Activer l'API REST"
 
-#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:263
+#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:248
 #: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:170
 msgid "Allow third party software to use Shaarli such as mobile application"
 msgstr ""
 "Permets aux applications tierces d'utiliser Shaarli, par exemple les "
 "applications mobiles"
 
-#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:278
+#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:263
 msgid "API secret"
 msgstr "Clé d'API secrète"
 
-#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:289
+#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:274
 #: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:74
 #: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:139
-#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:192
+#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:199
 msgid "Save"
 msgstr "Enregistrer"
 
@@ -1130,6 +1118,10 @@ msgstr "dans la documentation"
 msgid "Plugin configuration"
 msgstr "Configuration des extensions"
 
+#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:195
+msgid "No parameter available."
+msgstr "Aucun paramètre disponible."
+
 #: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:19
 #: tmp/tag.list.b91ef64efc3688266305ea9b42e5017e.rtpl.php:19
 msgid "tags"
@@ -1292,6 +1284,15 @@ msgstr ""
 "Glisser ce lien dans votre barre de favoris ou cliquer droit dessus et « "
 "Ajouter aux favoris »"
 
+#~ msgid "Redirector"
+#~ msgstr "Redirecteur"
+
+#~ msgid "e. g."
+#~ msgstr "ex :"
+
+#~ msgid "will mask the HTTP_REFERER"
+#~ msgstr "masque le HTTP_REFERER"
+
 #~ msgid ""
 #~ "An error occurred while parsing JSON configuration file (%s): error code #"
 #~ "%d"
index a92c3cccc131c309882c2bda689a3baa507aa148..aa75962a4994929155c8da5ee2e48e85bb07fc18 100644 (file)
@@ -1,4 +1,6 @@
 <?php
+require_once 'tests/utils/FakeConfigManager.php';
+
 // Initialize reference data _before_ PHPUnit starts a session
 require_once 'tests/utils/ReferenceSessionIdHashes.php';
 ReferenceSessionIdHashes::genAllHashes();
@@ -7,18 +9,6 @@ use \Shaarli\SessionManager;
 use \PHPUnit\Framework\TestCase;
 
 
-/**
- * Fake ConfigManager
- */
-class FakeConfigManager
-{
-    public static function get($key)
-    {
-        return $key;
-    }
-}
-
-
 /**
  * Test coverage for SessionManager
  */
@@ -27,12 +17,16 @@ class SessionManagerTest extends TestCase
     // Session ID hashes
     protected static $sidHashes = null;
 
+    // Fake ConfigManager
+    protected static $conf = null;
+
     /**
      * Assign reference data
      */
     public static function setUpBeforeClass()
     {
         self::$sidHashes = ReferenceSessionIdHashes::getHashes();
+        self::$conf = new FakeConfigManager();
     }
 
     /**
@@ -41,8 +35,7 @@ class SessionManagerTest extends TestCase
     public function testGenerateToken()
     {
         $session = [];
-        $conf = new FakeConfigManager();
-        $sessionManager = new SessionManager($session, $conf);
+        $sessionManager = new SessionManager($session, self::$conf);
 
         $token = $sessionManager->generateToken();
 
@@ -61,9 +54,7 @@ class SessionManagerTest extends TestCase
                 $token => 1,
             ],
         ];
-        $conf = new FakeConfigManager();
-        $sessionManager = new SessionManager($session, $conf);
-
+        $sessionManager = new SessionManager($session, self::$conf);
 
         // check and destroy the token
         $this->assertTrue($sessionManager->checkToken($token));
@@ -79,8 +70,7 @@ class SessionManagerTest extends TestCase
     public function testGenerateAndCheckToken()
     {
         $session = [];
-        $conf = new FakeConfigManager();
-        $sessionManager = new SessionManager($session, $conf);
+        $sessionManager = new SessionManager($session, self::$conf);
 
         $token = $sessionManager->generateToken();
 
@@ -102,8 +92,7 @@ class SessionManagerTest extends TestCase
     public function testCheckInvalidToken()
     {
         $session = [];
-        $conf = new FakeConfigManager();
-        $sessionManager = new SessionManager($session, $conf);
+        $sessionManager = new SessionManager($session, self::$conf);
 
         $this->assertFalse($sessionManager->checkToken('4dccc3a45ad9d03e5542b90c37d8db6d10f2b38b'));
     }
diff --git a/tests/utils/FakeConfigManager.php b/tests/utils/FakeConfigManager.php
new file mode 100644 (file)
index 0000000..f29760c
--- /dev/null
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * Fake ConfigManager
+ */
+class FakeConfigManager
+{
+    public static function get($key)
+    {
+        return $key;
+    }
+}
diff --git a/tpl/default/img/apple-touch-icon.png b/tpl/default/img/apple-touch-icon.png
new file mode 100644 (file)
index 0000000..f29210c
Binary files /dev/null and b/tpl/default/img/apple-touch-icon.png differ
index 80c083331d10a31dced6a4188cfa3f858fbf5397..b2bfec30918281104cacf6c50cae5441fcc26903 100644 (file)
@@ -5,6 +5,7 @@
 <link rel="alternate" type="application/atom+xml" href="{$feedurl}?do=atom{$searchcrits}#" title="ATOM Feed" />
 <link rel="alternate" type="application/rss+xml" href="{$feedurl}?do=rss{$searchcrits}#" title="RSS Feed" />
 <link href="img/favicon.png" rel="shortcut icon" type="image/png" />
+<link href="img/apple-touch-icon.png" rel="apple-touch-icon" sizes="180x180" />
 <link type="text/css" rel="stylesheet" href="css/pure.min.css?v={$version_hash}" />
 <link type="text/css" rel="stylesheet" href="css/grids-responsive.min.css?v={$version_hash}">
 <link type="text/css" rel="stylesheet" href="css/pure-extras.css?v={$version_hash}">
@@ -17,4 +18,4 @@
 {loop="$plugins_includes.css_files"}
   <link type="text/css" rel="stylesheet" href="{$value}?v={$version_hash}#"/>
 {/loop}
-<link rel="search" type="application/opensearchdescription+xml" href="?do=opensearch#" title="Shaarli search - {$shaarlititle}"/>
\ No newline at end of file
+<link rel="search" type="application/opensearchdescription+xml" href="?do=opensearch#" title="Shaarli search - {$shaarlititle}"/>
index 717cb517dfafde4021b697dd697eb3cba957bef7..ca17b435cd3fdff42cca0d5d1b65269ca406ce6b 100644 (file)
@@ -27,7 +27,7 @@
 
         <div>
           {if="count($enabledPlugins)==0"}
-          <p>{'No plugin enabled.'|t}</p>
+            <p class="center">{'No plugin enabled.'|t}</p>
           {else}
           <table id="plugin_table">
             <thead>
@@ -77,7 +77,7 @@
 
         <div>
           {if="count($disabledPlugins)==0"}
-          <p>{'No plugin disabled.'|t}</p>
+            <p class="center">{'No plugin disabled.'|t}</p>
           {else}
           <table>
             <thead>
       <section id="plugin_parameters">
         <div>
           {if="count($enabledPlugins)==0"}
-            <p>{'No plugin enabled.'|t}</p>
+            <p class="center">{'No plugin enabled.'|t}</p>
           {else}
+            {$counter=0}
             {loop="$enabledPlugins"}
+              {$counter=$counter+count($value.parameters)}
               {if="count($value.parameters) > 0"}
                 <div class="plugin_parameters">
                   <h3 class="window-subtitle">{function="str_replace('_', ' ', $key)"}</h3>
                 </div>
               {/if}
             {/loop}
+            {if="$counter===0"}
+              <p class="center">{'No parameter available.'|t}</p>
+            {else}
+              <div class="center">
+                <input type="submit" name="parameters_form" value="{'Save'|t}"/>
+              </div>
+            {/if}
           {/if}
-          <div class="center">
-            <input type="submit" name="parameters_form" value="{'Save'|t}"/>
-          </div>
         </div>
       </section>
     </div>