]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/search_engines.php
Merge remote-tracking branch 'upstream/master' into social-master
[quix0rs-gnu-social.git] / lib / search_engines.php
index 7f1684a3e756b0a2cd7ea3b4ba79970bb4486915..c33a786d8e9d80b7d6a34eada1e03c1e7d3398cc 100644 (file)
@@ -54,7 +54,7 @@ class SearchEngine
                     'nickname_desc sort mode can only be use when searching profile.'
                 );
             } else {
-                return $this->target->orderBy('nickname DESC');
+                return $this->target->orderBy(sprintf('%1$s.nickname DESC', $this->table));
             }
             break;
         case 'nickname_asc':
@@ -63,7 +63,7 @@ class SearchEngine
                     'nickname_desc sort mode can only be use when searching profile.'
                 );
             } else {
-                return $this->target->orderBy('nickname ASC');
+                return $this->target->orderBy(sprintf('%1$s.nickname ASC', $this->table));
             }
             break;
         default:
@@ -84,7 +84,6 @@ class MySQLSearch extends SearchEngine
                 $this->target->whereAdd('MATCH(nickname, fullname, location, bio, homepage) ' .
                                         'AGAINST (\''.$this->target->escape(strtolower($q)).'\' IN BOOLEAN MODE)', 'OR');
             }
-            return true;
         } else if ('notice' === $this->table) {
 
             // Don't show imported notices
@@ -100,10 +99,11 @@ class MySQLSearch extends SearchEngine
                                          'AGAINST (\''.$this->target->escape($q).'\' IN BOOLEAN MODE)');
             }
 
-            return true;
         } else {
             throw new ServerException('Unknown table: ' . $this->table);
         }
+
+        return true;
     }
 }
 
@@ -112,11 +112,13 @@ class MySQLLikeSearch extends SearchEngine
     function query($q)
     {
         if ('profile' === $this->table) {
-            $qry = sprintf('(nickname LIKE "%%%1$s%%" OR '.
-                           ' fullname LIKE "%%%1$s%%" OR '.
-                           ' location LIKE "%%%1$s%%" OR '.
-                           ' bio      LIKE "%%%1$s%%" OR '.
-                           ' homepage LIKE "%%%1$s%%")', $this->target->escape($q, true));
+            $qry = sprintf('(%2$s.nickname LIKE "%%%1$s%%" OR '.
+                            ' %2$s.fullname LIKE "%%%1$s%%" OR '.
+                            ' %2$s.location LIKE "%%%1$s%%" OR '.
+                            ' %2$s.bio      LIKE "%%%1$s%%" OR '.
+                            ' %2$s.homepage LIKE "%%%1$s%%")',
+                           $this->target->escape($q, true),
+                           $this->table);
         } else if ('notice' === $this->table) {
             $qry = sprintf('content LIKE "%%%1$s%%"', $this->target->escape($q, true));
         } else {