gpt4 book ai didi

plone - 如何覆盖 Plone 的特殊情况内容的显示菜单?

转载 作者:行者123 更新时间:2023-12-04 15:26:36 25 4
gpt4 key购买 nike

为了获得一个 Plone 文件夹的一次性 View ,我做了这样的事情(不是所有的代码都显示):

configure.zcml :

<!-- Marker interface. Set this on the folder through the ZMI
interfaces tab.
-->
<interface interface=".interfaces.IMySpecialFolder" />

browser/configure.zcml :
<!-- Special case view. Set as the folder's view through the ZMI
properties tab (layout property).
-->
<browser:page
for="..interfaces.IMySpecialFolder"
name="special"
template="special.pt"
permission="zope2.View"
/>

这很好用,但我想控制文件夹的显示菜单以列出 仅限 我的特殊情况 View 。我可以添加它,它只显示在我标记的文件夹中,但我必须更改站点范围的 ATFolder FTI。

browser/configure.zcml :
<include package="plone.app.contentmenu" />

<browser:menuItem
for="..interfaces.IMySpecialFolder"
menu="plone_displayviews"
title="Special view"
action="@@special"
description="Special case folder view"
/>

profiles/default/types/Folder.xml :
<?xml version="1.0"?>
<object name="Folder">
<property name="view_methods" purge="False">
<element value="special"/>
</property>
</object>

当然,我不能在不影响站点上每个文件夹的情况下删除现有的可用 View 方法。

有没有办法在不更改内容类型的 FTI 的情况下进行这种一次性显示菜单调整?

实际上,这个问题似乎已经解决了。 p4a.z2utils补丁 CMFDynamicViewFTIIDynamicallyViewable 获取可用 View 列表适配器查找。 ( dateable.chronos 使用此机制来查看其文件夹日历 View )。所以我的问题变成了:

有没有办法在不更改内容类型的 FTI 且不修补 Plone 的情况下进行这种一次性显示菜单调整?

最佳答案

plone 显示菜单生成器使用 ISelectableBrowserDefault获取显示菜单中的可用选项(请参阅
http://dev.plone.org/plone/browser/plone.app.contentmenu/trunk/plone/app/contentmenu/menu.py#L220 )

所以我认为(但我没有尝试过)如果你为更具体的接口(interface)定义一个适配器(在你的情况下为 IMySpecialFolder ),它提供了 Products.CMFDynamicViewFTI.interface.ISelectableBrowserDefault它应该工作。

适配器应具有plone.app.contentmenu.menu.DisplayMenu 所需的方法多于。

关于plone - 如何覆盖 Plone 的特殊情况内容的显示菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6272578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com