changeset 30:8310af7850fd

Override and place the search form
author Radomir Dopieralski <devel@sheep.art.pl>
date Fri, 06 Jun 2008 19:46:01 +0200
parents 991206cc375f
children f77fd40e8388
files mfact.py mfact/css/screen.css
diffstat 2 files changed, 43 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/mfact.py	Thu Jun 05 23:16:04 2008 +0200
+++ b/mfact.py	Fri Jun 06 19:46:01 2008 +0200
@@ -91,8 +91,8 @@
             u'<div id="header">',
             self.searchform(d),
             self.logo(),
+            u'</div>',
             self.navibar(d),
-            u'</div>',
             # Post header custom html (not recommended)
             self.emit_custom_html(self.cfg.page_header2),
             # Start of page
@@ -281,6 +281,39 @@
 
         return '\n'.join(html)
 
+    def searchform(self, d):
+        """
+        assemble HTML code for the search forms
+
+        @param d: parameter dictionary
+        @rtype: unicode
+        @return: search form html
+        """
+        _ = self.request.getText
+        form = self.request.form
+        updates = {
+            'search_value': wikiutil.escape(form.get('value', [''])[0], 1),
+            'search_full_label': _('Search'),
+            'baseurl': self.request.getScriptname(),
+            'pagename_quoted': wikiutil.quoteWikinameURL(d['page'].page_name),
+            }
+        d.update(updates)
+
+        html = u'''
+<form id="searchform" method="get" action="%(baseurl)s/%(pagename_quoted)s">
+<div>
+<input type="hidden" name="action" value="fullsearch">
+<input type="hidden" name="context" value="180">
+<input id="searchinput" type="text" name="value" value="%(search_value)s" size="20"
+    onfocus="searchFocus(this)" onblur="searchBlur(this)"
+    onkeyup="searchChange(this)" onchange="searchChange(this)" alt="Search">
+<input id="fullsearch" name="fullsearch" type="submit"
+    value="%(search_full_label)s" alt="Search this site">
+</div>
+</form>
+''' % d
+        return html
+
 def execute(request):
     """
     Generate and return a theme object
--- a/mfact/css/screen.css	Thu Jun 05 23:16:04 2008 +0200
+++ b/mfact/css/screen.css	Fri Jun 06 19:46:01 2008 +0200
@@ -22,9 +22,16 @@
     margin: 0 auto;
 }
 
+#header {
+    position: relative;
+    padding: 0.25em 1.5em;
+}
+
 form#searchform {
-    margin: 0.5em 1.5em;
-    float: right;
+    margin: 0;
+    position: absolute;
+    bottom: 0.25em;
+    right: 1.5em;
 }
 
 form#searchform input {
@@ -39,11 +46,6 @@
     background: #fff;
 }
 
-div#logo {
-    margin: 0.75em 0.5em 0.75em 1.5em;
-    float: left;
-}
-
 ul#navibar {
     clear: both;
     padding: 14px 1.25em 0 1.25em;