我们想在门户网站中使用liferays留言板。但是不是存储和显示所有消息的用户名,而是需要在留言板中存储和显示一个单独的昵称。
昵称的存储已经完成:通过为用户创建自定义字段“nickname”并在ext-plugin中覆盖/重新实现“MBMessageLocalServiceImpl.addMessage”。
现在,每条消息都将用户的昵称存储为消息表中的“用户名”。但是您可能已经知道存储的昵称不会与消息一起显示,因为所有用户显示的内容都通过用户ID获取用户数据,并且消息中的“用户名”永远不会显示甚至使用。 现在我开始深入了解liferay源代码,找到用户显示的位置:“html / taglib / uiuserDisplay / start.jsp”。但是,我想如果摆弄这个我将改变比留言板中的用户显示更多?!
那么什么是最不具侵略性/最容易获得具有独特“昵称”的留言板。
答案 0 :(得分: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: - )