X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fnoticesearchrss.php;h=20fe0ff2abddfe337ef78b00d7028e6dbecb98a5;hb=bc15d027a804e60e76bdaf6fd47e69d41b395e7e;hp=482fe6db9f85995ceaad7bb5347a23c9708a09dd;hpb=ce2b174c4a083128cd14154d0f6c61e19d5cb229;p=quix0rs-gnu-social.git diff --git a/actions/noticesearchrss.php b/actions/noticesearchrss.php index 482fe6db9f..20fe0ff2ab 100644 --- a/actions/noticesearchrss.php +++ b/actions/noticesearchrss.php @@ -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; + } +}