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
- 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.
しかし,スキンの書き方もかなり変わっているらしくエラーでまくり.