e9344851be65d92f702aa69a199296f8e569cbaf
[matthijs/projects/wipi.git] / plugin / theme / site.py
1 # -*- coding: iso-8859-1 -*-
2 """
3     Evolution Events, website theme
4
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).
7
8     This theme is meant to be subclassed. Subclasses should at least define a
9     name, and possibly override other stuff.
10 """
11
12 from MoinMoin.theme import ThemeBase
13
14 class SiteTheme(ThemeBase):
15
16     def editbar(self, d):
17         if self.request.user.valid:
18             return ThemeBase.editbar(self, d)
19         else:
20             return ''
21
22     def searchform(self, d):
23         if self.request.user.valid:
24             return ThemeBase.searchform(self, d)
25         else:
26             return ''
27
28     def header(self, d, **kw):
29         """ Assemble wiki header
30         
31         @param d: parameter dictionary
32         @rtype: unicode
33         @return: page header html
34         """
35         html = [
36             # Pre header custom html
37             self.emit_custom_html(self.cfg.page_header1),
38
39             # Header
40             u'<div id="header">',
41             #self.logo(),
42             self.searchform(d),
43             #self.username(d),
44             u'<div id="locationline">',
45             #self.interwiki(d),
46             self.title(d),
47             u'</div>',
48             self.trail(d),
49             #self.navibar(d),
50             #u'<hr id="pageline">',
51             #u'<div id="pageline"><hr style="display:none;"></div>',
52             self.msg(d),
53             self.editbar(d),
54             u'</div>',
55
56             # Post header custom html (not recommended)
57             self.emit_custom_html(self.cfg.page_header2),
58
59             # Start of page
60             self.startPage(),
61         ]
62         return u'\n'.join(html)
63
64     def editorheader(self, d, **kw):
65         """ Assemble wiki header for editor
66         
67         @param d: parameter dictionary
68         @rtype: unicode
69         @return: page header html
70         """
71         html = [
72             # Pre header custom html
73             self.emit_custom_html(self.cfg.page_header1),
74
75             # Header
76             u'<div id="header">',
77             self.title(d),
78             self.msg(d),
79             u'</div>',
80
81             # Post header custom html (not recommended)
82             self.emit_custom_html(self.cfg.page_header2),
83
84             # Start of page
85             self.startPage(),
86         ]
87         return u'\n'.join(html)
88
89     def footer(self, d, **keywords):
90         """ Assemble wiki footer
91         
92         @param d: parameter dictionary
93         @keyword ...:...
94         @rtype: unicode
95         @return: page footer html
96         """
97         page = d['page']
98         html = [
99             # End of page
100             self.pageinfo(page),
101             self.endPage(),
102
103             # Pre footer custom html (not recommended!)
104             self.emit_custom_html(self.cfg.page_footer1),
105
106             # Footer
107             u'<div id="footer">',
108             self.username(d),
109             #self.editbar(d),
110             #self.credits(d),
111             #self.showversion(d, **keywords),
112             u'</div>',
113
114             # Post footer custom html
115             self.emit_custom_html(self.cfg.page_footer2),
116             ]
117         return u'\n'.join(html)
118
119
120 def execute(request):
121     """
122     Generate and return a theme object
123         
124     @param request: the request object
125     @rtype: MoinTheme
126     @return: Theme object
127     """
128     return Theme(request)
129