我想知道是否有任何产品可以帮助我从“网站设置”中的可用加载项列表中隐藏加载项。让我解释一下原因。
我正处于托管多个客户Plone网站在同一个Zope实例上运行的情况,每个网站都使用不同的Data.fs,我为每个客户定制做了一些包,比如“Customer A Theme” ,“客户B主题”。现在,因为它们位于同一个Zope实例上,所以客户A可以在其网站附加组件列表中看到“客户B主题”也可用,这正是我想要避免的。
隐藏附加组件列表中的产品在其他一些情况下也很有用,例如,技术娴熟的客户可以安装PloneFormGen,而普通客户则不会。
我不知道这样的产品是否存在,我愿意制作一个产品,如果你们中的一些人可以指出我正确的方向。
谢谢
答案 0 :(得分:4)
在__ init__.py中放置
from zope.interface import implements
from Products.CMFQuickInstallerTool.interfaces import INonInstallable
class HiddenProfiles(object):
"""This hides zope2 profiles from the add-ons control panel/
quick installer tool.
"""
implements(INonInstallable)
def getNonInstallableProducts(self):
return ['DOTTED_PACKAGE_PATH']
然后在configure.zcml
中 <utility
factory=".HiddenProfiles"
name="DOTTED_PACKAGE_PATH"
/>
将* DOTTED_PACKAGE_PATH *替换为真实姓名,即 collective.myfancypackage 。
重要提示:如果为一个虚线路径注册了多个配置文件,则按字母顺序排列的第一个显示为附加组件,而其他配置文件则显示为加载项。
无法排除单个配置文件,仅排除包的所有配置文件。作为一种解决方法,可以创建一个子包,即 collective.myfancypackage.hiddenprofile / profiles / default ,注册它并放入添加配置文件所需的所有内容。然后排除虚线路径 collective.myfancypackage.hiddenprofile ,而位于 collective.myfancypackage / profiles / default 的主要配置文件仍可作为插件安装。
答案 1 :(得分:2)
是的,您可以从可用附加组件列表中隐藏包;我知道how to do it using five.grok,但也应该有直接的方式。