我正在为Plone 3.x开发皮肤。皮肤与默认主题有很多不同,我想在管理模式下保持默认皮肤。我读了一些类似http://maurits.vanrees.org/weblog/archive/2008/01/switch-your-skin-based-on-the-url的解决方案。但我无法在我的网站中使用子域名,因此我无法使用这些解决方案。
我认为解决方案会是这样的:
在我的main_template.pt中:
<
条件:“true:Autenticated as admin”>
''把这些细节放在这里
<
/ tal >
但我不知道Plone中正确的sintax
谢谢。
答案 0 :(得分:1)
这不会直接回答您的问题,但您可能需要查看“Editskin switcher”。
答案 1 :(得分:1)
最后,我使用了这个解决方案。检测您是否经过身份验证的条件是tal:condition =“not:here / portal_membership / isAnonymousUser”。因此,您只能为访问者使用样式表,并为经过身份验证的用户使用其他样式表。这样的事情:
&LT; style type =“text / css”tal:content =“string:@import url($ portal_url / visitors.css);” media =“all”tal:condition =“here / portal_membership / isAnonymousUser”/&gt;
&LT; style type =“text / css”tal:content =“string:@import url($ portal_url / admin.css);” media =“all”tal:condition =“not:here / portal_membership / isAnonymousUser”/&gt;
也许这不是最佳解决方案,但它对我有用
答案 2 :(得分:1)
您的解决方案可行 - 但有更好的方法。您没有描述样式表的安装方式,但这有两种方法。
如果您有策略产品,请将以下内容放入产品的profiles / default / cssregistry.xml中:
<object name="portal_css" meta_type="Stylesheets Registry">
<stylesheet title="" cacheable="True" compression="safe" cookable="True" enabled="1"
expression="here/portal_membership/isAnonymousUser"
id="visitors.css"
media="all" rel="stylesheet" rendering="import"/>
<stylesheet title=""
cacheable="True" compression="safe" cookable="True" enabled="1"
expression="not:here/portal_membership/isAnonymousUser"
id="admin.css"
media="all" rel="stylesheet" rendering="import"/>
</object>
或;访问ZMI(Zope管理界面)中的“portal_css”。你可以通过“添加”上面显示的两个样式表来做同样的事情,其中“condition”是上面“表达式”中的值。
这些是相同的 - 一个只是通过网络设置,另一个通过GenericSetup - 现在Plone会自动将一个或另一个css文件合并到每个页面,而无需更改main_template.pt。这是你应该从不的事情。