1

我们想在我们的门户中使用 liferays 留言板。但是,我们需要一个单独的昵称来存储和显示在留言板中,而不是存储和显示所有消息的用户名。

昵称的存储已经完成:通过为用户创建自定义字段“昵称”并在 ext 插件中覆盖/重新实现“MBMessageLocalServiceImpl.addMessage”。

现在每条消息都将用户的昵称作为“用户名”存储在消息表中。但是您可能已经知道存储的昵称不会与消息一起显示,因为所有显示内容的用户都通过用户 ID 获取用户数据,并且消息中的“用户名”永远不会显示甚至使用。现在我开始深入研究 Liferay 源代码,以找到用户显示完成的位置:“html/taglib/uiuserDisplay/start.jsp”。但我想如果摆弄这个我会改变比用户在留言板中显示的更多?!

那么,获得具有独特“昵称”的留言板的侵入性最小/最容易的是什么。

4

1 回答 1

2

我能想到的一种方法是用钩子。

您需要在 MessageBoard portlet 的 jsp 中找到所有位置,即/html/portlet/message_boards/显示用户名的位置,并使用您的昵称代替。

您还可以/html/taglib/uiuserDisplay/start.jsp有条件地进行修改,即如果这是 message_boards portlet (portletId = ),您可以start.jsp通过此检查,然后包含您的自定义代码以显示昵称,否则这将是正常流程。themeDisplay.getPortletDisplay().getPortletName()19

可能很乏味,但这是您正在修改的 liferay portlet :-)

于 2013-06-05T14:22:09.160 回答