2012-05-05 9 views
2

"サイト設定"で利用可能なアドオンのリストからアドオンを隠すのに役立つ製品があるかどうかを知りたいと思います。理由を説明しましょう。Plone:サイト設定からアドオンを隠す

私は複数の顧客をホストする状況にあります。同じZopeインスタンス上で実行されている各サイトで異なるData.fsを使用しているPloneサイトがあります。顧客のカスタマイズごとにいくつかのパッケージを作成しました。 "、"顧客Bのテーマ "。さて、彼らは同じZopeインスタンス上にあるので、顧客Aはサイトのアドオンリストに "Customer B Theme"も表示されているのを見ることができます。これは私が避けようとしているものです。

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

私はそのような製品が存在するかどうか分かりませんし、もしあなたが正しい方向に向けることができれば、私は1つを作っていきたいと思います。

ありがとうございます

答えて

2

はい、利用可能なアドオンの一覧からパッケージを非表示にすることができます。私はhow to do it using five.grokを知っていますが、直接的な方法もあるはずです。あなたの__に

+0

あなたの投稿はパッケージを隠すのに役立ちました。 – ddellaquila

4

はのconfigure.zcml

<utility 
    factory=".HiddenProfiles" 
    name="DOTTED_PACKAGE_PATH" 
    /> 

に次にどこか

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'] 

を入れて、置き換えるinit__.pyに* DOTTED_PACKAGE_PATH *本当の名前を持つ、すなわちcollective.myfancypackage

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

単一のプロファイルを除外することはできません。パッケージのすべてのプロファイルのみを除外することはできません。この問題を回避するには、サブパッケージ、つまりcollective.myfancypackage.hiddenprofile/profiles/defaultを作成して登録し、プロファイルを追加するのに必要なすべてのものを入れてください。その後、collective.myfancypackage.hiddenprofileを除外します。collective.myfancypackage/profiles/defaultにあるメインプロファイルはアドオンとしてインストール可能ですが、除外します。

関連する問題