在 Liferay 6.2 中,如何从日历 portlet 获取日历列表?
In Liferay 6.2, how do I get a list of calendars from the calendar portlet?
我正在开发一个自定义插件,它使用日历 portlet 的 JSON Web 服务 只是 显示事件(通过,例如,http://localhost:8080/api/jsonws/calendar-portlet.calendar/get-calendar/calendar-id/11504).
获取用户有权访问的日历列表似乎应该很简单,但我无法弄清楚。该插件使用 Java 和 JavaScript 的组合,因此我可以通过 Java 或 REST/JSON.
获取信息
现在,我将进入日历并从 RSS 提要中获取 ID URL;我确定这不是获取此信息的最佳方式。
您可以像这样获取组织中的所有日历:
String servletContextName = "calendar-portlet";
ClassLoader classLoader = (ClassLoader)com.liferay.portal.kernel.bean.PortletBeanLocatorUtil.locate(servletContextName, "portletClassLoader");
com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery = com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil.forClass(com.liferay.calendar.model.Calendar.class, classLoader);
dynamicQuery.add(com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil.forName("groupId").eq(groupId));
java.util.List<com.liferay.calendar.model.Calendar> calendars = com.liferay.calendar.service.CalendarLocalServiceUtil.dynamicQuery(dynamicQuery);
if(calendars.isEmpty()) {
throw new Exception("No calendar found for group "+groupId);
} else {
for(com.liferay.calendar.model.Calendar c: calendars) {
System.out.println("Found calendar "+c);
}
}
也许它可以帮助您入门.. 如果您想按用户获取它们,可以更改动态查询以查找 userId 而不是 groupId
我正在开发一个自定义插件,它使用日历 portlet 的 JSON Web 服务 只是 显示事件(通过,例如,http://localhost:8080/api/jsonws/calendar-portlet.calendar/get-calendar/calendar-id/11504).
获取用户有权访问的日历列表似乎应该很简单,但我无法弄清楚。该插件使用 Java 和 JavaScript 的组合,因此我可以通过 Java 或 REST/JSON.
获取信息现在,我将进入日历并从 RSS 提要中获取 ID URL;我确定这不是获取此信息的最佳方式。
您可以像这样获取组织中的所有日历:
String servletContextName = "calendar-portlet";
ClassLoader classLoader = (ClassLoader)com.liferay.portal.kernel.bean.PortletBeanLocatorUtil.locate(servletContextName, "portletClassLoader");
com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery = com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil.forClass(com.liferay.calendar.model.Calendar.class, classLoader);
dynamicQuery.add(com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil.forName("groupId").eq(groupId));
java.util.List<com.liferay.calendar.model.Calendar> calendars = com.liferay.calendar.service.CalendarLocalServiceUtil.dynamicQuery(dynamicQuery);
if(calendars.isEmpty()) {
throw new Exception("No calendar found for group "+groupId);
} else {
for(com.liferay.calendar.model.Calendar c: calendars) {
System.out.println("Found calendar "+c);
}
}
也许它可以帮助您入门.. 如果您想按用户获取它们,可以更改动态查询以查找 userId 而不是 groupId