有人知道在导出之前如何更改liferay日历事件的文件名吗? 默认的是“liferay.ics”。
由于 塞布丽娜
答案 0 :(得分:2)
您可以通过写一个钩子来改变名称。
覆盖位于%liferay_folder%\%your_server%\ webapps \ ROOT \ html \ portlet \ calendar
的export_import.jspf文件<aui:fieldset label="export">
<aui:input cssClass="lfr-input-text-container" label="" name="exportFileName" type="text" value="liferay.ics" />
</aui:fieldset>
更改value属性应该可以解决问题。
Owk在看了一下日历portlet后,看来上面的解决方案只在导出/导入选项卡上可见,而不是从摘要选项卡导出事件时。
当没有设置名称为exportFileName的portlet参数时,动作会自动将其命名为liferay.ics:
添加(在event_action.jsp中):
<portlet:param name="exportFileName" value="<%= event.getTitle() %>" />
到:
<c:if test="<%= CalEventPermission.contains(permissionChecker, event, ActionKeys.VIEW) %>">
<portlet:actionURL windowState="<%= LiferayWindowState.EXCLUSIVE.toString() %>" var="exportURL">
<portlet:param name="struts_action" value="/calendar/export_events" />
<portlet:param name="redirect" value="<%= currentURL %>" />
<portlet:param name="eventId" value="<%= String.valueOf(event.getEventId()) %>" />
</portlet:actionURL>
<liferay-ui:icon
image="export"
url='<%= exportURL %>'
/>
</c:if>
将来需要更多高级操作时,请使用此方法。
包装基本概念:
在你的钩子xml中:
<?xml version="1.0"?>
<!DOCTYPE hook PUBLIC "-//Liferay//DTD Hook 6.1.0//EN" "http://www.liferay.com/dtd/liferay-hook_6_1_0.dtd">
<hook>
<custom-jsp-dir>/WEB-INF/jsps/</custom-jsp-dir>
<struts-action>
<struts-action-path>/calendar/export_events</struts-action-path>
<struts-action-impl>aiao.liferay.strutsactions.ExportEventActionWrapper</struts-action-impl>
</struts-action>
</hook>
你的包装器看起来像这样:
public class ExportEventActionWrapper extends BaseStrutsPortletAction {
@Override
public void processAction(StrutsPortletAction originalStrutsPortletAction, PortletConfig portletConfig, ActionRequest actionRequest, ActionResponse actionResponse) throws Exception {
_logger.info("Call To Wrapper");
//do your magic here...
originalStrutsPortletAction.processAction(portletConfig, actionRequest, actionResponse);
}
private Log _logger = LogFactoryUtil.getLog(ExportEventActionWrapper.class);
}