* PHP version 5
*
* @category Action
- * @package Laconica
- * @author Evan Prodromou <evan@controlyourself.ca>
- * @author Robin Millette <millette@controlyourself.ca>
+ * @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://laconi.ca/
+ * @link http://status.net/
*
- * Laconica - a distributed open-source microblogging tool
- * Copyright (C) 2008, Controlez-Vous, Inc.
+ * 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')) {
+if (!defined('STATUSNET') && !defined('LACONICA')) {
exit(1);
}
* Base search action class.
*
* @category Action
- * @package Laconica
- * @author Evan Prodromou <evan@controlyourself.ca>
- * @author Robin Millette <millette@controlyourself.ca>
+ * @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://laconi.ca/
+ * @link http://status.net/
*/
class SearchAction extends Action
{
*
* @return boolean true
*/
- function isReadOnly()
+ function isReadOnly($args)
{
return true;
}
$this->showPage();
}
- /**
- * Show tabset for this page
- *
- * Uses the SearchGroupNav widget
- *
- * @return void
- * @see SearchGroupNav
- */
-
- function showLocalNav()
- {
- $nav = new SearchGroupNav($this, $this->trimmed('q'));
- $nav->show();
- }
-
function showTop($arr=null)
{
$error = null;
function showForm($error=null)
{
- global $config;
-
$q = $this->trimmed('q');
$page = $this->trimmed('page', 1);
$this->elementStart('form', array('method' => 'get',
'class' => 'form_settings',
'action' => common_local_url($this->trimmed('action'))));
$this->elementStart('fieldset');
+ // TRANS: Fieldset legend for the search form.
$this->element('legend', null, _('Search site'));
$this->elementStart('ul', 'form_data');
$this->elementStart('li');
- if (!isset($config['site']['fancy']) || !$config['site']['fancy']) {
+ if (!common_config('site', 'fancy')) {
$this->hidden('action', $this->trimmed('action'));
}
- $this->input('q', 'Keyword(s)', $q);
- $this->submit('search', 'Search');
+ // TRANS: Used as a field label for the field where one or more keywords
+ // TRANS: for searching can be entered.
+ $this->input('q', _('Keyword(s)'), $q);
+ // TRANS: Button text for searching site.
+ $this->submit('search', _m('BUTTON','Search'));
$this->elementEnd('li');
$this->elementEnd('ul');
$this->elementEnd('fieldset');
$this->showResults($q, $page);
}
}
-}
+ function searchSuggestions($q) {
+ // Don't change these long strings to HEREDOC; xgettext won't pick them up.
+ // TRANS: Standard search suggestions shown when a search does not give any results.
+ $message = _("* Make sure all words are spelled correctly.
+* Try different keywords.
+* Try more general keywords.
+* Try fewer keywords.");
+ $message .= "\n";
+
+ if (!common_config('site', 'private')) {
+ $qe = urlencode($q);
+ $message .= "\n";
+ // Don't change these long strings to HEREDOC; xgettext won't pick them up.
+ // TRANS: Standard search suggestions shown when a search does not give any results.
+ $message .= sprintf(_("You can also try your search on other engines:
+
+* [Twingly](http://www.twingly.com/search?q=%s&content=microblog&site=%%%%site.server%%%%)
+* [Tweet scan](http://www.tweetscan.com/indexi.php?s=%s)
+* [Google](http://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s)
+* [Yahoo](http://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s)
+* [Collecta](http://collecta.com/#q=%s)"), $qe, $qe, $qe, $qe, $qe);
+ $message .= "\n";
+ }
+ $this->elementStart('div', 'help instructions');
+ $this->raw(common_markup_to_html($message));
+ $this->elementEnd('div');
+ }
+}