5

ほとんどの場合、Liferay ポートレットの実際の名前を知る必要があります。

特に Liferay のテーマでは、次のような「ログイン ポートレット」を追加できます。

$theme.runtime("58", "", $velocityPortletPreferences.toString())

そして、それは機能します。しかし、ID "some-portlet-id" を持つカスタム ポートレットを追加しようとすると、

$theme.runtime("some-portlet-id", "", $velocityPortletPreferences.toString())

そして、それは機能しません。Liferay ポートレットの名前がポートレットの ID と一致しないのではないかと思います。

この場合、誰かが私にこれらの名前がどのように生成されるかを説明できますか?

前もって感謝します。

4

2 に答える 2

10

ポートレットがLiferayポータル内にある場合、ポートレットIDはポートレットの名前と同じですROOT

ただし、他の war ファイル (プラグイン環境など) 内でポートレットの名前を取得しようとすると、この場合、ポートレット名は次の規則に従って生成されます。

[portlet ID] + _WAR_ + [webapp name, where portlet is placed]

portlet IDと の両方を名前からwebapp name除外することに注意してください。-

some-portlet-idWAR-file 内に id を持つポートレットがある場合some-portlet、ポートレット名は次のようになります。

someportletid_WAR_someportlet

これは、Liferay のテーマ名にも言及しています。

また、Liferay ポートレットの名前にもオプションのインスタンス ID があることに注意してください。

[portlet ID] + _WAR_ + [webapp name, where portlet is placed] + _INSTANCE_ + [portlet instance ID]

instansableが true のポートレットに必要です。これは基本的に任意の 4 文字です。

someportletid_WAR_someportlet_INSTANCE_abcd

ただし、そのインスタンス ID を無視して必要なものをすべて配置できるという理由だけで、それらには注意してください。ただし、事前に入力されたデータ (ポートレットの設定など) を含む特定のインスタンスを取得する必要がある場合は、何らかの形でそれを知る必要があります。

于 2013-03-09T13:15:18.187 に答える
1

ドキュメント (または n1ckolas の回答) を保持したくない場合や、実際のポートレット ID (Liferay の番号など) を調べたくない場合は、目的のポートレットを手動でページに追加してから、[Look&Feel/Advanced] に移動することもできます。 Styling」と表示され、そこにポートレット ID が表示されます。INSTANCE がある場合は、独自のランダムなものをいくつか追加して一意にしますが、より重要な部分である完全なポートレット ID は、この方法で簡単に見つけることができます。

于 2013-03-09T19:11:59.787 に答える