コントロールパネルセクションにカスタムポートレットを追加するにはどうすればよいですか?私は様々なチュートリアルを見ましたが、すべてが生きています6.2。どのようにliferay 7でそれを達成するには?あなたがコンポーネントのプロパティでコントロールパネルのカテゴリを定義することができ、事前にありがとう...liferay 7でコントロールパネルセクションにポートレットを移動しますか?
1
A
答えて
3
、あなたがバンドルを使用している場合は(のためのたとえば、Blade toolsで作成した場合)、パネルアプリで動作させることができます。パネルアプリケーションは、ポートレットをコントロールパネルの位置にマップします。
は、あなたが以下のようなブレードによって生成されたポートレットを、持っているとします
@Component(
immediate = true,
property = {
"com.liferay.portlet.display-category=category.sample",
"com.liferay.portlet.instanceable=false",
"javax.portlet.name=cpportlet",
"javax.portlet.display-name=Control Panel Portlet",
"javax.portlet.security-role-ref=power-user,user"
},
service = Portlet.class
)
public class CpPortlet extends GenericPortlet {
@Override
protected void doView(
RenderRequest renderRequest, RenderResponse renderResponse)
throws IOException, PortletException {
PrintWriter printWriter = renderResponse.getWriter();
printWriter.print("cp-portlet Portlet - Hello World!");
}
}
今、あなたはちょうどPanelApp
サービス実装する別のOSGiコンポーネントの作成:それをコンパイルするには
@Component(
immediate = true,
property = {
"panel.app.order:Integer=10000", // Defines position in list
"panel.category.key=" + PanelCategoryKeys.SITE_ADMINISTRATION_CONTENT // To appear in the "Content" session
},
service = PanelApp.class
)
public class CpPanelApp extends BasePanelApp {
@Override
public String getPortletId() {
return "cpportlet"; // Same name of the portlet.
}
@Override
@Reference(
target = "(javax.portlet.name=cpportlet)",
unbind = "-"
)
public void setPortlet(Portlet portlet) {
super.setPortlet(portlet);
}
}
を、あなたは意志"Application List app" APIに依存しています - ここにはPanelApp
クラスがあります。それでは、以下のように、あなたのbuild.gradle
にこの依存関係を追加:
dependencies {
compileOnly group: "com.liferay.portal", name: "com.liferay.portal.kernel", version: "2.0.0"
compileOnly group: "javax.portlet", name: "portlet-api", version: "2.0"
compileOnly group: "org.osgi", name: "org.osgi.compendium", version: "5.0.0"
compileOnly group: "com.liferay", name: "com.liferay.application.list.api", version: "2.0.0" // Dependency added
}
今、それを展開し、ポートレットがリストに表示されます。
これは単なる基本的な考え方である - documentationそれについて非常に有益です。
1
: com.liferay.portlet.control-panel-entry-category=<String> com.liferay.portlet.control-panel-entry-weight=<double>
は、ここに記載されているマッピングを参照してください:Liferayを7で https://dev.liferay.com/develop/reference/-/knowledge_base/7-0/portlet-descriptor-to-osgi-service-property-map
関連する問題
- 1. Liferay 7でポートレットを呼び出す
- 2. Liferay 7にポートレットをデプロイできません
- 3. Liferay 7 MVCポートレットでGoogleマップを表示できません
- 4. liferayからLiferay 7への移行6.1.2
- 5. Liferay 7にポートレット設定を追加する
- 6. LiferayのSDKポートレットプラグインは:Liferayをポートレットで
- 7. Liferay MVCポートレットjava.lang.ClassNotFoundException
- 8. Liferayポートレットのプレフィックス
- 9. Liferayカスタム・ログイン・ポートレット
- 10. ページ内のポートレットを移動する
- 11. Liferayポートレットでイベントを発生
- 12. Liferayの7、MVCポートレットのOSGiのモジュールが依存関係に
- 13. Kotlin Liferayポートレットは可能ですか?
- 14. Liferay Webコンテンツ表示ポートレット:ルックアンドフィール - ポートレット設定
- 15. Liferay 7(DXP)Spring MVCポートレット、アクセスサービスビルダー生成サービスの発行
- 16. Liferay 7のテーマテンプレートにポートレットを正しく埋め込む方法は?
- 17. Liferayでポートレットを表示する方法
- 18. liferayポートレット・ページにhttpヘッダーを渡す
- 19. JSPをポートレットに追加するLiferay
- 20. liferayでポートレットの範囲外のセッション変数にアクセスできない7
- 21. Liferay 6.2 - クライアント側からポートレットをロード
- 22. Liferayポートレット内のPHP CMS
- 23. LiferayポートレットLog4jプロパティファイル設定
- 24. Liferayの検索ポートレットのカスタマイズ
- 25. Liferay - すべてのポートレットでテーマ?
- 26. Liferay 6.1ポートレットでjRecorderを使用
- 27. Liferayでポートレット名を使用してポートレットIDを取得する方法は?
- 28. liferayポートレットからのews認証
- 29. Liferayポートレットの右から左へ
- 30. Liferay 6:ポートレット:renderURLがリダイレクトしない
ポートレットはインスタンス化できない必要があります。ポートレットがコントロールパネルに表示されるようにするには、ポートレットを「com.liferay.portlet.instanceable = true」から「com.liferay.portlet.instanceable false」に変更するには、falseに変更してください。 – suatCoskun
@suatCoskun Updatedありがとう! (私の事例は仕事に慣れていたと思っていたが、それはもう少し前だったので、何かを見逃してしまった...) – brandizzi