3言語でサイトを作成しています。いくつかの Web コンテンツをボックスに表示し、「ルック アンド フィール/高度なスタイリング」を使用して境界線を提供します。ポートレットのタイトルは、ポートレットのルック アンド フィールで定義されます。
1 つの言語のテキストがない場合は、ボックスを非表示にしたいと考えています。
誰かが私たちを助けることができますか?
前もって感謝します、
s
この質問は、探しているものに非常に近いと思います(要素サーバー側を非表示にしたい場合を除く)。
AUI に変換すると(jQuery ではなく Liferay で使用できるため)、答えは次のようになります (簡単なデモ コードを含む)。
<div style="border:5px solid blue"></div>
<div style="border:1px solid red">
This is not empty
</div>
<script>
AUI().use(function(A){
A.all("div:empty").hide();
});
</script>
より洗練されたサーバー側のオプションは、構造とテンプレートを作成し、Velocity を使用して条件付きロジック (HTML 生成など) を実行することです。これにより、空のコンテンツがマークアップを生成することさえありません (表示されていません。あなたが好むオプション、そして1つの解決策がすでにそこにあります)
この記事が現在のユーザーの言語と競合していないときに WebContent-Portlet 全体を非表示にしたい場合はhtml/portlet/journal_content/view.jsp
、Liferay-Hook でオーバーライドできます。liferay ドキュメントで jsp オーバーライドのチュートリアルを見つけることができます: http://www.liferay.com/documentation/liferay-portal/6.1/development/-/ai/overriding-aj-4
ps: JournalArticle による言語の存在を証明するには、LanguageUtil クラスを使用できます。