]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/noticesearchrss.php
trac750 Add prefix string option in Facebook app for notice sync
[quix0rs-gnu-social.git] / actions / noticesearchrss.php
index 482fe6db9f85995ceaad7bb5347a23c9708a09dd..20fe0ff2abddfe337ef78b00d7028e6dbecb98a5 100644 (file)
@@ -23,51 +23,53 @@ require_once(INSTALLDIR.'/lib/rssaction.php');
 
 // Formatting of RSS handled by Rss10Action
 
-class NoticesearchrssAction extends Rss10Action {
+class NoticesearchrssAction extends Rss10Action
+{
 
-       function init() {
-               return true;
-       }
-       
-       function get_notices($limit=0) {
+    function init()
+    {
+        return true;
+    }
 
-               $q = $this->trimmed('q');
-               $notices = array();
-               
-               $notice = new Notice();
+    function get_notices($limit=0)
+    {
 
-               # lcase it for comparison
-               $q = strtolower($q);
-               
-               $notice->whereAdd('MATCH(content) against (\''.addslashes($q).'\')');
-               $notice->orderBy('created DESC');
-               
-               # Ask for an extra to see if there's more.
-               
-               if ($limit != 0) {
-                       $notice->limit(0, $limit);
-               }
+        $q = $this->trimmed('q');
+        $notices = array();
 
-               $notice->find();
-               
-               while ($notice->fetch()) {
-                       $notices[] = clone($notice);
-               }
-               
-               return $notices;
-       }
-       
-       function get_channel() {
-               global $config;
-               $q = $this->trimmed('q');
-               $c = array('url' => common_local_url('noticesearchrss', array('q' => $q)),
-                                  'title' => $config['site']['name'] . sprintf(_(' Search Stream for "%s"'), $q),
-                                  'link' => common_local_url('noticesearch', array('q' => $q)),
-                                  'description' => sprintf(_('All updates matching search term "%s"'), $q));
-               return $c;
-       }
-       
-       function get_image() {
-               return NULL;
-       }
-}
\ No newline at end of file
+        $notice = new Notice();
+
+        # lcase it for comparison
+        $q = strtolower($q);
+
+        $search_engine = $notice->getSearchEngine('identica_notices');
+        $search_engine->set_sort_mode('chron');
+
+        if (!$limit) $limit = 20;
+        $search_engine->limit(0, $limit, true);
+        $search_engine->query($q);
+        $notice->find();
+
+        while ($notice->fetch()) {
+            $notices[] = clone($notice);
+        }
+
+        return $notices;
+    }
+
+    function get_channel()
+    {
+        global $config;
+        $q = $this->trimmed('q');
+        $c = array('url' => common_local_url('noticesearchrss', array('q' => $q)),
+                   'title' => $config['site']['name'] . sprintf(_(' Search Stream for "%s"'), $q),
+                   'link' => common_local_url('noticesearch', array('q' => $q)),
+                   'description' => sprintf(_('All updates matching search term "%s"'), $q));
+        return $c;
+    }
+
+    function get_image()
+    {
+        return null;
+    }
+}