]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/peoplesearch.php
trac685 Twitter bridge - Shell script to sync all users' Twitter friends
[quix0rs-gnu-social.git] / actions / peoplesearch.php
index 323065d7a9520b35136be10801aa0d4b62dd1e6d..4e0ec3f0c41d3db8baf61156908096e600222a4e 100644 (file)
@@ -20,7 +20,7 @@
 if (!defined('LACONICA')) { exit(1); }
 
 require_once(INSTALLDIR.'/lib/searchaction.php');
-define(PROFILES_PER_PAGE, 10);
+define('PROFILES_PER_PAGE', 10);
 
 class PeoplesearchAction extends SearchAction {
 
@@ -39,8 +39,13 @@ class PeoplesearchAction extends SearchAction {
 
                # lcase it for comparison
                $q = strtolower($q);
-               $profile->whereAdd('MATCH(nickname, fullname, location, bio, homepage) ' .
+
+               if(common_config('db','type')=='mysql') {
+                       $profile->whereAdd('MATCH(nickname, fullname, location, bio, homepage) ' .
                                                   'against (\''.addslashes($q).'\')');
+               } else {
+                       $profile->whereAdd('textsearch @@ plainto_tsquery(\''.addslashes($q).'\')');
+               }
 
                # Ask for an extra to see if there's more.
 
@@ -115,7 +120,8 @@ class PeoplesearchAction extends SearchAction {
        }
 
        function highlight($text, $terms) {
-               $pattern = '/('.implode('|',array_map('htmlspecialchars', $terms)).')/i';
+               $terms = array_map('preg_quote', array_map('htmlspecialchars', $terms));
+               $pattern = '/('.implode('|',$terms).')/i';
                $result = preg_replace($pattern, '<strong>\\1</strong>', htmlspecialchars($text));
                return $result;
        }