浏览 2184 次
锁定老帖子 主题:liferay在留言溥的基础上开发留言本
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-11-27
liferay-display.xml: <portlet id="message_books" /> liferay-portlet-ext.xml: <portlet> <portlet-name>message_books</portlet-name> <icon>/html/portlet/blogs/icon.png</icon> <struts-path>message_books</struts-path> <configuration-action-class>com.ext.portlet.messageboards.action.ConfigurationActionImpl</configuration-action-class>指向自已的configurationaction <use-default-template>false</use-default-template> <restore-current-view>false</restore-current-view> <instanceable>true</instanceable>因为有十几套网站要用到,原来没有这句话,造成在不同的网站中PortletPreferences取值不同,这个问题找了两天,搞得要吐血。 <private-request-attributes>false</private-request-attributes> <private-session-attributes>false</private-session-attributes> <render-weight>0</render-weight> </portlet> portlet-ext.xml: <portlet> <portlet-name>message_books</portlet-name> <display-name>message_books</display-name> <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class> <init-param> <name>view-action</name> <value>/message_books/view</value> </init-param> <expiration-cache>0</expiration-cache> <supports> <mime-type>text/html</mime-type> </supports> <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle> <portlet-preferences> <preference> <name>categoryId</name> </preference> </portlet-preferences> <security-role-ref> <role-name>power-user</role-name> </security-role-ref> <security-role-ref> <role-name>user</role-name> </security-role-ref> <portlet-info> <title>message_books</title> </portlet-info> </portlet> struts-config-ext.xml: <!-- message books --> <action path="/message_books/view" type="com.ext.portlet.messageboards.action.ViewAction"> <forward name="portlet.message_boards.error" path="portlet.message_boards.error" /> <forward name="portlet.message_books.view" path="portlet.message_books.view" /> </action> <action path="/message_books/edit_message" type="com.ext.portlet.messageboards.action.EditMessageAction"> <forward name="portlet.message_boards.edit_message" path="portlet.message_books.edit_message" /> <forward name="portlet.message_boards.error" path="portlet.message_boards.error" /> </action> tiles-defs-ext.xml: <definition name="portlet.message_books.view" extends="portlet.message_boards"> <put name="portlet_content" value="/portlet/ext/message_boards/view.jsp" /> </definition> <definition name="portlet.message_books.edit_message" extends="portlet.message_boards"> <put name="portlet_content" value="/portlet/ext/message_boards/edit_message.jsp" /> </definition> 以上就是主要的配置文件的 ViewAction用messageboards本身的就可以,只是要改一个return actionforward地址,EditMessageAction复制原有的,不过在updateMessage中他使用的是MBMessageServiceUtil.addMessage方法,这个方法是要验证userID的,可是很奇怪我在有的网站没有登陆可以留言但是有的不行,现在还没有找出问题,我只有使用了MBMessageLocalServiceUtil.addMessage这个方法多了一个参数就是USRERID我设了一个变量就是游客的ID这也是没有办法的办法。ConfigurationActionImpl这个不能复制原来的因为原来的很复杂没有必要,我复制的是journalarticles的ConfigurationAction,因为这个简单些,只是要把社区类型改成留言本的类型(比如娱乐讨论区,生活区)MBCategoryLocalServiceUtil.getCategories这个方示可以取得。 OK下面就是JSP了,大家可以发现liferay的JSP写的很复杂很大一部分的功能都是在jsp里面实现 的,这个也不例外,在这里我只写出JSP中重要的一些方法。 view.jsp: int tatal = MBMessageLocalServiceUtil.getCategoryMessagesCount(categoryId);//这个方法给一个留言类型就可得到一共几条 List list = MBMessageLocalServiceUtil.getCategoryMessages(categoryId, 0, tatal);//得到所有类型的留言 但是有点要注意这取出了所有的留言,有很多只是其中一些的回复留言,message.getParentMessageId() == 0那么这个就是根留言了,否则的话里面的ID就是他回复对像的ID,这个对像也是在这个list中的,至于怎么显示就看自已的需要了。 configuration.jsp: int total = MBCategoryLocalServiceUtil.getCategoriesCount(portletGroupId.longValue(), 0);//取出留言板所有类型,第一个参数是当然网站的ID也叫社区ID searchContainer.setTotal(total); List results = MBCategoryLocalServiceUtil.getCategories(portletGroupId.longValue(), 0, searchContainer.getStart(), searchContainer.getEnd());//取出所有的类型这样就可以在JSP中用下拉框显示出来了,可以让管理员来设定要显示的那个类型。其他的至于每页显示数量,排序都可以用他原有的。 edit_message.jsp: 这个就根据你的需要来写了,他原有的功能很多的,你只需要保留你想显示的,其他就删。 基本上到这里就结束了,不过这个是没有翻页功能的,他本身提供了一个翻页的标签,可是想和他的融合起来还有很困难的,因为他的是一个<liferay-ui:search-iterator searchContainer="<%= searchContainer %>" />而我取出的是一个LIST,并且他的显示格式是固定的。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |