跳转到主要内容

简化Plone皮肤化

项目描述

简介

本软件包提供简化Plone皮肤化的功能。它基于这样的想法:您不需要太多地修改Plone模板,而是可以取任何您想要的布局并将其置于Plone之上。

这意味着所有编辑都是使用Plone皮肤完成的,但对于匿名用户(或没有正确权限的用户),将显示另一个皮肤。这基于以下描述的规则。无需进行URL切换或iframe魔术。

它与collective.skinny类似,但此软件包不是为每种内容类型强制定制模板,而是尝试重用已存在的视图和模板。您也不需要特殊的服务器配置来重定向到++skin++等。通过一些编码,也可以将其用于社区网站,因为人们可以登录,并根据权限设置(如果设置了权限)看到熟悉的Plone界面或公共皮肤。此外,没有必要修改以防止Plone模板泄漏,因为您希望以原样显示所有与Plone相关的模板。

完整示例在此提供:http://pypi.python.org/pypi/anthill.exampletheme

安装

  • 在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 (142.4 kB 查看哈希值)

上传时间 源代码

由以下支持