plone.orgのdocumentationをフォーラムで使用すると、私はPlone 4.0.8で自分のコンテンツの下にカスタムポートレットマネージャーを取得できました。目標は、ダッシュボードのように配置されたコンテンツの下に4つのカスタムマネージャーを置くことです。在庫ポートレット(plone.app.portletsから)を私のカスタムポートレットマネージャーに追加するにはどうすればよいですか?
とにかく、私のマネージャーは静的ポートレットとコレクションポートレットを追加することしかできません。コードを見渡したところ、システムは「新しいポートレットを追加する」ドロップダウンをポピュレートすると、すべてのポートレットをループします。次に、各ポートレットの 'for_'属性チェックをループして、インターフェースがself-portlet managerによって提供されているかどうかを確認します。
def getAddablePortletTypes(self):
addable = []
for p in getUtilitiesFor(IPortletType):
# BBB - first condition, because starting with Plone 3.1
#every p[1].for_ should be a list
if not isinstance(p[1].for_, list):
logger.warning("Deprecation Warning ..." % p[1].addview)
if p[1].for_ is None or p[1].for_.providedBy(self):
addable.append(p[1])
elif [i for i in p[1].for_ if i.providedBy(self)]:
addable.append(p[1])
return addable
各ポートレットの「for_」インターフェースのリストにマネージャーのインターフェースを追加するにはどうすればよいですか?
私は 'クラスIBottomPortletManager(IPortletManager)' に 'クラスIBottomPortletManager(IPortletManager、IColumnが)' IColumnがplone.app.portletsで定義されているので、これらのポートレットがすでに登録されているから、私のマネージャのインターフェイスを変更IColumnを提供するマネージャー。 これはこれを行う理想的な方法ですか? – Travv15