我的 Plone 产品没有出现在快速安装程序中
My Plone product doesn't show up in the quickinstaller
我有一个带有传统产品 BaseProduct
的 Plone 站点(版本直接在 Zope 安装的 Products
文件系统目录中);其余设置基于 buildout
。
对于项目的一个分支,我需要另一个产品 AdditionalProduct
,我用同样的方法制作了它(我知道这不是当前最先进的方法;但它以前是这样工作的我...)。
现在我 能够使用快速安装程序安装 AdditionalProduct
(现在它只包含一个皮肤目录和一个模板,但这会改变,当然)。
遗憾的是,这不再有效;该产品不再显示在快速安装程序中。没有可见的错误;我能够在实例启动期间 pdb.set_trace()
它,并且 error.log 也没有错误。
profiles.zcml
文件如下所示:
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
i18n_domain="BaseProduct">
<include package="Products.GenericSetup" file="meta.zcml" />
<genericsetup:registerProfile
name="default"
title="AdditionalProduct"
directory="profiles/default"
description="Extension profile for AdditionalProduct."
provides="Products.GenericSetup.interfaces.EXTENSION"
/>
</configure>
(从另一个分支的早期 AdditionalProduct
复制和更改;我不太理解 "meta.zcml"
部分。)
我该如何调试它?
我愿意 "eggify" 我的产品(AdditionalProduct
首先,因为它有问题;也许 BaseProduct
稍后也是),但我不确定工作量和操作方法会很有用...
您可以通过排除以下情况来调试它:
- 未加载 ZCML(在 profiles.zcml 中引入语法错误并且
重新启动 Plone 以确保 profiles.zcml 已加载。)
- 您没有
'z3c.autoinclude.plugin': 'target = plone'
入口点(不适用,因为您没有使用 Python 包)
- 你的产品没有被 Zope2 加载,因为它不在产品文件夹中,或者有一些相关的问题,例如缺少
__init__.py
.
此外,您可能不需要以下内容,因为在您的产品加载之前,Plone 应该已经包含了它:
<include package="Products.GenericSetup" file="meta.zcml" />
(而file='meta.zcml'
表示"load meta.zcml instead of the default file name i.e. configure.zcml")
最后,我建议创建一个 Python 程序包(又称 "eggify")。请参阅以下内容以了解概览:
您的产品应该有一个 configure.zcml
文件,其中包含您的 profiles.zcml
和以下指令:
<include file="profiles.zcml" />
是这样吗?
我有一个带有传统产品 BaseProduct
的 Plone 站点(版本直接在 Zope 安装的 Products
文件系统目录中);其余设置基于 buildout
。
对于项目的一个分支,我需要另一个产品 AdditionalProduct
,我用同样的方法制作了它(我知道这不是当前最先进的方法;但它以前是这样工作的我...)。
现在我 能够使用快速安装程序安装 AdditionalProduct
(现在它只包含一个皮肤目录和一个模板,但这会改变,当然)。
遗憾的是,这不再有效;该产品不再显示在快速安装程序中。没有可见的错误;我能够在实例启动期间 pdb.set_trace()
它,并且 error.log 也没有错误。
profiles.zcml
文件如下所示:
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
i18n_domain="BaseProduct">
<include package="Products.GenericSetup" file="meta.zcml" />
<genericsetup:registerProfile
name="default"
title="AdditionalProduct"
directory="profiles/default"
description="Extension profile for AdditionalProduct."
provides="Products.GenericSetup.interfaces.EXTENSION"
/>
</configure>
(从另一个分支的早期 AdditionalProduct
复制和更改;我不太理解 "meta.zcml"
部分。)
我该如何调试它?
我愿意 "eggify" 我的产品(AdditionalProduct
首先,因为它有问题;也许 BaseProduct
稍后也是),但我不确定工作量和操作方法会很有用...
您可以通过排除以下情况来调试它:
- 未加载 ZCML(在 profiles.zcml 中引入语法错误并且 重新启动 Plone 以确保 profiles.zcml 已加载。)
- 您没有
'z3c.autoinclude.plugin': 'target = plone'
入口点(不适用,因为您没有使用 Python 包) - 你的产品没有被 Zope2 加载,因为它不在产品文件夹中,或者有一些相关的问题,例如缺少
__init__.py
.
此外,您可能不需要以下内容,因为在您的产品加载之前,Plone 应该已经包含了它:
<include package="Products.GenericSetup" file="meta.zcml" />
(而file='meta.zcml'
表示"load meta.zcml instead of the default file name i.e. configure.zcml")
最后,我建议创建一个 Python 程序包(又称 "eggify")。请参阅以下内容以了解概览:
您的产品应该有一个 configure.zcml
文件,其中包含您的 profiles.zcml
和以下指令:
<include file="profiles.zcml" />
是这样吗?