是否可以通过Zope 3浏览器覆盖CMF皮肤中的模板:页面?

joe*_*ker 3 zope plone

我试图覆盖<browser:page ...具有相同name=属性的CMF外观层提供的视图.这在Plone中是可能的,还是浏览器视图只能覆盖其他浏览器视图?

JC *_*and 5

(这有点晚了,但到底是什么)

CMF外观层覆盖浏览器视图.这就是为什么你必须@@在URL中放置浏览器视图的名称,即消除歧义,并确保调用browserview而不是CMF皮肤层模板.

所以简而言之,如果你放在@@前面,浏览器视图将覆盖,否则不会.

即:

localhost:8080/Plone/@@myview 
Run Code Online (Sandbox Code Playgroud)

覆盖:

localhost:8080/Plone/myview
Run Code Online (Sandbox Code Playgroud)

为了克服这个问题,覆盖模板在CMF皮肤层和tal:defineView变量指向你@@myview.然后,您仍然可以从CMF外观层模板访问BrowserViews方法.