2013-02-23 2 views
3

나는 Plone을 사이트에 반복적으로 배치하고, 기본적으로 Martin Aspeli의 책 Professional Plone 4 Development에 따라 빌드 아웃을 사용하려고합니다. 내 소스 제품 <site>.policy<site>.theme으로 시스템을 설정할 수 있으며 자동으로 테마를 활성화했지만 빌드 아웃을 실행할 때 사이트의 표준 개체를 만들기 전에 Plone 사이트를 인스턴스화하고 정책 제품을 활성화해야합니다.Plone 설치의 일부로 컨텐츠를 빌드 아웃 할 수 있습니까?

설치 중에 Plone 사이트 개체 또는 특정 폴더와 같은 콘텐츠 개체의 존재 여부를 확인하고 올바른 설정이없는 경우 만들어 낼 수 있습니까? 별도의 제품에서이 작업을 수행 할 수 있습니까? 아니면 <site>.policy에서 처리해야합니까?

답변

5

기본적으로 빌드 아웃은 코드를 작성할 수있는 모든 것을 할 수 있습니다.

는 다행히, 누군가가 이미 당신을 위해 플론 (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 프로파일이 실행되기 전후에 추가 파이썬 코드가 생성됩니다. 정말 유용

from Products.CMFPlone.utils import _createObjectByType 

if 'someobject' not in site: 
    _createObjectByType('SomeType', site, 'someobject', title='Foo Bar') 
+0

: 위의 예 post-extras에서

는 변수 appsite 세트와 create_content.py 스크립트를 실행! 표준 폴더, 빈 페이지 등과 같은 콘텐츠 객체는 어떻습니까? –

+0

@IaseHallam : 두 가지 옵션이 있습니다. 자신 만의 파이썬 메서드를 만들거나 (제한적) 일반 설정 지원을 사용하여 내용을 만듭니다. 나는 프로젝트를 훨씬 융통성있게 사용하여 전자를 사용합니다. 'post-extras'로 실행하십시오. –

+0

@MartijnPieters : 설명을 위해서 : 변수를 두 번 사용하여 buildout.cfg-example의 마지막 줄도 '$ {buildout}/src/ .content/ /content/create_content.py'로 변경할 수 있습니까? –

관련 문제