>
= 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个空格!
……呜乎哀哉!功过事非由后人讲评了…………