]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - index.php
Merge pull request #470 from ArthurHoaro/description-trim
[github/shaarli/Shaarli.git] / index.php
index 5de60425c4c8bdadecdad5163918a5491c24d16c..b44cd555f086ab75f37097048678b8e191cfef43 100644 (file)
--- a/index.php
+++ b/index.php
@@ -1229,11 +1229,25 @@ function renderPage()
 
         // We sort tags alphabetically, then choose a font size according to count.
         // First, find max value.
-        $maxcount=0; foreach($tags as $key=>$value) $maxcount=max($maxcount,$value);
-        ksort($tags);
+        $maxcount = 0;
+        foreach ($tags as $value) {
+            $maxcount = max($maxcount, $value);
+        }
+
+        // Sort tags alphabetically: case insensitive, support locale if avalaible.
+        uksort($tags, function($a, $b) {
+            // Collator is part of PHP intl.
+            if (class_exists('Collator')) {
+                $c = new Collator(setlocale(LC_ALL, 0));
+                return $c->compare($a, $b);
+            } else {
+                return strcasecmp($a, $b);
+            }
+        });
+
         $tagList=array();
         foreach($tags as $key=>$value)
-       // Tag font size scaling: default 15 and 30 logarithm bases affect scaling, 22 and 6 are arbitrary font sizes for max and min sizes.
+        // Tag font size scaling: default 15 and 30 logarithm bases affect scaling, 22 and 6 are arbitrary font sizes for max and min sizes.
         {
             $tagList[$key] = array('count'=>$value,'size'=>log($value, 15) / log($maxcount, 30) * (22-6) + 6);
         }
@@ -1558,6 +1572,8 @@ function renderPage()
         }
         // Remove multiple spaces.
         $tags = trim(preg_replace('/\s\s+/', ' ', $_POST['lf_tags']));
+        // Remove first '-' char in tags.
+        $tags = preg_replace('/(^| )\-/', '$1', $tags);
         // Remove duplicates.
         $tags = implode(' ', array_unique(explode(' ', $tags)));
         $linkdate = $_POST['lf_linkdate'];
@@ -1572,7 +1588,7 @@ function renderPage()
         $link = array(
             'title' => trim($_POST['lf_title']),
             'url' => $url,
-            'description' => trim($_POST['lf_description']),
+            'description' => $_POST['lf_description'],
             'private' => (isset($_POST['lf_private']) ? 1 : 0),
             'linkdate' => $linkdate,
             'tags' => str_replace(',', ' ', $tags)
@@ -1858,7 +1874,7 @@ HTML;
             );
 
             // TODO: do not handle exceptions/errors in JS.
-            echo '<script>alert("'. $e->getMessage() .'");document.location=\'?do=pluginsadmin\';</script>';
+            echo '<script>alert("'. $e->getMessage() .'");document.location=\'?do='. Router::$PAGE_PLUGINSADMIN .'\';</script>';
             exit;
         }
         header('Location: ?do='. Router::$PAGE_PLUGINSADMIN);