有人知道如何在导出之前更改 liferay 日历事件的文件名吗?默认值为“liferay.ics”。
谢谢萨布丽娜
您可以通过编写钩子来更改名称。
覆盖位于 %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>
当将来需要进行更多高级操作时,请使用此方法。
Wrapper基本概念:
在你的钩子 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>
Your wrapper looks like this:
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);
}