# -*- coding: iso-8859-1 -*-
"""
MoinMoin - roundup theme
Created by Stefan Seefeld.
@copyright: 2009 Stefan Seefeld
@license: GNU GPL, see COPYING for details.
"""
from MoinMoin.theme import ThemeBase
from MoinMoin import wikiutil
class Theme(ThemeBase):
name = "roundup"
def logo(self):
html = u''
if self.cfg.logo_string:
page = wikiutil.getFrontPage(self.request)
logo = page.link_to_raw(self.request, self.cfg.logo_string)
html = u'
%s
' %logo
return html
def menu(self, d):
""" Create menu"""
html = [
u'',
]
return u'\n'.join(html)
def wiki_links(self, d):
request = self.request
found = {} # pages we found. prevent duplicates
items = [] # wiki items items
# Process config navi_bar
if request.cfg.navi_bar:
for text in request.cfg.navi_bar:
pagename, link = self.splitNavilink(text)
items.append('%s'%link)
found[pagename] = 1
# Add user links to wiki links, eliminating duplicates.
userlinks = request.user.getQuickLinks()
for text in userlinks:
# Split text without localization, user knows what he wants
pagename, link = self.splitNavilink(text, localize=0)
if not pagename in found:
items.append('%s'%link)
found[pagename] = 1
text = '[[%s|Wiki]]'%self.cfg.page_front_page
pagename, link = self.splitNavilink(text, localize=0)
menu = ''%'\n'.join(items)
user = '%s'%self.username(d)
html = u'%s\n%s\n%s\n'%(link,menu,user)
return html
def header(self, d):
"""
Assemble page header
@param d: parameter dictionary
@rtype: string
@return: page header html
"""
_ = self.request.getText
html = [
# Pre header custom html
self.emit_custom_html(self.cfg.page_header1),
u'',
u'',
self.menu(d),
u'
',
u'',
self.trail(d),
self.msg(d),
self.title(d),
self.editbar(d),
]
return u'\n'.join(html)
def footer(self, d, **keywords):
""" Assemble wiki footer
@param d: parameter dictionary
@keyword ...:...
@rtype: unicode
@return: page footer html
"""
page = d['page']
html = [
u'
',
u'',
# Post footer custom html
self.emit_custom_html(self.cfg.page_footer2),
]
return u'\n'.join(html)
def execute(request):
""" Generate and return a theme object
@param request: the request object
@rtype: MoinTheme
@return: Theme object
"""
return Theme(request)