Plone2.5 で作ったプロダクトをPlone3で動かす

※以下の内容自信なし.

Plone3ではegg というパッケージを作ってプロダクトをインストールできる.
従来通りの方法なら products ディレクトリに置けばいい.

# cd /opt/Plone-3.1/zinstance/products
ここにPlone2.5で作ったプロダクトを置き,zopeリスタート.

動かない.
event.log ってのが無くなったみたいで,var/log/instance.logを見る.

CMFCoreのパーミッションモジュールの呼び出し方が変わっているらしいので,該当するファイルを変更.

  • from Products.CMFCore.CMFCorePermissions import AddPortalContent
  1. from Products.CMFCore.permissions import AddPortalContent

さらに,MyProduct/Extension/Install.py
の中身でもエラー.

def install(self):
setup_tool = getToolByName(self, 'portal_setup')
setup_tool.setImportContext('profile-' + PROJECTNAME + ':default')
setup_tool.runAllImportSteps()
setup_tool.setImportContext('profile-CMFPlone:plone')

Plone2.5 では上でも動いていたけど,"CMFPlone:plone"こんなの無いといわれる.

いろんなサイトを見て,
setup_tool = getToolByName(self, 'portal_setup')
old_context = setup_tool.getImportContextID()
setup_tool.setImportContext('profile-' + PROJECTNAME + ':default')
setup_tool.runAllImportSteps()
setup_tool.setImportContext(old_context)

などとしてみたら,getImportContextID()が空文字しか返さないので意味なし.結局最後の一文コメントアウトしたらいけた.いいのかな..
setup_tool = getToolByName(self, 'portal_setup')
setup_tool.setImportContext('profile-' + PROJECTNAME + ':default')
setup_tool.runAllImportSteps()
#setup_tool.setImportContext('profile-CMFPlone:plone')

とりあえずこれでプロダクがPloneのサイト設定にも表示され,インストールまでOK.
しかし,スキンの書き方もかなり変わっているらしくエラーでまくり.