]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/SphinxSearch/sphinxsearch.php
Localisation updates from http://translatewiki.net.
[quix0rs-gnu-social.git] / plugins / SphinxSearch / sphinxsearch.php
index 654b9c9d5beada8e83664c7a3a3138310e50466f..46b5e3e28aa58830a599cb4e3a5e8b337c29e5a3 100644 (file)
@@ -73,9 +73,39 @@ class SphinxSearch extends SearchEngine
 
     function set_sort_mode($mode)
     {
-        if ('chron' === $mode) {
+        switch ($mode) {
+        case 'chron':
             $this->sphinx->SetSortMode(SPH_SORT_ATTR_DESC, 'created_ts');
             return $this->target->orderBy('id desc');
+            break;
+        case 'reverse_chron':
+            $this->sphinx->SetSortMode(SPH_SORT_ATTR_ASC, 'created_ts');
+            return $this->target->orderBy('id asc');
+            break;
+        case 'nickname_desc':
+            if ($this->table != 'profile') {
+                throw new Exception(
+                    'nickname_desc sort mode can only be use when searching profile.'
+                );
+            } else {
+                $this->sphinx->SetSortMode(SPH_SORT_ATTR_DESC, 'nickname');
+                return $this->target->orderBy('id desc');
+            }
+            break;
+        case 'nickname_asc':
+            if ($this->table != 'profile') {
+                throw new Exception(
+                    'nickname_desc sort mode can only be use when searching profile.'
+                );
+            } else {
+                $this->sphinx->SetSortMode(SPH_SORT_ATTR_ASC, 'nickname');
+                return $this->target->orderBy('id asc');
+            }
+            break;
+        default:
+            $this->sphinx->SetSortMode(SPH_SORT_ATTR_DESC, 'created_ts');
+            return $this->target->orderBy('id desc');
+            break;
         }
     }
 
@@ -91,6 +121,8 @@ class SphinxSearch extends SearchEngine
         if (preg_match('!^.*?://.*?:.*?@.*?/(.*?)$!', common_config('db', 'database'), $matches)) {
             return $matches[1];
         }
-        throw new ServerException("Sphinx search could not identify database name");
+
+        // TRANS: Server exception thrown when a database name cannot be identified.
+        throw new ServerException(_m("Sphinx search could not identify database name."));
     }
 }