]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/searchaction.php
Twitter-compatible API - don't strip XML-illegal chars from JSON output
[quix0rs-gnu-social.git] / lib / searchaction.php
index bf598ea93d2f0a7fb6ae9fba94b69fb43e8ee5ac..f99883b251ec7ca2eed5044f555155c5f1ed5166 100644 (file)
@@ -21,12 +21,19 @@ if (!defined('LACONICA')) { exit(1); }
 
 class SearchAction extends Action {
 
+       function is_readonly() {
+               return true;
+       }
+
        function handle($args) {
                parent::handle($args);
                $this->show_form();
        }
 
-       function show_top($error=NULL) {
+       function show_top($arr=NULL) {
+               if ($arr) {
+                       $error = $arr[1];
+               }
                if ($error) {
                        common_element('p', 'error', $error);
                } else {
@@ -42,16 +49,28 @@ class SearchAction extends Action {
        function get_title() {
                return NULL;
        }
-       
+
+       function show_header($arr) {
+               return;
+       }
+
        function show_form($error=NULL) {
+               global $config;
+
                $q = $this->trimmed('q');
                $page = $this->trimmed('page', 1);
-               
-               common_show_header($this->get_title(), NULL, $error, array($this, 'show_top'));
-               common_element_start('form', array('method' => 'post',
+
+               common_show_header($this->get_title(), array($this, 'show_header'), array($q, $error),
+                                                  array($this, 'show_top'));
+               common_element_start('form', array('method' => 'get',
                                                                                   'id' => 'login',
                                                                                   'action' => common_local_url($this->trimmed('action'))));
                common_element_start('p');
+               if (!isset($config['site']['fancy']) || !$config['site']['fancy']) {
+                       common_element('input', array('name' => 'action',
+                                                                                 'type' => 'hidden',
+                                                                                 'value' => $this->trimmed('action')));
+               }
                common_element('input', array('name' => 'q',
                                                                          'id' => 'q',
                                                                          'type' => 'text',
@@ -62,8 +81,8 @@ class SearchAction extends Action {
                                                                          'id' => 'search',
                                                                          'name' => 'search',
                                                                          'class' => 'submit',
-                                                                         'value' => _t('Search')));
-                                          
+                                                                         'value' => _('Search')));
+
                common_element_end('p');
                common_element_end('form');
                if ($q) {
@@ -71,16 +90,21 @@ class SearchAction extends Action {
                }
                common_show_footer();
        }
-       
+
        function search_menu() {
-        # action => array('prompt', 'title')
-        static $menu =
-        array('peoplesearch' =>
-              array('People',
-                       'Find people on this site'),
-                         'noticesearch' =>
-                         array('Text',
-                                       'Find content of notices'));
+               # action => array('prompt', 'title', $args)
+               $action = $this->trimmed('action');
+               $menu =
+                 array('peoplesearch' =>
+                               array(
+                                         _('People'),
+                                         _('Find people on this site'),
+                                         ($action != 'peoplesearch' && $this->trimmed('q')) ? array('q' => $this->trimmed('q')) : NULL),
+                               'noticesearch' =>
+                               array( _('Text'),
+                                          _('Find content of notices'),
+                                          ($action != 'noticesearch' && $this->trimmed('q')) ? array('q' => $this->trimmed('q')) : NULL)
+                               );
                $this->nav_menu($menu);
        }
 }