1 # -*- coding: iso-8859-1 -*-
3 Evolution Events, website theme
5 This theme is meant for wiki's that are meant to function as a website,
6 meaning nothing fancy and wiki-ish (at least when you're not logged in).
8 This theme is meant to be subclassed. Subclasses should at least define a
9 name, and possibly override other stuff.
12 from MoinMoin.theme import ThemeBase
13 from MoinMoin.Page import Page
15 class SiteTheme(ThemeBase):
18 if self.request.user.valid:
19 return ThemeBase.editbar(self, d)
23 def searchform(self, d):
24 if self.request.user.valid:
25 return ThemeBase.searchform(self, d)
30 if self.request.user.valid:
31 return ThemeBase.navibar(self, d)
35 def header(self, d, **kw):
36 """ Assemble wiki header
38 @param d: parameter dictionary
40 @return: page header html
43 # Pre header custom html
44 self.emit_custom_html(self.cfg.page_header1),
51 #u'<div id="locationline">',
56 #u'<hr id="pageline">',
57 #u'<div id="pageline"><hr style="display:none;"></div>',
61 # Post header custom html (not recommended)
62 self.emit_custom_html(self.cfg.page_header2),
68 return u'\n'.join(html)
70 def editorheader(self, d, **kw):
71 """ Assemble wiki header for editor
73 @param d: parameter dictionary
75 @return: page header html
78 # Pre header custom html
79 self.emit_custom_html(self.cfg.page_header1),
86 # Post header custom html (not recommended)
87 self.emit_custom_html(self.cfg.page_header2),
93 return u'\n'.join(html)
95 def footer(self, d, **keywords):
96 """ Assemble wiki footer
98 @param d: parameter dictionary
101 @return: page footer html
109 # Pre footer custom html (not recommended!)
110 self.emit_custom_html(self.cfg.page_footer1),
113 u'<div id="footer">',
119 #self.showversion(d, **keywords),
122 # Post footer custom html
123 self.emit_custom_html(self.cfg.page_footer2),
125 return u'\n'.join(html)
128 """ Assemble a "main" menu
130 @param d: parameter dictionary
134 items = Page(self.request, 'Site/Menu').data.split('\n')
136 html = '<ul id="menubar">'
139 if (not item.startswith("#")):
140 (pagename, link) = self.splitNavilink(item)
141 html = html + ("<li class=\"menulink\">%s</li>" % link)
143 html = html + '</ul>'
147 def theme_script(self, name):
148 """ Format script html from this theme's static dir """
149 src = '%s/%s/js/%s.js' % (self.request.cfg.url_prefix_static, self.name, name)
150 return '<script type="text/javascript" src="%s"></script>' % src
152 def execute(request):
154 Generate and return a theme object
156 @param request: the request object
158 @return: Theme object
160 return Theme(request)