]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
use a form for search
authorEvan Prodromou <evan@status.net>
Thu, 25 Aug 2011 21:59:27 +0000 (17:59 -0400)
committerEvan Prodromou <evan@status.net>
Thu, 25 Aug 2011 21:59:27 +0000 (17:59 -0400)
lib/action.php
lib/primarynav.php
lib/searchform.php [new file with mode: 0644]

index d63569cba3596b55fd2e4276216c227985ba72bf..8ba2abc9f96ec7b7a259e9930906c198844b1c54 100644 (file)
@@ -575,6 +575,14 @@ class Action extends HTMLOutputter // lawsuit
         $this->elementStart('div', array('id' => 'site_nav_global_primary'));
         $pn = new PrimaryNav($this);
         $pn->show();
+
+        $user = common_current_user();
+
+        if (!empty($user) || !common_config('site', 'private')) {
+            $form = new SearchForm($this);
+            $form->show();
+        }
+
         $this->elementEnd('div');
     }
 
index 7a9815af7b04309981ab5f426d7177ec5b2fa0c6..f765938903e6b9d5c622d848f3a4c6aef4091bb5 100644 (file)
@@ -86,16 +86,6 @@ class PrimaryNav extends Menu
                                 'nav_login');
             }
 
-            if (!empty($user) || !common_config('site', 'private')) {
-                $this->action->menuItem(common_local_url('noticesearch'),
-                                // TRANS: Menu item in primary navigation panel.
-                                _m('MENU','Search'),
-                                // TRANS: Menu item title in primary navigation panel.
-                                _('Search the site.'),
-                                false,
-                                'nav_search');
-            }
-
             Event::handle('EndPrimaryNav', array($this->action));
         }
 
diff --git a/lib/searchform.php b/lib/searchform.php
new file mode 100644 (file)
index 0000000..b58d7af
--- /dev/null
@@ -0,0 +1,118 @@
+<?php
+/**
+ * StatusNet - the distributed open-source microblogging tool
+ * Copyright (C) 2011, StatusNet, Inc.
+ *
+ * Form for searching a StatusNet site
+ * 
+ * PHP version 5
+ *
+ * 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
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @category  Widget
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2011 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
+ * @link      http://status.net/
+ */
+
+if (!defined('STATUSNET')) {
+    // This check helps protect against security problems;
+    // your code file can't be executed directly from the web.
+    exit(1);
+}
+
+/**
+ * Form for searching a StatusNet site
+ *
+ * @category  General
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2011 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
+ * @link      http://status.net/
+ */
+
+class SearchForm extends Form
+{
+    /**
+     * Visible or invisible data elements
+     *
+     * Display the form fields that make up the data of the form.
+     * Sub-classes should overload this to show their data.
+     *
+     * @return void
+     */
+
+    function formData()
+    {
+        $this->out->element('input', array('name' => 'q',
+                                           'size' => 20,
+                                           'id' => 'search-q'));
+    }
+
+    /**
+     * Buttons for form actions
+     *
+     * Submit and cancel buttons (or whatever)
+     * Sub-classes should overload this to show their own buttons.
+     *
+     * @return void
+     */
+
+    function formActions()
+    {
+        $this->out->element('input', array('type' => 'submit',
+                                           'value' => _('Search')));
+    }
+
+    /**
+     * ID of the form
+     *
+     * Should be unique on the page. Sub-classes should overload this
+     * to show their own IDs.
+     *
+     * @return int ID of the form
+     */
+
+    function id()
+    {
+        return 'search';
+    }
+
+    /**
+     * Action of the form.
+     *
+     * URL to post to. Should be overloaded by subclasses to give
+     * somewhere to post to.
+     *
+     * @return string URL to post to
+     */
+
+    function action()
+    {
+        return common_local_url('noticesearch');
+    }
+
+    function method()
+    {
+        return 'get';
+    }
+
+    function sessionToken()
+    {
+        return;
+    }
+}