gpt4 book ai didi

plone - buildout 可以创建内容作为 Plone 安装的一部分吗?

转载 作者:行者123 更新时间:2023-12-05 00:31:17 25 4
gpt4 key购买 nike

我正在尝试为站点实现 Plone 的可重复部署,并使用构建,基本上遵循 Martin Aspeli 的书 Professional Plone 4 Development。我可以用我的源产品设置系统<site>.policy<site>.theme ,并且已经自动激活了主题,但是当我运行 buildout 时,我仍然需要实例化一个 Plone 站点并激活策略产品,然后再为该站点创建标准对象。

buildout 是否可以在设置过程中检查内容对象(如 Plone 站点对象或特定文件夹)的存在,如果它们不存在并使用正确的设置创建它们?我可以在单独的 <site>.content 中执行此操作吗?产品,还是应该在 <site>.policy 中处理?

最佳答案

原则上,buildout 可以做任何你可以编码的事情,只要你创建一个配方来为你做这件事。

幸运的是,有人已经为您创建了一个创建 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

该配方提供了几个 Hook ,可让您控制站点创建,并在创建站点之前或之后执行系统命令,或者在运行 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')

关于plone - buildout 可以创建内容作为 Plone 安装的一部分吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15039672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com