themes: Add proper copyright.
[matthijs/projects/wipi.git] / plugin / theme / exodus.py
index 479a258c31c52ce7858eaddbe5fb070f30b3904b..c5406aa4b60f6a805d03f79d9d1351569baec49d 100644 (file)
-# -*- coding: iso-8859-1 -*-
 """
-    MoinMoin - modern theme
+    MoinMoin - Exodus website theme.
 
-    @copyright: 2003-2005 Nir Soffer, Thomas Waldmann
+    @copyright: 2009+ Matthijs Kooijman
     @license: GNU GPL, see COPYING for details.
 """
 
+from site import SiteTheme
 from MoinMoin.theme import ThemeBase
 
-class Theme(ThemeBase):
+class Theme(SiteTheme):
 
     name = "exodus"
 
-    def editbar(self, d):
-        if self.request.user.valid:
-            return ThemeBase.editbar(self, d)
-        else:
-            return ''
-
-    def searchform(self, d):
-        if self.request.user.valid:
-            return ThemeBase.searchform(self, d)
-        else:
-            return ''
-
-    def header(self, d, **kw):
-        """ Assemble wiki header
-        
-        @param d: parameter dictionary
-        @rtype: unicode
-        @return: page header html
-        """
-        html = [
-            # Pre header custom html
-            self.emit_custom_html(self.cfg.page_header1),
-
-            # Header
-            u'<div id="header">',
-            #self.logo(),
-            self.searchform(d),
-            #self.username(d),
-            u'<div id="locationline">',
-            #self.interwiki(d),
-            self.title(d),
-            u'</div>',
-            self.trail(d),
-            #self.navibar(d),
-            #u'<hr id="pageline">',
-            #u'<div id="pageline"><hr style="display:none;"></div>',
-            self.msg(d),
-            self.editbar(d),
-            u'</div>',
-
-            # Post header custom html (not recommended)
-            self.emit_custom_html(self.cfg.page_header2),
-
-            # Start of page
-            self.startPage(),
-        ]
-        return u'\n'.join(html)
-
-    def editorheader(self, d, **kw):
-        """ Assemble wiki header for editor
-        
-        @param d: parameter dictionary
-        @rtype: unicode
-        @return: page header html
-        """
+    def html_head(self, d):
         html = [
-            # Pre header custom html
-            self.emit_custom_html(self.cfg.page_header1),
-
-            # Header
-            u'<div id="header">',
-            self.title(d),
-            self.msg(d),
-            u'</div>',
-
-            # Post header custom html (not recommended)
-            self.emit_custom_html(self.cfg.page_header2),
-
-            # Start of page
-            self.startPage(),
+            SiteTheme.html_head(self, d),
+            #self.theme_script('jquery-1.3.2.min'),
+            self.theme_script('jquery-1.3.2'),
         ]
-        return u'\n'.join(html)
+        if d['page'].page_name == 'Site':
+            html.append(self.theme_script('homepage'))
+            html.append(self._stylesheet_link(True, 'screen', 'home'))
 
-    def footer(self, d, **keywords):
-        """ Assemble wiki footer
-        
-        @param d: parameter dictionary
-        @keyword ...:...
-        @rtype: unicode
-        @return: page footer html
-        """
-        page = d['page']
-        html = [
-            # End of page
-            self.pageinfo(page),
-            self.endPage(),
-
-            # Pre footer custom html (not recommended!)
-            self.emit_custom_html(self.cfg.page_footer1),
+        return '\n'.join(html)
 
-            # Footer
-            u'<div id="footer">',
-            self.username(d),
-            #self.editbar(d),
-            #self.credits(d),
-            #self.showversion(d, **keywords),
-            u'</div>',
+    def startPage(self, d):
+        # For the homepage, don't use SiteTheme's changes
+        if d['page'].page_name == 'Site':
+            return ThemeBase.startPage(self)
+        else:
+            return SiteTheme.startPage(self, d)
 
-            # Post footer custom html
-            self.emit_custom_html(self.cfg.page_footer2),
-            ]
-        return u'\n'.join(html)
+    def endPage(self, d):
+        # For the homepage, don't use SiteTheme's changes, but also don't use
+        # ThemeBase, since that adds a #pagebottom.
+        if d['page'].page_name == 'Site':
+            return u'</div><!-- #page -->'
+        else:
+            return SiteTheme.endPage(self, d)
 
 
 def execute(request):
@@ -126,3 +50,4 @@ def execute(request):
     """
     return Theme(request)
 
+# vim: set sw=4 sts=4 expandtab: