2

「サイト設定」で利用可能なアドオンのリストからアドオンを非表示にするのに役立つ製品があるかどうか知りたいのですが。その理由を説明させてください。

私は複数の顧客をホストしている状況にあります。同じZopeインスタンスで実行されているPloneサイト、各サイトは異なるData.fsを使用しており、「顧客Aテーマ」、「顧客」など、顧客のカスタマイズごとにいくつかのパッケージを作成しました。 Bテーマ」。現在、それらは同じZopeインスタンス上にあるため、顧客Aはそのサイトのアドオンリストで「顧客Bのテーマ」も利用可能であることがわかります。これは私が避けようとしていることです。

アドオンリストから製品を非表示にすることは、他の場合にも役立ちます。たとえば、熟練した顧客はPloneFormGenをインストールできますが、通常の顧客はインストールできません。

そのような製品が存在するかどうかはわかりません。正しい方向に向けていただければ、喜んで作成します。

ありがとうございました

4

2 に答える 2

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に置き換えます。

重要:1つのドットパスに複数のプロファイルが登録されている場合、アルファベット順が最初にアドオンとして表示され、他のプロファイルは抑制されます。

パッケージのすべてのプロファイルのみを除外することはできません。回避策として、サブパッケージ、つまりcollective.myfancypackage.hiddenprofile / profiles / defaultを作成し、それを登録して、プロファイルを追加するために必要なすべてのものをそこに入れることができます。次に、点線のパスcollective.myfancypackage.hiddenprofileを除外しますが、 collective.myfancypackage / profiles/defaultにあるメインプロファイルは引き続きアドオンとしてインストールできます。

于 2012-05-07T11:58:56.410 に答える
2

はい、利用可能なアドオンのリストからパッケージを非表示にすることができます。私はfive.grokを使用してそれを行う方法を知っていますが、直接的な方法もあるはずです。

于 2012-05-05T15:23:19.400 に答える