在弹出的Liferay中显示portlet

时间:2013-11-06 11:44:59

标签: popup liferay portlet

我正在尝试从另一个中显示一个portlet(以前我创建过的),但是弹出窗口是空的。 首先,我创建了renderURL:

<liferay-portlet:renderURL var="testPopupURL" portletName="<%=rule.getBannerPortletId() %>" windowState="<%=LiferayWindowState.POP_UP.toString() %>"></liferay-portlet:renderURL>

我做了链接:

<aui:a href="#" onClick="showPopup('${testPopupURL}')">View</aui:a> 

这是showPopup函数:

    function showPopup(url){
    console.log("En el showPopup ");
    AUI().ready('aui-dialog', 'aui-io', 'event', 'event-custom', function(A) {
        window.myDialog  = new A.Dialog({
            title: 'Banner',
            width: 640,
            centered: true
        }).plug(A.Plugin.DialogIframe, {
                uri: url.toString(),
                iframeCssClass: 'dialog-iframe'
        }).render();
    });
}

我输入了liferay-portlet.xml(我想在弹出窗口中打开的portlet):

<add-default-resource>true</add-default-resource>

portlet是instanciable,bannerPortletId是porletId。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:2)

最后我显示了portlet。我用javascript创建了网址:

    var url;
    function createRenderURL(portletId) {
    AUI().ready('liferay-portlet-url', function(A) {
        var renderURL = Liferay.PortletURL.createRenderURL();
        renderURL.setName("Banner");
        renderURL .setPortletMode("edit");
        renderURL .setWindowState("pop_up"); 
        renderURL.setPortletId(portletId);
    url = renderURL.toString();
    });
}

show pop-up的代码是相同的,但我像参数一样传递portletId并调用函数createRenderURL。

    var url;

function createRenderURL(portletId) {
    console.log("en el createRender");
    AUI().ready('liferay-portlet-url', function(A) {
        var renderURL = Liferay.PortletURL.createRenderURL();
        renderURL.setName("Banner");
        renderURL .setPortletMode("edit");
        renderURL .setWindowState("pop_up"); 
        renderURL.setPortletId(portletId);
        console.log(renderURL);
        url = renderURL.toString();
    });
}

我希望这对某人有用。