Plone.orgおよびWebLionのチュートリアルに従って、テーマのフッターにカスタム ポートレット マネージャーを作成しようとしています。
私がやろうとしているのは、ビューレット マネージャーと、ポートレット マネージャーとして機能するビューレットをテーマに追加することです。
ContentProviderLookupError
ビューレットのテンプレートに TAL ブロックが含まれている場合に、ポートレット マネージャーとして機能するビューレットの を取得しています。viewletmanager と viewlet テンプレートは、TAL ブロックを省略したかどうかがわかる限り、ページに正しく表示されます。
テーマはここから sane_plone_addon_template を使用して行われます
私はここで何が間違っているのか本当にわかりません.Ploneに関しては完全な初心者であることは本当に役に立ちません.
これが私のconfigure.zcmlです
<browser:viewletManager
name="footerPortlets1"
provides=".interfaces.IspFooterPortletsViewletManager"
class="plone.app.viewletmanager.manager.OrderedViewletManager"
layer=".interfaces.IThemeSpecific"
permission="zope2.View"
/>
<browser:viewlet
name="footerPortlets"
manager=".interfaces.IspFooterPortletsViewletManager"
template="templates/footerPortlets.pt"
layer=".interfaces.IThemeSpecific"
permission="zope2.View"
/>
profile /default/ のportlets.xml
<?xml version="1.0"?>
<portlets
xmlns:i18n="http://xml.zope.org/namespaces/i18n"
i18n:domain="plone">
<portletmanager
name="footerPortlets"
type="mytheme.interfaces.IFooterPortlets"
/>
</portlets>
インターフェイス.py
from plone.portlets.interfaces import IPortletManager
from plone.app.portlets.interfaces import IColumn
class IFooterPortlets(IPortletManager, IColumn):
""""""
ビューレット テンプレートfooterPortlets.ptはこちら
<div id = "footer-portlets-container">
test
<tal:block replace="structure provider:footerPortlets" /> <!-- This part fails -->
</div>
エラーのスタックトレースは次のとおりです。
Traceback (innermost last):
Module ZPublisher.Publish, line 126, in publish
Module ZPublisher.mapply, line 77, in mapply
Module ZPublisher.Publish, line 46, in call_object
Module Shared.DC.Scripts.Bindings, line 322, in __call__
Module Shared.DC.Scripts.Bindings, line 359, in _bindAndExec
Module Products.CMFCore.FSPageTemplate, line 237, in _exec
Module Products.CMFCore.FSPageTemplate, line 177, in pt_render
Module Products.PageTemplates.PageTemplate, line 79, in pt_render
Module zope.pagetemplate.pagetemplate, line 113, in pt_render
Module zope.tal.talinterpreter, line 271, in __call__
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 888, in do_useMacro
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 533, in do_optTag_tal
Module zope.tal.talinterpreter, line 518, in do_optTag
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 531, in do_optTag_tal
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 742, in do_insertStructure_tal
Module Products.PageTemplates.Expressions, line 218, in evaluateStructure
Module zope.tales.tales, line 696, in evaluate
- URL: file:/home/user/Plone/zinstance/src/santasport/santasport/templates/plonetheme.sunburst.skins.sunburst_templates.main_template.pt
- Line 181, Column 3
- Expression: <StringExpr u'footerPortlets1'>
- Names:
{'container': <ATDocument at /Santasport/front-page>,
'context': <ATDocument at /Santasport/front-page>,
'default': <object object at 0xb77bc7d0>,
'here': <ATDocument at /Santasport/front-page>,
'loop': {},
'nothing': None,
'options': {'args': ()},
'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0xb4a8e34c>,
'request': <HTTPRequest, URL=http://127.0.0.1:8080/Santasport/front-page/document_view>,
'root': <Application at >,
'template': <FSPageTemplate at /Santasport/front-page/document_view>,
'traverse_subpath': [],
'user': <PropertiedUser 'admin'>}
Module zope.contentprovider.tales, line 80, in __call__
Module plone.app.viewletmanager.manager, line 154, in render
Module plone.app.viewletmanager.manager, line 85, in render
Module zope.browserpage.simpleviewclass, line 44, in __call__
Module Products.Five.browser.pagetemplatefile, line 125, in __call__
Module Products.Five.browser.pagetemplatefile, line 59, in __call__
Module zope.pagetemplate.pagetemplate, line 113, in pt_render
Module zope.tal.talinterpreter, line 271, in __call__
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 531, in do_optTag_tal
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 742, in do_insertStructure_tal
Module Products.PageTemplates.Expressions, line 218, in evaluateStructure
Module zope.tales.tales, line 696, in evaluate
- URL: /home/user/Plone/zinstance/src/santasport/santasport/templates/footerPortlets.pt
- Line 3, Column 1
- Expression: <StringExpr u'footerportlets'>
- Names:
{'args': (),
'container': <ATDocument at /my-theme/front-page>,
'context': <ATDocument at /my-theme/front-page>,
'default': <object object at 0xb77bc7d0>,
'here': <ATDocument at /my-theme/front-page>,
'loop': {},
'nothing': None,
'options': {},
'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0xb4a7dcfc>,
'request': <HTTPRequest, URL=http://127.0.0.1:8080/my-theme/front-page/document_view>,
'root': <Application at >,
'template': <Products.Five.browser.pagetemplatefile.ViewPageTemplateFile object at 0xb5e055ac>,
'traverse_subpath': [],
'user': <PropertiedUser 'admin'>,
'view': <Products.Five.viewlet.viewlet.SimpleViewletClass from /home/user/Plone/zinstance/src/my-theme/my-theme/templates/footerPortlets.pt object at 0xb4a3f52c>,
'views': <Products.Five.browser.pagetemplatefile.ViewMapper object at 0xb5e2cdac>}
Module zope.contentprovider.tales, line 66, in __call__
ContentProviderLookupError: footerPortlets
編集:
ビューレットをviewlets.xmlに追加してprofiles-folderに追加することで、このコードをある程度機能させました(チュートリアルの1つがFMLと述べたように)が、実際にはそれ以上テストしませんでしたが、代わりにMikkoのチュートリアルを調べました。箱から出して本当にうまくいきました。
Ps: この質問をマークアップする方法はありますか?