在Liferay中动态更改页面布局

时间:2013-02-12 11:53:44

标签: layout liferay liferay-6

任何人都可以告诉我如何在Liferay中动态更改页面布局。 让我们考虑我们的页面有布局2列(50/50),这两列都有portlet。 如果用户点击任何portlet,我想将页面布局更改为2列(70/30)。

3 个答案:

答案 0 :(得分:1)

我从未尝试过,但您是否尝试过检查LayoutLocalServiceUtil.updateLayout()

那应该对你有所帮助。如果您要创建新页面,请使用LayoutLocalServiceUtil.addLayout(),否则请使用updateLayout()

获取布局,然后更新它。

layout = LayoutLocalServiceUtil.getFriendlyURLLayout(groupId, false, friendlyURL);

答案 1 :(得分:0)

加入 - 如提供的那样 -

layoutId = LayoutLocalServiceUtil.getFriendlyURLLayout(groupId,false,friendlyURL);

传递新页面的friendlyURL, 如果它是一个公共页面,那么false为私有, 并确保您已将一些布局应用于新页面(例如,70/30)

在 -

中使用此layoutId

“windowState =”<%= WindowState.NORMAL.toString()%>“>

将portletId提供给portletname字段。

答案 2 :(得分:0)

以下是布局模板中的示例html部分...

<div class="portlet-layout">
    <div class="aui-w70 portlet-column portlet-column-first" id="column-2">
        $processor.processColumn("column-2", "portlet-column-content portlet-column-content-first")
    </div>
    <div class="aui-w30 portlet-column portlet-column-last" id="column-3">
        $processor.processColumn("column-3", "portlet-column-content portlet-column-content-last")
    </div>
</div>

如果你仔细检查,有一些描述div宽度的类,在我的例子中,aui-w70的宽度为70%,aui-w30为30%。我相信你的布局也会得到类似的东西。 如果您可以根据需要在所需的活动中更改课程名称,那么您很高兴... 试一试....