]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/noticesearchrss.php
Merge branch 'master' of gitorious.org:statusnet/mainline
[quix0rs-gnu-social.git] / actions / noticesearchrss.php
index 20fe0ff2abddfe337ef78b00d7028e6dbecb98a5..a59e7b99becfdb54b3fa2ca18476a7fee2b6b06f 100644 (file)
@@ -1,7 +1,18 @@
 <?php
-/*
- * Laconica - a distributed open-source microblogging tool
- * Copyright (C) 2008, Controlez-Vous, Inc.
+/**
+ * RSS feed for notice search action class.
+ *
+ * PHP version 5
+ *
+ * @category Action
+ * @package  StatusNet
+ * @author   Evan Prodromou <evan@status.net>
+ * @author   Robin Millette <millette@status.net>
+ * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
+ * @link     http://status.net/
+ *
+ * StatusNet - the distributed open-source microblogging tool
+ * Copyright (C) 2008, 2009, StatusNet, Inc.
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as published by
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-if (!defined('LACONICA')) { exit(1); }
-
-require_once(INSTALLDIR.'/lib/rssaction.php');
+if (!defined('STATUSNET') && !defined('LACONICA')) {
+    exit(1);
+}
 
-// Formatting of RSS handled by Rss10Action
+require_once INSTALLDIR.'/lib/rssaction.php';
 
+/**
+ * RSS feed for notice search action class.
+ *
+ * Formatting of RSS handled by Rss10Action
+ *
+ * @category Action
+ * @package  StatusNet
+ * @author   Evan Prodromou <evan@status.net>
+ * @author   Robin Millette <millette@status.net>
+ * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
+ * @link     http://status.net/
+ */
 class NoticesearchrssAction extends Rss10Action
 {
 
@@ -30,8 +53,15 @@ class NoticesearchrssAction extends Rss10Action
     {
         return true;
     }
+    
+    function prepare($args)
+    {
+        parent::prepare($args);
+        $this->notices = $this->getNotices();
+        return true;
+    }
 
-    function get_notices($limit=0)
+    function getNotices($limit=0)
     {
 
         $q = $this->trimmed('q');
@@ -39,37 +69,44 @@ class NoticesearchrssAction extends Rss10Action
 
         $notice = new Notice();
 
-        # lcase it for comparison
-        $q = strtolower($q);
-
-        $search_engine = $notice->getSearchEngine('identica_notices');
+        $search_engine = $notice->getSearchEngine('notice');
         $search_engine->set_sort_mode('chron');
 
         if (!$limit) $limit = 20;
         $search_engine->limit(0, $limit, true);
-        $search_engine->query($q);
-        $notice->find();
+        if (false === $search_engine->query($q)) {
+            $cnt = 0;
+        } else {
+            $cnt = $notice->find();
+        }
 
-        while ($notice->fetch()) {
-            $notices[] = clone($notice);
+        if ($cnt > 0) {
+            while ($notice->fetch()) {
+                $notices[] = clone($notice);
+            }
         }
 
         return $notices;
     }
 
-    function get_channel()
+    function getChannel()
     {
-        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),
+                   'title' => sprintf(_('Updates with "%s"'), $q),
                    'link' => common_local_url('noticesearch', array('q' => $q)),
-                   'description' => sprintf(_('All updates matching search term "%s"'), $q));
+                   'description' => sprintf(_('Updates matching search term "%1$s" on %2$s!'),
+                                            $q, common_config('site', 'name')));
         return $c;
     }
 
-    function get_image()
+    function getImage()
     {
         return null;
     }
+
+    function isReadOnly($args)
+    {
+        return true;
+    }
 }