我正在尝试为站点实现 Plone 的可重复部署,并使用构建,基本上遵循 Martin Aspeli 的书专业Plone 4开发。我可以使用我的源产品设置系统<site>.policy
and <site>.theme
,并已自动激活主题,但当我运行 buildout 时,我仍然必须实例化 Plone 站点并激活策略产品,然后再为站点创建标准对象。
构建过程中是否可以在设置过程中检查内容对象(例如 Plone 站点对象或特定文件夹)是否存在,并在不存在时使用正确的设置创建它们?我可以单独做吗<site>.content
产品,或者应该在<site>.policy
?
原则上,构建可以做任何你可以编码的事情,只要你创建一个配方来为你做这件事。
幸运的是,有人已经创建了一个配方来为您创建克隆站点,称为collective.recipe.plonesite:
[buildout]
parts =
...
plonesite
[plonesite]
recipe = collective.recipe.plonesite
site-id = <site>
profiles-initial =
<site>.policy.profile-default
post-extras =
${buildout}/src/<site>.content/site/content/create_content.py
该配方提供了几个挂钩,可让您控制站点创建,并在创建站点之前或之后执行系统命令,或者在运行 GS 配置文件之前或之后执行额外的 python 代码。
在上面的例子中post-extras
runs a create_content.py
带有变量的脚本app
and site
set:
from Products.CMFPlone.utils import _createObjectByType
if 'someobject' not in site:
_createObjectByType('SomeType', site, 'someobject', title='Foo Bar')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)