2

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

按照本教程,我覆盖了 path_bar 类视图。我试图遵循相同的逻辑来覆盖popup.pt,但我无法让 Plone 在我的configure.zcml.

配置.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 看到我的概述。

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

提前致谢。

4

1 回答 1

2

z3c.jbot 方法通常可以正常工作。您必须确保放入jbot_templates文件夹的文件具有正确的名称。popup.pt 的路径是archetypes/referencebrowserwidget/browser/popup.pt,所以在你的情况下,文件名必须是archetypes.referencebrowserwidget.browser.popup.pt

请确保您的浏览器层.interfaces.IMyTheme在您的网站上处于活动状态 ->browserlayer.xml

于 2013-11-01T07:53:18.137 回答