問題
- ポータルをバージョンアップすると、Webコンテンツポートレットのコンテンツに含まれるポートレットIDが更新されない。
環境
- Liferay portal 6.2EE
- Liferay DXP 7.0
解像度
Liferayの仕組みは?
- Liferayは、アップグレード先のLiferayバージョン[Eg: DXP]のソースコードに基づき、ポータル全体[Eg: 6.2]をアップグレードします。
-
ここで、静的コンテンツを提供している場合、LiferayはLiferayのデスティネーションバージョンに基づいて解析される静的コンテンツ全体を読まないようにします。
-
以下に例を示します。
-
ポートレットIDが静的コンテンツとして含まれていた場合
- Liferayは、ポータルのアップグレード時に、Liferayのデスティネーションバージョンの命名基準に従って、ポートレットID [static content]を変更しない
- これはLiferayの意図した動作です。
-
ポートレットIDが静的コンテンツとして含まれていた場合
-
以下に例を示します。
使用例です:
-
詳細な手順は、より良い方法で動作を理解するのに役立ちます。 以下のユースケースは、その動作を示すものです。
-
事例1: ポートレットの設定機能を利用してカスタムCSSを追加する。
1. Liferay 6.2 のアンカスタマイズインスタンスをインストールし、サーバーを起動します。
2. テスト用に、ページ上に少なくとも1つまたは2つのWCを含むいくつかのWebコンテンツポートレットを追加します。 [この場合、WC1、WC2)
3. WC1のようなWebコンテンツポートレットから、ポートレットトッパーの3つの楕円のドットをクリックして、ルック&フィールの設定に移動します。
4. Advanced Styling」タブ
5.をクリックします。 "カスタムCSSを入力する "という項目の下にあります。 [テスト目的のみ)。 この場合、WC1、WC2ポートレットIDに基づいて配置される以下のコード。
#portlet_56_INSTANCE_Y3IiwK51r0YH .portlet-content {
background-color: linen;
}
#portlet_56_INSTANCE_ne92rVoKKAmV .portlet-content
{
margin-bottom:15px;
background-color: cyan;
}
Portlet ID: #portlet_56_INSTANCE_Y3IiwK51r0YH
Portlet Classes: .portlet-journal-content
Portlet instance id number: 56
6. 保存してください。
テスト結果です:
Liferay 6.2では、アプライドスタイルがポートレットに反映されました。
7. Liferay DXP 7.0にアップグレードしました。
観測された挙動[再現された課題]
Liferay DXPでCSSスタイルが崩れ、Liferay 6.2の適用スタイルが反映されない。
その背景には、こんな理由があったのです、
- DXPの 完全修飾ポートレットの命名規則に従って、ポートレットの id とクラス名が変更されました。
- アドバンス・スタイル・オプションでは、CSSコードを入力してポートレットのルック&フィールをカスタマイズすることができます。 アップグレード中、Liferayはカスタムコードをアップグレードしません。
-
-
Liferay 6.2: Portlet ID: #portlet_56_INSTANCE_Y3IiwK51r0YH
Portlet Classes: .portlet-journal-content -
Liferay DXP: Portlet ID: #portlet_com_liferay_journal_content_web_portlet_JournalContentPortlet_INSTANCE_Y3IiwK51r0YH
Portlet Classes: .portlet-decorate.portlet-journal-content .portlet-content.portlet-content-editable
-
- 注) Liferay 6.2のポートレットIDをLiferay-portlet.xmlをcheckし、Liferayのデスティネーションバージョンに応じた最新のIDに置き換えてください。