Liferay サイトで Web コンテンツ表示用の一連のカスタム構造 (および一致するテンプレート) を作成しています。
サイト管理者にとってより便利にするために、これらのテンプレートの 1 つに、デフォルトでルック アンド フィールの境界線を抑制してもらいたいと思います。
テーマに埋め込まれたポートレットの境界線を無効にする方法を示すドキュメントとサンプルをオンラインで見つけましたが、WCD テンプレート内でそれらの手法を適用することができませんでした。
テーマに埋め込まれているのを見たコードは次のとおりです。
#set ($VOID = $velocityPortletPreferences.setValue("portlet-setup-show-borders", "false"))
#set ($VOID = $theme.runtime("customportletname_WAR_pluginname", "", $velocityPortletPreferences.toString()))
$velocityPortletPreferences.reset()
テンプレートに適用した方法は次のとおりです。
#set ($VOID = $velocityPortletPreferences.setValue("portlet-setup-show-borders", "false"))
<div class="custom-wcd wcdnormal">
<h2>$title.getData()</h2>
$content.getData()
</div>
$velocityPortletPreferences.reset()
それがうまくいかなかったことに驚きはありません -- 設定をポートレットに適用する $theme.runtime 呼び出しに類似するものは何もありませんが、$theme.runtime がこの層で適切かどうかもわかりません。そうである場合、最初の引数として指定する値。これが最も可能性の高い代替案だと思いますが、WCD ポートレットを $theme.runtime に特定する方法も、その情報を追跡する方法もわかりません (私はまったく Java 開発者ではありません)。 .
明確にするために、デフォルトですべてのポートレットの境界線を無効にすることは受け入れられません。また、レンダリング時にジャーナル記事コンポーネントを消費する Java コントローラーを変更する立場にもありません。
アドバイスをいただければ幸いです。