liferay のコントロール パネルに新しいセクションを追加したいのですが、そのセクション内にカスタム ポートレットが必要です。私はextを使ってそれをしました。ただし、 hook でやりたいです。出来ますか ?
2 に答える
次の理由により、フックを使用するとそれほど簡単ではないと思います。
com.liferay.portal.util.PortletCategoryKeys
フック (さまざまなセクションを表示するためのキーを含むクラス) で変更することはできません。このクラスでは、さまざまなセクションが String 配列にハードコーディングされていALL
ます。PortalImpl#isControlPanelPortlet()
を使用してPortletCategoryKeys#ALL
、問題の要求がコントロール パネル ポートレットに対するものかどうかを判断するロジックを変更することはできません。- 次に、フックで変更できず、広く使用されている別のメソッドもあります
PortalImpl#getControlPanelCategory()
フックでそれを行う:
私はこれを試していませんが、フックでそれを行う必要がある場合は、上記PortletCategoryKeys#ALL
のメソッドを使用するすべての JSP を変更しPortalImpl
、JSP でこれらすべてのメソッドのカスタム実装を提供する必要があると思います。
EXT を使用してどのように実装したかは、オーバーライドした手順またはメソッドにすぎない可能性があることを本当に知りたいです。フックの観点からそれらを変換しようとすることができるように。
これは私の理解が進む限りです。お役に立てれば。
マーケットプレイスの出現により、ControlPanelには「Marketplace」という名前の新しいカテゴリがあり、そのセクションがプラグインに導入されています。ただし、6.1 GA2で、このプラグインが埋めるだけの新しいセクションが導入されたかどうかは確認していません。そこに実装されているこのセクションの痕跡を見つけることができる場合は、マーケットプレイスプラグインを確認してください。
一方、新しいセクションを確実に必要とするセクションにはまだ誰も名前を付けていません(同じ問題を解決する方法を私に尋ねた人もいますが)。このため、要件を再考して、既存のセクションの1つを選択することをお勧めします。そうでない場合は、少なくとも新しいセクションの名前と目的に興味があります-この種の実装を実際に正当化する最初のセクションを見つけるかもしれません...