From ed37d83fa3ac9f3a7db9a63ce70ba6a5283c6a9e Mon Sep 17 00:00:00 2001 From: "matthew.gregg" Date: Sun, 20 Jul 2008 15:55:05 -0400 Subject: [PATCH] Opensearch updates This adds htaccess and searches for people and notices. darcs-hash:20080720195505-982e4-3f03e6ab4c466ae131e025b6a3c26c7bb9a99c03.gz --- actions/opensearch.php | 18 +++++++++++++++--- htaccess.sample | 2 ++ lib/util.php | 13 +++++++++++-- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/actions/opensearch.php b/actions/opensearch.php index cb617391d8..6811226a2f 100644 --- a/actions/opensearch.php +++ b/actions/opensearch.php @@ -25,15 +25,27 @@ class OpensearchAction extends Action { parent::handle($args); + $type = $this->trimmed('type'); + + $short_name = ''; + if ($type == 'people') { + $type = 'peoplesearch'; + $short_name = 'People Search'; + } else { + $short_name = 'Notice Search'; + $type = 'noticesearch'; + } + header('Content-Type: text/html'); common_start_xml(); common_element_start('OpenSearchDescription', array('xmlns' => 'http://a9.com/-/spec/opensearch/1.1/')); - - common_element('ShortName', NULL, common_config('site', 'name')); + + $short_name = common_config('site', 'name').' '.$short_name; + common_element('ShortName', NULL, $short_name); common_element('Contact', NULL, common_config('site', 'email')); common_element('Url', array('type' => 'text/html', 'method' => 'get', - 'template' => common_path('index.php?action=peoplesearch&q={searchTerms}'))); + 'template' => common_path('index.php?action='.$type.'&q={searchTerms}'))); common_element('Image', array('height' => 16, 'width' => 16, 'type' => 'image/vnd.microsoft.icon'), common_path('favicon.ico')); common_element('Image', array('height' => 50, 'width' => 50, 'type' => 'image/png'), theme_path('logo.png')); common_element('AdultContent', NULL, 'false'); diff --git a/htaccess.sample b/htaccess.sample index 21c12f2eb5..d81ec24813 100644 --- a/htaccess.sample +++ b/htaccess.sample @@ -3,6 +3,8 @@ RewriteEngine On RewriteRule ^$ index.php?action=public [L,QSA] RewriteRule ^rss$ index.php?action=publicrss [L,QSA] RewriteRule ^xrds$ index.php?action=publicxrds [L,QSA] +RewriteRule ^opensearch/people$ index.php?action=opensearch&type=people [L,QSA] +RewriteRule ^opensearch/notice$ index.php?action=opensearch&type=notice [L,QSA] RewriteRule ^doc/about$ index.php?action=doc&title=about [L,QSA] RewriteRule ^doc/contact$ index.php?action=doc&title=contact [L,QSA] diff --git a/lib/util.php b/lib/util.php index c095fe768e..65eefa5d8b 100644 --- a/lib/util.php +++ b/lib/util.php @@ -186,7 +186,12 @@ function common_show_header($pagetitle, $callable=NULL, $data=NULL, $headercall= 'src' => common_path('js/util.js')), ' '); common_element('link', array('rel' => 'search', 'type' => 'application/opensearchdescription+xml', - 'href' => common_local_url('opensearch'), 'title' => common_config('site', 'name').' Search')); + 'href' => common_local_url('opensearch', array('type' => 'people')), + 'title' => common_config('site', 'name').' People Search')); + + common_element('link', array('rel' => 'search', 'type' => 'application/opensearchdescription+xml', + 'href' => common_local_url('opensearch', array('type' => 'notice')), + 'title' => common_config('site', 'name').' Notice Search')); if ($callable) { if ($data) { @@ -778,7 +783,11 @@ function common_fancy_url($action, $args=NULL) { case 'publicxrds': return common_path('xrds'); case 'opensearch': - return common_path('opensearch'); + if ($args && $args['type']) { + return common_path('opensearch/'.$args['type']); + } else { + return common_path('opensearch/people'); + } case 'doc': return common_path('doc/'.$args['title']); case 'login':