Zope Management Interface专有技术,可以更好地开发Plone

时间:2011-02-23 23:12:27

标签: plone zope

作为一个典型的“集成商”程序员定制Plone,我应该如何了解ZMI以帮助我更有效地编码?有什么设置,工具,陷阱,快捷方式和黑暗角落可以节省我的时间并帮助我编写更好的代码?

编辑:将其视为我在文件系统上编码的读数,使用GenericSetup配置文件进行设置更改。我知道在ZMI中做出改变是一个坏主意,并且通常很明确。但偶尔ZMI肯定是有用的:用于检查工作流,或检查内容项的权限,或通过portal_setup仅安装配置文件的一部分。 ZMI真的没什么值得了解的吗?或者还有其他有用的小花絮吗?

8 个答案:

答案 0 :(得分:9)

ZMI中有一些地方我发现自己要回来获取诊断信息:

  • / Control_Panel / Database:选择ZODB挂载点。 “缓存参数”选项卡显示已使用的指定ZODB缓存大小的大小。 “活动”选项卡显示加载缓存和写入的对象数量。

  • / Control_Panel / DebugInfo / manage:大量信息,包括显示当前时刻每个线程正在服务的请求。 “缓存详细信息”和“缓存极端详细信息”链接提供有关当前ZODB缓存中的对象类别的信息。

  • Plone站点根目录的组件选项卡:快速查看本地适配器和实用程序的注册方式。不要点击申请按钮!

  • 撤消大多数对象的标签:查看最近提交了影响该对象的交易的人。

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

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

  • portal_catalog的“索引”选项卡:选择一个索引,然后单击其“浏览”选项卡,以全面了解索引的键以及与每个键关联的项目。

答案 1 :(得分:7)

要知道的关键是,虽然许多ZMI工具提供快速的网络自定义,但您以这种方式进行的自定义很难从数据库中导出。因此,它们不容易从开发环境转移到生产环境或从一个部署移动到另一个部署。

理想情况下,新开发人员应使用ZMI来探索和查找干预点。然后,了解如何在可以更可重复地从一个部署移动到另一个部署的策略添加(产品)中实现相同的更改。

答案 2 :(得分:6)

如果要为Plone编写代码,最好避免使用ZMI。通过ZMI做事的概念是非常有限的和沮丧的 - 越来越多的东西在那里没有,它会在某些时候消失。

实际的Plone控制面板为您提供了大多数可以使用的配置选项。对于其他任何事情,文件系统是最好看的地方。

答案 3 :(得分:4)

我同意其他海报,你不应该通过ZMI配置太多,因为它不是版本控制,你很容易忘记更改。

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

以下是我经常咨询的ZMI中的一些工具:

  • portal_javascripts :关闭调试功能。检查哪个 脚本在那里,它们是什么 渲染的条件,是他们 发现?
  • portal_css :与portal_javascripts基本相同,但是 样式表。
  • portal_types :查看类型的属性。是真的吗 全球创造?你可以选择什么类型? 在里面创造吗?什么是默认值 视图?等
  • portal_catalog :有哪些索引?什么元数据在那里 目录?您可以清除并重建 目录,甚至浏览 目录。
  • portal_workflow :状态/转换/权限是什么 在某个工作流程?什么工作流程是活跃的 某种类型?
  • portal_properties / site_properties :查看和设置网站范围的属性。一个 很多这些设置都在 plone_control_panel(即在...之外) ZMI),但在这里他们是一个 页面和ZMI更快 导航。
  • portal_skins :查看已安装的皮肤文件夹。见 皮肤层的排序(通过属性选项卡)。你也可以编辑 皮肤目录中的模板,样式表和javascripts。 不建议!但对调试很有用。
  • portal_setup :一些非常庞大而复杂的Plone网站可以破解 你只需添加/删除/重新安装附加组件。通常,运行特定的GenericSetup更新会更安全。例如,如果您添加了新的portlet,那么 通过portal_setup(导入选项卡)导入特定(portlets.xml)步骤,然后重新安装整个产品。
  • portal_actions :配置哪些操作可见/存在。
  • portal_quickinstaller :快速重新安装,卸载附加组件。经常 比...更快更轻巧 加载Plone控制面板 等效。
  • acl_users :有时使用像LDAPUserFolder这样的插件时,你会 必须在acl_users中挖掘以配置和测试它。你也可以 在这里创建用户,尽管通过Plone做到这一点更好 控制面板(即不在ZMI中)

在ZMI中还有更多的工具和东西需要调整(并打破你的网站),但上面提到的是90%的时间。

答案 4 :(得分:2)

portal_historiesstorage工具可能占用大量磁盘空间。设置为保存修订的任何内容类型都将它们保存在此处,默认情况下Plone会保留所有修订版本(请参阅portal_purgepolicy工具)。

我想要对生产Data.fs进行所有修订,但在获取开发副本后,我要做的第一件事是清除portal_historiesstorage。程序是:

  • 转到ZMI的Plone网站
  • 删除portal_historiesstorage工具
  • 转到portal_setup,导入标签
  • 在“选择个人资料或快照”下,选择“CMFEditions”
  • 使用处理程序Products.GenericSetup.tool.importToolset
  • 选择步骤
  • 取消选中“包含依赖项?”
  • 点击“导入所选步骤”以重新添加portal_historiesstorage
  • 打包Data.fs并从文件系统中删除生成的Data.fs.old

在我的3G Data.fs上,这个小序列删除了2.5G!

我只在开发Data.fs上做过这个。如果没有真正了解的人的建议,我建议不要在生产网站上这样做。

答案 5 :(得分:1)

对于可能的维护任务,集成商或开发人员通常没有理由接触ZMI其他人。几乎所有自定义都可以使用Python或GenericSetup配置文件完成。配置文件的优点是:可重复性 - 能够维护文件系统 - 能够将文件置于版本控制之下。

能够通过ZMI工作和配置东西部分工作反对 Plone - 特别是当Plone在引擎盖下做额外的事情时。因此,唯一的建议是:如果可以的话,留下ZMI。 ZMI不适合使用Plone UI,只有在你真正知道自己在做什么时才应该触摸。

答案 6 :(得分:1)

是的,ZMI是偶尔进行的维护任务,或者在按下时,是一个快速而肮脏的CSS或模板调整。它不适用于任何真正的“编码”工作,并且在Plone的背景下最好被认为是Zope历史中一个奇怪且极少有用的余地。

答案 7 :(得分:0)

portal_actions对于更灵活的顶级导航也很有用。但同样最好通过gnericsetup配置。