1

ポータルで liferays メッセージ ボードを使用したいと考えています。ただし、すべてのメッセージでユーザーの名前を保存して表示する代わりに、別のニックネームを保存してメッセージ ボード内に表示する必要があります。

ニックネームの保存はすでに行われています: ユーザー用のカスタム フィールド "nickname" を作成し、ext-plugin 内で "MBMessageLocalServiceImpl.addMessage" をオーバーライド/再実装することによって。

現在、すべてのメッセージは、ユーザーのニックネームを「ユーザー名」としてメッセージテーブルに保存しています。しかし、おそらく既にご存じのとおり、保存されたニックネームはメッセージとともに表示されません。これは、表示されているすべてのユーザーがユーザー ID を介してユーザー データを取得し、メッセージ内の「ユーザー名」が表示されることも使用されることもないためです。今、私はliferayソースを掘り下げて、ユーザーの表示がどこで行われたかを見つけ始めました:「html/taglib/uiuserDisplay/start.jsp」。しかし、これをいじると、メッセージ ボードのユーザー表示以上に変化するのではないでしょうか?!

では、明確な「ニックネーム」を持つメッセージ ボードを取得するのに、侵襲性が最も低く、最も簡単なものは何でしょうか。

4

1 に答える 1

2

私が考えることができる1つの方法は、フックを使用することです。

MessageBoard ポートレットの jsp 内のすべての場所、つまり/html/portlet/message_boards/ユーザーの名前が表示されている場所をすべて見つけて、代わりに自分のニックネームを使用する必要があります。

また、条件付きで変更することもできます。つまり、これが message_boards ポートレット (portletId = ) であるかどうかを/html/taglib/uiuserDisplay/start.jspチェックインし、ニックネームを表示するカスタム コードを含めます。それ以外の場合は、通常のフローになります。start.jspthemeDisplay.getPortletDisplay().getPortletName()19

面倒かもしれませんが、これは変更中の liferay ポートレットです :-)

于 2013-06-05T14:22:09.160 に答える