避免创建Plone的默认内容

时间:2016-08-26 13:12:07

标签: plone genericsetup

我正在一个项目中创建一个Plone 4.3站点,该站点安装了plone.app.contenttypes作为默认内容类型。创建网站后,我会看到所有默认内容(首页和一些文件夹和集合)仍然是基于Archetypes的内容。

我想避免创建该内容,我想知道是否有一种更好的方法可以在安装后的步骤中手动删除它。

我默认需要一个空站点。

2 个答案:

答案 0 :(得分:7)

您需要按以下方式设置Plone网站:

from Products.CMFPlone.factory import addPloneSite
from Products.CMFPlone.factory import _DEFAULT_PROFILE


default_profiles =('plonetheme.classic:default', 'plonetheme.sunburst:default')

return addPloneSite(
    app,
    site_id,
    title=title,
    profile_id=_DEFAULT_PROFILE,
    extension_ids=default_profiles,
    setup_content=False,
    default_language='en')

重要的部分是setup_content=False

没有初始内容,没有portlet ......没有。

您可以在ftw.inflator - >中查看此完整工作示例https://github.com/4teamwork/ftw.inflator/blob/00b8b984e7dc1052a7fb94d2e82455a66b271da7/ftw/inflator/bundle.py#L23

答案 1 :(得分:0)

默认情况下,有两种方法可以修补Plone以实现此行为。

一种方法是使用z3c.jbot覆盖以下模板:

Products/CMFPlone/browser/templates/plone-addsite.pt

另一种方法是在Buildout配置中使用collective.recipe.patch,如下所示:

parts += patches
...
[patches]
recipe = collective.recipe.patch
egg = Products.CMFPlone==4.3.10
patches = ${buildout:directory}/patches/setup-content-false.patch

补丁文件的内容是这样的(我很想知道如何在不必编辑git diff命令的输出的情况下获得此内容):

diff --git Products/CMFPlone/browser/templates/plone-addsite.pt Products/CMFPlone/browser/templates/plone-addsite.pt
index bc83eb0..3aebbfe 100644
--- Products/CMFPlone/browser/templates/plone-addsite.pt
+++ Products/CMFPlone/browser/templates/plone-addsite.pt
@@ -99,7 +99,7 @@
         </span>
       </div>
       <tal:content tal:condition="not:advanced">
-        <input type="hidden" name="setup_content:boolean" value="true" />
+        <input type="hidden" name="setup_content:boolean" />
       </tal:content>

       <tal:baseprofile condition="python: len(base_profiles) > 1">