Plone:从站点安装程序隐藏加载项

Plone:从站点安装程序隐藏加载项,plone,Plone,我想知道是否有任何产品可以帮助我从“站点设置”中的可用加载项列表中隐藏加载项。让我解释一下原因 我在同一Zope实例上运行多个客户Plone站点,每个站点使用不同的Data.fs,我为每个客户定制了一些包,比如“客户a主题”、“客户B主题”。现在,因为它们在同一个Zope实例上,客户A可以在其站点加载项列表中看到“客户B主题”也可用,这正是我试图避免的 在其他一些情况下,从附加组件列表中隐藏产品也会很有用,例如,技术更熟练的客户可以安装PloneFormGen,而普通客户则不能 我不知道是否存在

我想知道是否有任何产品可以帮助我从“站点设置”中的可用加载项列表中隐藏加载项。让我解释一下原因

我在同一Zope实例上运行多个客户Plone站点,每个站点使用不同的Data.fs,我为每个客户定制了一些包,比如“客户a主题”、“客户B主题”。现在,因为它们在同一个Zope实例上,客户A可以在其站点加载项列表中看到“客户B主题”也可用,这正是我试图避免的

在其他一些情况下,从附加组件列表中隐藏产品也会很有用,例如,技术更熟练的客户可以安装PloneFormGen,而普通客户则不能

我不知道是否存在这样的产品,如果你们中的一些人能给我指出正确的方向,我愿意制造一个


谢谢

是的,您可以从可用附加组件列表中隐藏软件包;我知道,但也应该有一个直接的方法。

在你的u__; 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"
  /> 

并用实名替换*虚线\包\路径*,即collective.myfancypackage

重要提示:如果一个dottedpath注册了多个配置文件,则按字母顺序排列的第一个配置文件将显示为add-on,其他配置文件将不显示


不能排除单个配置文件,只能排除包的所有配置文件。作为一种解决方法,可以制作一个子包,即collective.myfancypackage.hiddenprofile/profiles/default,注册它并将添加配置文件所需的所有内容放在其中。然后排除点路径collective.myfancypackage.hiddenprofile,而位于collective.myfancypackage/profiles/default的主配置文件仍然可以作为加载项安装

谢谢,你的帖子帮我藏了一个包裹。