<> = 2006-04-27.登出 = 才发现 balanced2 的样式中"username" 的输出中没有"logout" 的链接! == 现象 == 而MoinMoin 1.5.3 的登出从用户设置调整到了页首位置………… {{{ # morden theme }}} {{{ # morden woodpecker }}} == 解决 == 原来是超越函式没有写好: {{{#!python # balanced2's username(self, d) def username(self, d): """ Assemble the username / userprefs link @param d: parameter dictionary @rtype: unicode @return: username html @note: lost logout link usage normal username """ request = self.request _ = request.getText preferencesPage = wikiutil.getSysPage(request, 'UserPreferences') helpPage = wikiutil.getSysPage(request, 'HelpContents') userlinks = [] # Add username/homepage link for registered users. We don't care # if it exists, the user can create it. if request.user.valid: homepage = Page(request, request.user.name) title = homepage.split_title(request) homelink = homepage.link_to(request, text=title) userlinks.append(homelink) # Set pref page to localized Preferences page title = preferencesPage.split_title(request) userlinks.append(preferencesPage.link_to(request, text=title)) userlinks.append(helpPage.link_to(request, text=_("Help"))) else: # Add prefpage links with title: Login userlinks.append(preferencesPage.link_to(request, text=_("Login"))) userlinks = [u'
  • %s
  • \n' % link for link in userlinks] html = u'' % ''.join(userlinks) return html }}} 重命名为 balanced2_username; 让`woodpecker` 样式使用默许的 `from MoinMoin.theme import ThemeBase` 中的 username()输出 解决! === 新办法 === {{{#!python def username(self, d): """ Assemble the username / userprefs link @param d: parameter dictionary @rtype: unicode @return: username html @note: ZoomQuiet fixed logout link export """ request = self.request _ = request.getText preferencesPage = wikiutil.getSysPage(request, 'UserPreferences') helpPage = wikiutil.getSysPage(request, 'HelpContents') userlinks = [] # Add username/homepage link for registered users. We don't care # if it exists, the user can create it. if request.user.valid: homepage = Page(request, request.user.name) title = homepage.split_title(request) homelink = homepage.link_to(request, text=title) userlinks.append(homelink) # Set pref page to localized Preferences page title = preferencesPage.split_title(request) userlinks.append(preferencesPage.link_to(request, text=title)) #userlinks.append(helpPage.link_to(request, text=_("Help"))) else: # Add prefpage links with title: Login userlinks.append(preferencesPage.link_to(request, text=_("Login"))) ## Zoomq::060427 cp from MoinMoin.theme.__init__.py if request.cfg.show_login: if request.user.valid: userlinks.append(d['page'].link_to(request, text=_('Logout', formatted=False), querystr={'action': 'logout', 'logout': 'logout'}, id="logout")) else: userlinks.append(d['page'].link_to(request, text=_("Login", formatted=False), querystr={'action': 'login'}, id="login")) userlinks = [u'
  • %s
  • \n' % link for link in userlinks] html = u'' % ''.join(userlinks) return html }}} 从默许的 ThemeBase 对应函式抄过来 logout 部分, 因为Balanced2 的修正了对应用户字码的“用户设置”连接输出,只是没有正确的处理logout 部分 == 感慨 == 其实问题的定位和解决非常容易,但是花费了时间在调整代码文件的空格和TAB! 如果使用 vim 来编程的话,一般是使用TAB -- 制表格来进行缩进的, 但是在跨平台不同编辑器环境中,TAB 的表现各不相同,所以Python 编程建议统一使用空格代替TAB, 所以要在Leo 中整理 明白文件体后,要一一将TAB 替换为 4个空格,'''但是''':有GCC的程序员又强烈抗议,要将TAB转换为8个空格! ……呜乎哀哉!功过事非由后人讲评了…………