2011-10-10 96 views
2

我将自定义属性表中的信息存储在我的自定义产品之一中(然后在JavaScript文件中使用该信息)。我希望此产品能够干净地卸载,但我似乎无法弄清楚如何使用genericsetup卸载卸载自定义属性表。我知道remove="True"不起作用,但我没有太多的运气找出解决这个问题的正确方法(或任何方式)。任何建议将不胜感激。使用卸载配置文件删除自定义属性表

+0

为什么'remove =“True”'为你工作?另外,请包含版本信息(请参阅Plone控制面板)。 –

+0

大概是因为属性的一般设置处理程序尚未实现(按照http://plone.org/documentation/kb/genericsetup/creating-an-uninstall-profile) – aclark

+0

我使用plone 4.0.7与python 2.6 .7 – keiththomps

回答

4

这是混淆了至少有两个原因:

  • 我们在使用中既有"old style" and "new style" technologies积极。旧样式是指Extensions/Install.py(Python代码),新样式是指profiles/default(GS XML + setuphandlers.py Python代码)。

  • 在所有可能的情况下成功安装和卸载加载项仍需要使用旧式和新式两种技术。

如果你不关心卸载,你永远不需要使用Extensions/Install.py。如果您确实在意卸载,请创建一个Extensions/Install.py安装卸载方法。 还创建一个“卸载”配置文件(除了“默认”配置文件),例如profiles/uninstall。配置Extensions/Install.py:install()方法以在安装时执行“正常”配置文件/默认步骤。有趣的来了。

由于一些技术可以卸载“正确”通过GS,即他们尊重remove=True参数,您的扩展/ Install.py:卸载()方法应该执行“适当的” GS型材做卸载。但是,如果您的插件使用的技术无法通过GS“正确”卸载,即那些不遵守remove=True参数的技术,那么您将需要编写Python代码来执行卸载。

请参见:

以获取更多信息。

+0

我已经实现了所有这些已经实现,我的问题确实与删除属性表所需的python代码有关,我真的不知道从哪里开始,我想知道是否有人知道一些有关这方面的资源。据我所见,所有关于卸载产品的信息都具有上述信息,但没有任何关于“remove =”True“的属性的任何内容不起作用。 – keiththomps

+0

这是因为属性API与安装/卸载无关(这实际上是CMF概念)。尝试使用collective.recipe.omelette或Products.DocFinderTab来发现对象上的方法,例如http://x.aclark.net/plone/4.2.x/develop.cfg – aclark