我们的情况是Products.PloneGlossary词汇表的使用应该受到内容类型(开箱即用)和路径的限制(词汇表应该只用于 /one/part/of/my/plone/地点)。有没有办法做到这一点?
5 回答
这似乎是开箱即用的配置。在configlet 中确保“对所有内容全局使用词汇表?” 未选中:然后将您的词汇表放在您希望它可用的路径中,并在站点根目录放置一个空词汇表。
好吧,您可以克隆内容类型,然后仅在您希望它们启用词汇表的部分中使用这些内容类型。但这很不雅,我承认。其他人可能对如何将 PloneGlossary 修改为像这样“放置”有更好的想法。
不确定 PloneGlossary 是如何工作的,但是您是否尝试使用权限来限制它?使用“共享”选项卡分配允许 PloneGlossary 在某些文件夹上的本地角色...
我认为最简单的解决方案是根据自己的需要自定义注册 ploneglossary.js 文件的“条件”。我将扩展相关内容类型的架构并为其提供一个新字段“showGlossary”。条件可以检查对象的值。
这种方法不需要对 PloneGlossary 进行任何自定义,可以直接在我的策略包中完成。
如果你在 Plone 4 上,你有一个 body 类“portaltype-xxx”。也许您可以自定义一些词汇表 javascript,仅当此类附加在 BODY 元素上时才运行,几行 jQuery:
if (jq('body').hasClass('portaltype-xxx')) { ... }
或者,您可以将 portal_javascript 工具中的词汇表 javascript 条件更改为仅在 object.portal_type=='xxx' 时出现。
祝你好运