如何在Plone中覆盖popup.pt?

时间:2013-10-31 19:27:31

标签: override plone archetypes

我能够修改原始 popup.pt 并查看我的实例中的更改,但是当我尝试通过复制并重命名为我的主题中的archetypes.referencebrowserwidget.browser.popup.pt来覆盖它时(添加-in)覆盖文件夹我无法看到我的更改。

我在此tutorial之后覆盖了path_bar类视图。我试图按照相同的逻辑来覆盖 popup.pt ,但我无法让Plone在我的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问题 - How to customize the popup.pt template from archetypes.referencebrowserwidget?。我添加了/:

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

到我的configure.zcml并从之前的尝试中删除了browser:viewlet,但我仍然无法让Plone看到我的概述。

我需要使用哪种方法来覆盖,类视图,z3c.jbot或只是标准的复制/重命名方法?我已多次通过Plone文档阅读,但仍无法解决我的问题。如果我需要发布任何其他文件,请告诉我。

提前致谢。

1 个答案:

答案 0 :(得分:2)

z3c.jbot方法通常运行正常。 您必须确保放入jbot_templates文件夹的文件具有正确的名称。 popup.pt的路径是archetypes/referencebrowserwidget/browser/popup.pt, 因此,在您的情况下,文件名必须是archetypes.referencebrowserwidget.browser.popup.pt

请确保您的浏览器.interfaces.IMyTheme在您的网站上有效 - &gt; browserlayer.xml