site: Also show the logo when editing.
[matthijs/projects/wipi.git] / plugin / theme / site.py
index d250781ac45348c30e910ffed30f7a37909088b7..c190efb1b8ffd00411b288d45d7f07f098335df7 100644 (file)
@@ -11,6 +11,7 @@
 
 from MoinMoin.theme import ThemeBase
 from MoinMoin.Page import Page
+from MoinMoin import wikiutil
 
 class SiteTheme(ThemeBase):
 
@@ -45,8 +46,8 @@ class SiteTheme(ThemeBase):
 
             # Header
             u'<div id="header">',
+            self.logo(),
             self.menu(d),
-            #self.logo(),
             #self.username(d),
             #u'<div id="locationline">',
             #self.interwiki(d),
@@ -61,9 +62,11 @@ class SiteTheme(ThemeBase):
             # Post header custom html (not recommended)
             self.emit_custom_html(self.cfg.page_header2),
 
-            # Start of page
-            self.startPage(),
             self.msg(d),
+            self.editbar(d),
+
+            # Start of page
+            self.startPage(d),
         ]
         return u'\n'.join(html)
 
@@ -80,6 +83,7 @@ class SiteTheme(ThemeBase):
 
             # Header
             u'<div id="header">',
+            self.logo(),
             self.menu(d),
             u'</div>',
 
@@ -87,7 +91,7 @@ class SiteTheme(ThemeBase):
             self.emit_custom_html(self.cfg.page_header2),
 
             # Start of page
-            self.startPage(),
+            self.startPage(d),
             self.msg(d),
         ]
         return u'\n'.join(html)
@@ -103,17 +107,16 @@ class SiteTheme(ThemeBase):
         page = d['page']
         html = [
             # End of page
-            self.pageinfo(page),
-            self.endPage(),
+            self.endPage(d),
 
             # Pre footer custom html (not recommended!)
             self.emit_custom_html(self.cfg.page_footer1),
 
             # Footer
             u'<div id="footer">',
-            self.searchform(d),
             self.username(d),
-            self.editbar(d),
+            self.pageinfo(page),
+            self.searchform(d),
             #self.editbar(d),
             #self.credits(d),
             #self.showversion(d, **keywords),
@@ -149,6 +152,37 @@ class SiteTheme(ThemeBase):
         src = '%s/%s/js/%s.js' % (self.request.cfg.url_prefix_static, self.name, name)
         return '<script type="text/javascript" src="%s"></script>' % src
 
+    def pageinfo(self, page):
+        """ Output page name and "last modified". This overwrites the pageinfo
+        from ThemeBase to hide the username, which is useless and always
+        produces a link to the non-existing homepage of the last editor. """
+        _ = self.request.getText
+        html = ''
+        if self.shouldShowPageinfo(page):
+            info = page.lastEditInfo()
+            if info:
+                info = _("last modified %(time)s") % info
+                pagename = page.page_name
+                info = "%s  (%s)" % (wikiutil.escape(pagename), info)
+                html = '<p id="pageinfo" class="info"%(lang)s>%(info)s</p>\n' % {
+                    'lang': self.ui_lang_attr(),
+                    'info': info
+                    }
+        return html
+
+    def startPage(self, d):
+        # This opens up #page
+        html = ThemeBase.startPage(self)
+        html += u'<div id="pagetop"></div>\n'
+        html += u'<div id="pagemiddle">\n'
+        return html
+
+    def endPage(self, d):
+        html = u'</div><!-- #pagemiddle -->\n'
+        html += ThemeBase.endPage(self)
+        # This adds #pagebottom and closes #page
+        return html
+
 def execute(request):
     """
     Generate and return a theme object