如何在Calendar Portlet的“添加事件”页面中与新创建的字段对应的CalEvent表中创建新列?

时间:2013-01-09 07:23:09

标签: liferay-6 liferay-ide

    <aui:select name="Event for">
     <%
    for (User usr : UserLocalServiceUtil.getRoleUsers(10163)) {
     %>           
         <aui:option label="<%=usr.getFullName()%>" />
    <%
        }
    %>
    </aui:select>



    I have created a new field in Add Event page of Calendar portlet. 

我想在CalEvent表中创建一个与新创建的字段对应的新列。同样明智的我应该通过创建CalEvent实例来获取该字段的值....因此,当在Add Event页面中单击Save时,新创建的字段的值也应该保存在CalEvent表中。           上面粘贴的代码用于创建新的下拉字段“Event for”,它将给出角色下的用户列表。这是我通过创建Hook完成的。          因此,在保存事件时,“Event for”的值也需要保存在“eventFor”列的CalEvent表中。我怎么能做到这一点?如何创建新列以及如何保存它?请帮忙.....

1 个答案:

答案 0 :(得分:0)

您主要关心的是用于CalEvent的数据库表。如果您可以打开数据库浏览器,则可以使用主键“eventId”将其命名为“calevent”。

现在,如果你想在该表中添加一列,你需要对Calendar Portlet的控制器和服务进行扩展修改,除了需要做太多工作之外,你将失去与未来更新的兼容性。

所以,我建议的是制作另一个Portlet,并使用ServiceBuilder创建一个以“eventFor”列为特色的表,并将“calevent.eventId”作为外键。如果您使用service.jar并将其复制到/ lib / ext /中,您甚至可以在挂钩的add-event.jsp中包含新服务,并从那里创建新实例。