# -*- coding: iso-8859-1 -*- """ MoinMoin cr@ns """ from MoinMoin import wikiutil, version from MoinMoin import caching from MoinMoin.theme import ThemeBase from MoinMoin.Page import Page from MoinMoin.widget import html class Theme(ThemeBase): name = "CransWifi" scripts = ['jquery-1.3.2.min.js', 'crans.js'] stylesheets = ( # media basename ('all', 'reset-fonts-grids'), ('all', 'base-min'), ('all', 'common'), ('screen', 'screen'), ('print', 'print'), ('projection', 'projection'), ) def header(self, d, **kw): """ Assemble wiki header @param d: parameter dictionary @rtype: unicode @return: page header html """ # hack self.cfg.logo_string = u'cr@ns Logo' html = [ # Pre header custom html self.emit_custom_html(self.cfg.page_header1), # Header u'
', u'
', u'
', # u'
', # self.interwiki(d), # u'
', # u'

', # self.editbar(d), # u'
', u'
', u'
', u'
', self.msg(d), self.breadcrumbs(d), self.title(d), # 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 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 u'
', self.pageinfo(page), self.endPage(), # Pre footer custom html (not recommended!) self.emit_custom_html(self.cfg.page_footer1), u'
', # end of yui-g u'
', # end of yui-b u'
', # end of yui-main # NAVIGATION u'
', self.logo(), u'

Navigation

', self.navibar(d), u'
', # end of yui-b (navigation) u'
', # end of #bd # self.credits(d), # self.showversion(d, **keywords), u'', # end of #doc4 # Toolbar u'
', self.editbar(d), self.searchform(d), u'
', # UserBar u'
', self.username(d), u'
', # Login u'
', self.loginform(d), u'
', # Post footer custom html self.emit_custom_html(self.cfg.page_footer2), ] return u'\n'.join(html) def title(self, d): """ Assemble the title @param d: parameter dictionary @rtype: string @return: title html """ _ = self.request.getText page_title = "" if d['title_text'] == d['page'].split_title(): curpage = '' segments = d['page_name'].split('/') # was: title_text page_title = segments[-1] else: page_title = wikiutil.escape(d['title_text']) html = '

%s

' % page_title return html def breadcrumbs(self, d): """ Assemble the breadcrumbs @param d: parameter dictionary @rtype: string @return: title html """ _ = self.request.getText content = [] if d['title_text'] == d['page'].split_title(): curpage = '' segments = d['page_name'].split('/') # was: title_text for s in segments[:-1]: curpage += s content.append("
  • %s
  • " % Page(self.request, curpage).link_to(self.request, s)) curpage += '/' content.append(('
  • %(text)s
  • ') % { 'text': wikiutil.escape(segments[-1]), }) else: content.append('
  • %s
  • ' % wikiutil.escape(d['title_text'])) if len(content) < 2 : return "" html = '' % "".join(content) return html def loginform(self, d): """ Create the complete HTML form code. """ def make_field(label, name, value="", type="text", size="32", **kw): p = html.P(**kw) if label: p.append(html.Raw('' % (name, label))) p.append(html.INPUT(type=type, value=value, size=size, name=name)) return p _ = self.request.getText request = self.request sn = request.getScriptname() pi = request.getPathinfo() action = u"%s%s" % (sn, pi) hints = [] for authm in request.cfg.auth: hint = authm.login_hint(request) if hint: hints.append(hint) form = html.FORM(action=action, name="loginform") form.append(html.INPUT(type="hidden", name="action", value="login")) for hint in hints: form.append(html.P().append(html.Raw(hint))) cfg = request.cfg if 'username' in cfg.auth_login_inputs: form.append( make_field(label=_('Name'), name="name")) if 'password' in cfg.auth_login_inputs: form.append( make_field(label=_('Password'), name="password", type="password")) if 'openid_identifier' in cfg.auth_login_inputs: form.append( make_field(label=_('OpenID'), name="openid_identifier", id="openididentifier")) buttons = html.P(CLASS="buttons").extend([ html.A(CLASS="hideLoginBox", href="#").extend([html.Raw(_("Cancel"))]), html.Raw(' '), html.INPUT(name='login', type="submit", value=_('Login'))]) form.append(buttons) return unicode(form) def headscript(self, d): link = '' # Create stylesheets links html = [] prefix = self.cfg.url_prefix_static jshref = '%s/%s/js' % (prefix, self.name) for script in self.scripts: href = '%s/%s' % (jshref, script) html.append(link % href) html = u"\n".join(html) return ThemeBase.headscript(self, d)+html # disable gui editor def guiEditorScript(self, d): return "" def editorheader(self, d, **kw): """ Assemble wiki header for editor @param d: parameter dictionary @rtype: unicode @return: page header html """ return self.header(d, **kw) def execute(request): """ Generate and return a theme object @param request: the request object @rtype: MoinTheme @return: Theme object """ return Theme(request)