简化Plone皮肤化
项目描述
简介
本软件包提供简化Plone皮肤化的功能。它基于这样的想法:您不需要太多地修改Plone模板,而是可以取任何您想要的布局并将其置于Plone之上。
这意味着所有编辑都是使用Plone皮肤完成的,但对于匿名用户(或没有正确权限的用户),将显示另一个皮肤。这基于以下描述的规则。无需进行URL切换或iframe魔术。
它与collective.skinny类似,但此软件包不是为每种内容类型强制定制模板,而是尝试重用已存在的视图和模板。您也不需要特殊的服务器配置来重定向到++skin++等。通过一些编码,也可以将其用于社区网站,因为人们可以登录,并根据权限设置(如果设置了权限)看到熟悉的Plone界面或公共皮肤。此外,没有必要修改以防止Plone模板泄漏,因为您希望以原样显示所有与Plone相关的模板。
安装
在buildout.cfg中包含anthill.skinner
确保也包含z3c.autoinclude
重新运行buildout
重新启动您的Zope实例
转到portal_quickinstaller并安装anthill.skinner
注意:确保重新启动Zope - 这是因为处理器仅在启动时评估
底部应出现一个新的链接“显示预览”
创建主题(简单方法)
在portal_skins中创建一个新的文件夹custom_public
在portal_skins/manage_propertiesForm中将此文件夹包含在publicview中
将anthill_skinner_templates/main_template定制为custom_public
将图像和CSS也放入此文件夹
查看anthill.exampletheme以获取更详细的示例
依赖项
z3c.autoinclude
anthill.tal.macrorenderer
测试使用
Plone 4.x(对于Plone 3.x使用版本<0.7)
优点
无需理解复杂的Plone模板逻辑
无需为编辑器编写新手册 - 选择任何最近的Plone书籍,因为编辑界面保持不变
更新到新版本的Plone时工作量较小,因为你没有改动太多模板
你的主题/设计几乎不受限制,因为不需要将所有编辑功能(选项卡等)包含到你的主题中
由于不需要过多地调整Plone内部逻辑/模板,你可以节省很多时间
缺点
编辑器没有原地编辑功能 - 虽然可以在每个上下文中切换到编辑视图,但需要多点击一次
将Plone小部件包含到你的主题中稍微复杂一些
类似包
collective.skinny
collective.editskinswitcher
规则
此包不是基于基于URL的规则,而是使用适合大多数部署的简单规则。如果您不喜欢这些规则,则可以轻松覆盖它们。
显示公共皮肤的规则如下(顺序很重要)
用户是匿名用户
用户已认证但没有正确的权限(anthill:查看CMS)
用户已认证,具有正确的权限但已激活预览
存在一个名为anthill.skinner.preview的请求变量
所有规则都可以在browser/handling#mustDisplayPublicSkin.中找到
覆盖规则
您可以通过定义适配器来覆盖这些规则。请注意,如果您覆盖规则,则需要覆盖所有规则!
configure.zcml
<adapter for="anthill.skinner.interfaces.ISkinHandler" provides="anthill.skinner.interfaces.IRuleOverwrite" factory="your.product.publicview.RuleMaker" />
publicview.py
class RuleMaker: implements(IRuleOverwrite) def __init__(self, context): self.context = context def mustDisplayPublicView(self, context, request): return True
如何创建自己的皮肤
为了创建自己的皮肤,首先查看此包中包含的非常简单的示例。它展示了如何定义菜单以及内容将如何显示。
请注意,它旨在不加载Plone附带的所有CSS或JavaScript。
然后,您可以根据anthill.skinner创建自己的主题,只需简单地使用相同的皮肤和层来为您的资源。使用anthill.skinner.interfaces.IPublicSkinLayer作为层,以及将您的内容放入其中的皮肤名称为publicview。
感谢
collective.skinny的开发者
Plone社区
banality设计 & 通信为此提供资金(所有anthill.*包)
此包是anthill.*生态系统的一部分,为世界各地许多网站提供动力 - 所有这些网站都是基于此包构建的(最初用于Plone 2.x)。
变更日志
0.8 (2010-11-30)
添加了选择菜单项语言的选项 [spamsch]
Plone 4兼容性 [spamsch]
0.6 (2009-11-27)
许多其他对实用方法的修复 [spamsch]
修复了渲染器以使用上下文进行宏渲染 [spamsch]
修复了navtree以始终使用文件夹状上下文 [spamsch]
现在考虑显示状态以显示 [spamsch]
添加了检查上下文是否为门户根的方法 [spamsch]
修复了严重的用户认证错误,即使用户已认证,skinner也不会切换到CMS模式 [spamsch]
0.5 - 2009-10-28
修复了main_template始终显示错误的严重错误 [spamsch]
0.4 - 2009-08-14
修复了skinner仅在使用portal_quickinstaller安装时才激活 [spamsch]
0.3 - 2009-08-09
修复了configure.zcml中的z3c.autoinclude包含 [spamsch]
0.2 - 2009-08-08
添加了公共视图的菜单生成器,以简化菜单分离和使用 [spamsch]
将预览激活和去激活链接固定为使用当前上下文,并粘附到[spamsch]文件夹
0.1 - 2009-06-08
初始发布
项目详情
anthill.skinner-0.8.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 989160c8d84bf4b7d2d0224aa4f5920b7cf11c768643007f46fd05c22e874803 |
|
MD5 | 00a7118e2b8223d0f04fd3af8d0cb793 |
|
BLAKE2b-256 | b4837e0961e109219e993c9394e1a04a24c0c82e8f92f0b3017968d6a9f68fa4 |