【问题标题】:How to hide portlets on a page for mobile devices in Liferay Portal?如何在 Liferay Portal 的移动设备页面上隐藏 portlet?
【发布时间】:2012-08-24 21:47:50
【问题描述】:

我正在使用移动设备规则为不同的移动设备设置操作。我设置了两个动作: 1. 将布局更改为一列,然后 2. 将主题更改为显示块菜单和 WebContent 显示列的移动主题。

我需要从移动版本中隐藏桌面版本上的 portlet:即。相关资产 portlet,从移动设备查看页面时的广告 portlet。我需要以最简单的方式完成此任务。是否可以更改 portlet 配置设置以指示它们是否使用移动设备显示?

【问题讨论】:

  • Portlet 配置 - 如果 portlet 支持多种 mime 类型,支持的客户端将允许我选择移动设备。我该如何设置?

标签: mobile themes liferay


【解决方案1】:

在 Liferay 支持的帮助下找到了我的问题的解决方案。隐藏 portlet 的两种可能方式:

  1. 向移动设备规则插件添加自定义操作。
  2. 扩展 Liferay 的渲染逻辑:读取 http 属性并确定浏览器是否为移动浏览器并隐藏您需要的 portlet。 例如,为 render_portlet.jsp 使用钩子并使用以下内容进行自定义:

    if (BrowserSnifferUtil.isMobile(request)) { if("1_WAR_webformportlet_INSTANCE_qlQYswM4fJFO".equals(portletId)) { //示例 支持移动=假; } }

【讨论】:

  • 1_WAR_webformportlet_INSTANCE_qlQYswM4fJFO".equals(portletId) 是一个示例。使用属性文件或配置 portlet 并在其位置使用 portletId 列表。
  • 对于第二种解决方案,您还可以更改它们中的 portlet.vm 模板,而不是挂钩 jsp。此解决方案适用于 liferay 6.0 到 7.0
【解决方案2】:

一种可能性是在移动主题中隐藏您的“相关资产portlet”。此解决方案的缺点是您传输不可见的标记。

其他解决方案是为移动设备创建一个页面,该页面不包含“相关资产 portlet”。然后,如果用户从移动设备访问原始页面,则创建重定向用户的移动规则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-11
    • 1970-01-01
    • 2016-04-04
    • 2020-01-06
    相关资源
    最近更新 更多