2

元のpopup.ptarchetypes.referencebrowserwidget.browser.popup.ptを変更してインスタンスの変更を確認できましたが、theme/(add-in) overridesフォルダーにコピーして名前を変更してオーバーライドしようとすると、変更を確認できません。

このチュートリアルに従って、path_bar クラス ビューレットを上書きしました。popup.ptをオーバーライドするために同じロジックに従おうとしましたが、Plone に私の .pt 内のファイルを表示させることができませんでしたconfigure.zcml

configure.zcml :

<configure
    xmlns="http://namespaces.zope.org/zope"
    xmlns:i18n="http://namespaces.zope.org/i18n"
    xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
    xmlns:browser="http://namespaces.zope.org/browser"
    xmlns:plone="http://namespaces.plone.org/plone"
    i18n_domain="mytheme.theme">

    <includeDependencies package="." />

    <plone:static
    directory="resources"
    type="theme"
    />

    <genericsetup:registerProfile
           name="default"
           title="mytheme.theme"
           directory="profiles/default"
           description="Installs the mytheme.theme package"
           provides="Products.GenericSetup.interfaces.EXTENSION"
     />

    <browser:viewlet
         name="plone.path_bar"
         manager="plone.app.layout.viewlets.interfaces.IAboveContent"
         class=".customizations.PathBarViewlet"
         permission="zope2.View"
         layer=".interfaces.IMyTheme"
    />      

   <browser:page
       name="login_main_template"
       for="*"
       permission="zope.Public"
    template="login_main_template.pt"
   />  
</configure>

解決策を探しているときに、この Stackoverflow の質問を見つけました - archetypes.referencebrowserwidget から popup.pt テンプレートをカスタマイズする方法は? . 追加した/:

<include package="z3c.jbot" file="meta.zcml" />
<browser:jbot directory="jbot_templates" layer=".browser.interfaces.IThemeSpecific" />

私の前の試みからconfigure.zcmlを削除しましたbrowser:viewletが、それでも Plone に私の概要を表示させることができませんでした。

オーバーライドするには、クラス ビューレット、z3c.jbot、または単に標準の copy/rename メソッドのどのメソッドを使用する必要がありますか? Plone のドキュメントを何度も読みましたが、それでも問題を解決できません。追加のファイルを投稿する必要がある場合は、お知らせください。

前もって感謝します。

4

1 に答える 1

2

通常、z3c.jbot アプローチは問題なく機能します。フォルダに配置するファイルjbot_templatesの名前が正しいことを確認する必要があります。popup.ptへのパスはarchetypes/referencebrowserwidget/browser/popup.pt、したがって、あなたの場合、ファイル名はarchetypes.referencebrowserwidget.browser.popup.pt

サイトでbrowserlayer.interfaces.IMyThemeがアクティブであることを確認してください ->browserlayer.xml

于 2013-11-01T07:53:18.137 に答える