我试图达到的Plone的网站可重复的部署和使用扩建,基本上遵循马丁Aspeli的书专业Plone 4中发展 。 我可以将系统设置为我的源产品<site>.policy
和<site>.theme
,并自动启动主题,但是当我运行扩建,我还是要实例化一个Plone站点并激活政策的产品,之前创建该网站的标准对象。
能扩建检查像安装在Plone站点对象或特定文件夹的内容对象的存在,并创造他们,如果不正确的设置它们存在? 我可以这样做,在一个单独的<site>.content
产品,或者这应该在处理<site>.policy
?
原则上扩建可以做任何你能代码,只要您创建一个食谱做的东西给你。
幸运的是,有人已经创建了一个配方创建Plone站点给你,叫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
运行create_content.py
与变量脚本app
和site
集:
from Products.CMFPlone.utils import _createObjectByType
if 'someobject' not in site:
_createObjectByType('SomeType', site, 'someobject', title='Foo Bar')