带昵称的liferay留言板

带昵称的liferay留言板,liferay,Liferay,我们希望在门户中使用Liferay留言板。但是,我们需要一个单独的昵称来存储并显示在留言板中,而不是在所有消息中存储和显示用户名 昵称的存储已经完成:为用户创建自定义字段“昵称”,并在ext插件中重写/重新实现“MBMessageLocalServiceImpl.addMessage” 现在,每条消息都将用户的昵称存储为消息表中的“用户名”。但您可能已经知道,存储的昵称不会与消息一起显示,因为所有显示内容的用户都通过用户id获取用户数据,消息中的“用户名”永远不会显示,甚至不会使用。 现在我开始

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

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

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


因此,最容易获得一个带有明显“昵称”的留言板的方法是什么?我能想到的一种方法是使用钩子

您需要在MessageBoard portlet的jsp中找到所有显示用户名的位置,即
/html/portlet/message\u boards/
,并使用您的昵称

您还可以有条件地修改
/html/taglib/uiuserDisplay/start.jsp
,也就是说,如果这是留言板portlet(portletId=
19
),您可以通过
themeDisplay.getPortletDisplay().getPortletName()
)签入此
start.jsp
然后包含自定义代码以显示昵称,否则这将是正常的流程


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

您可以使用“JSP钩子”来“覆盖”liferay使用的JSP页面,而无需更改源代码。在Liferay wiki中搜索“JSP钩子”以获取示例和更多详细信息。同时,我有“./user\u display/start.JSP”的JSP钩子,但正如问题中提到的,这会覆盖使用user\u display的所有位置(例如博客)。另一方面,它并不是覆盖留言板中显示用户名的所有位置(例如,在所有线程均为“开始人”和“最后一篇文章”的表中,仍然显示用户名)。我需要在留言板上显示昵称。您可能会提供一个包含所有要修改的JSP的列表吗?我只会修改留言板中使用的JSP页面。可能是因为不包括
user\u display/start.jsp
thx-我开始搜索所有使用/显示用户名并修改start.jsp的网站,但现在我不需要有条件地这样做,因为目前没有使用博客。