在你的 __ 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。
重要提示:如果为一个 dottedpath 注册了多个配置文件,则按字母顺序排列的第一个显示为附加组件,而其他的则被隐藏。
不能排除单个配置文件,只能排除包的所有配置文件。作为一种解决方法,可以制作一个子包,即collective.myfancypackage.hiddenprofile/profiles/default,注册它并将添加配置文件所需的所有内容放入其中。然后排除虚线路径collective.myfancypackage.hiddenprofile,而位于collective.myfancypackage/profiles/default的主配置文件仍然可以作为插件安装。