0

有人知道如何在导出之前更改 liferay 日历事件的文件名吗?默认值为“liferay.ics”。

谢谢萨布丽娜

4

1 回答 1

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 之后,似乎我的上述解决方案仅在导出/导入选项卡上可见,而不是当您从摘要选项卡导出事件时。

负责创建文件的端点:http://www.jarvana.com/jarvana/view/com/liferay/portal/portal-impl/6.1.0/portal-impl-6.1.0-sources.jar! /com/liferay/portlet/calendar/action/ExportEventsAction.java?format=ok

看来,当没有设置名为 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>

围绕 ExportEventsAction 编写一个包装器。(更多高级场景)

当将来需要进行更多高级操作时,请使用此方法。

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);

}
于 2012-05-24T21:52:26.460 回答