Zope管理界面专有技术,用于更好地开发Plone

Zope管理界面专有技术,用于更好地开发Plone,plone,zope,Plone,Zope,作为一名定制Plone的典型“集成器”程序员,我应该了解ZMI的哪些信息,以帮助我更有效地编写代码?哪些设置、工具、陷阱、快捷方式和暗角可以节省我的时间并帮助我编写更好的代码 编辑:我正在文件系统上编码,使用GenericSetup配置文件进行设置更改。我知道在ZMI中进行更改是一个坏主意,通常会避开。但有时ZMI-sure很有用:用于检查工作流,或检查内容项的权限,或通过portal\u安装程序仅安装概要文件的一部分。关于ZMI真的没有什么值得知道的吗?或者还有其他有用的小道消息吗?门户网站历

作为一名定制Plone的典型“集成器”程序员,我应该了解ZMI的哪些信息,以帮助我更有效地编写代码?哪些设置、工具、陷阱、快捷方式和暗角可以节省我的时间并帮助我编写更好的代码


编辑:我正在文件系统上编码,使用GenericSetup配置文件进行设置更改。我知道在ZMI中进行更改是一个坏主意,通常会避开。但有时ZMI-sure很有用:用于检查工作流,或检查内容项的权限,或通过portal\u安装程序仅安装概要文件的一部分。关于ZMI真的没有什么值得知道的吗?或者还有其他有用的小道消息吗?

门户网站历史存储工具会占用大量磁盘空间。设置为“保存修订”的任何内容类型都会将其保存在此处,默认情况下,Plone会保留所有修订(请参见门户网站purgepolicy工具)

我希望对production Data.fs进行所有修订,但在复制用于开发之后,我要做的第一件事是清除门户网站的历史存储。程序如下:

  • 转到ZMI中的Plone站点
  • 删除门户_历史存储工具
  • 转到“门户设置”的“导入”选项卡
  • 在“选择配置文件或快照”下选择“CMFEeditions”
  • 使用handler Products.GenericSetup.tool.importToolset选择步骤
  • 取消选中“包含依赖项?”
  • 点击“导入所选步骤”重新添加门户\ U历史存储
  • 打包Data.fs并从文件系统中删除结果Data.fs.old
在我的3G Data.fs上,这个小序列删除了2.5G


我只在development Data.fs上做过这件事。如果没有真正了解情况的人的建议,我不建议在您的生产站点上这样做。

如果您想为Plone编写代码,最好避免使用ZMI。通过ZMI做事情的概念是非常有限和令人沮丧的-越来越多的事情在那里是不可用的,它将在某个时候消失


实际的Plone控制面板为您提供了大多数可使用的配置选项。对于其他任何东西,文件系统都是最好的查看位置。

需要知道的关键是,尽管许多ZMI工具通过web定制提供了快速的功能,但您通过这种方式进行的定制很难从数据库中导出。因此,它们不容易从开发环境转移到生产环境,也不容易从一种部署转移到另一种部署


理想情况下,新开发人员应该使用ZMI来探索和找到干预点。然后,学习如何在策略附加组件(产品)中实现相同的更改,这些更改从一个部署转移到另一个部署时更加重复。

通常集成商或开发人员没有理由联系ZMI other以执行可能的维护任务。几乎任何定制都可以使用Python或GenericSetup配置文件来完成。概要文件的优点是:可重复性—能够在文件系统上维护—能够将文件置于修订控制之下


能够通过ZMI工作和配置东西在一定程度上是对Plone不利的——特别是当Plone在引擎盖下做额外的东西时。所以唯一的建议是:如果可以的话,留在ZMI。ZMI不是使用Plone UI的合适替代品,只有在您真正了解自己在做什么的情况下才应该使用触摸屏。

是的,ZMI用于偶尔的维护任务,或者在按下时,用于快速而肮脏的CSS或模板调整。它不适用于任何真正的“编码”工作,在Plone的背景下,它被认为是Zope历史中的一个奇怪的、最不实用的遗留物。

在ZMI中,我发现自己回到了几个地方来获取诊断信息:

  • /控制面板/数据库:选择ZODB装入点。“缓存参数”选项卡显示已使用的指定ZODB缓存大小。“活动”选项卡显示随时间推移加载到缓存和写入的对象数

  • /Control_Panel/DebugInfo/manage:很多信息,包括显示每个线程当前正在服务的请求。“Cache detail”和“Cache extreme detail”链接提供了关于ZODB缓存中当前对象类别的信息

  • Plone站点根目录的Components选项卡:查看注册了哪些本地适配器和实用程序的快捷方式。不要按应用按钮

  • 大多数对象的“撤消”选项卡:查看最近谁提交了影响该对象的事务

  • 安全选项卡:查看对象的实际有效权限。你真的不想在90%的时间里更改这里的权限;很难跟踪权限设置的位置,而且它们很容易被工作流重置。使用Plone UI中的共享选项卡来分配本地角色。(一个例外是,我经常发现在特定上下文中为特定类型启用“添加”权限非常方便。)在Zope2.12中,此选项卡上有一个新功能,用于输入用户名,并查看对该用户有效的权限和角色,这非常方便

  • 门户目录的目录选项卡:查看为特定路径存储了哪些索引数据和元数据。(也可以从索引中删除虚假条目。)

  • portal_目录的索引选项卡:选择一个索引,然后单击其浏览选项卡以获得索引键以及与每个键关联的项的概述


门户\u操作对于更灵活的顶级导航也很有用。但最好还是通过gnericsetup进行配置

我同意其他人的观点,即不应该通过ZMI配置太多,因为它不在版本控制中,您很容易失去对更改的跟踪

但是ZMI对于调试和查看特定站点配置仍然非常有用

以下是我经常参考的ZMI中的一些工具:

  • po