【问题标题】:Can multiple pages share the same instance of a portlet in Liferay?Liferay 中的多个页面可以共享同一个 portlet 实例吗?
【发布时间】:2012-03-11 21:17:00
【问题描述】:

对于由 Liferay EE 6.0 SP1 提供支持的网站,在某些情况下,某些页面需要“共享”某些 portlet 的相同实例,但其他页面将有自己的实例。

例如(人为设计,但希望是说明性的),考虑一个带有改变 portlet 背景颜色的首选项的 portlet。

假设我们有以下页面(该页面上的 portlet 的背景颜色遵循此列表中的页面名称):

主页(绿色) ├─ 关于(蓝色) │ └─ 联系方式(蓝色) ├─ 产品(橙色) │ ├─ AXL-900(橙色) │ └─ VCC-218(橙色) ├─ 支持(红色) │ └─ VIP(金) └─ 合法(绿色)

请注意,在几个页面上,portlet 具有相同的背景颜色首选项。到目前为止,这很容易;您只需向每个页面添加一个单独的 portlet 实例并适当地设置首选项。

但是,内容管理员不想按页面管理背景颜色;例如,他们希望同时将所有“关于”页面上的 portlet 的背景颜色更改为紫色(这是有道理的;它使原本需要手动操作的工作自动化[根据定义,容易出错) ] 进程)。

为此,例如,“关于”和“联系”页面都必须使用相同的 portlet 实例……或者它们必须有单独的实例,但两个实例将共享相同的偏好值。或者也许有不同的方法。

有没有办法让它工作?

【问题讨论】:

    标签: portlet liferay-6


    【解决方案1】:

    看起来要走的路是创建命名的设置集,让每个页面都有自己的 portlet 实例。

    在来自 OP 的示例中,产品页面将有一个独特的 portlet 实例,该实例将被配置为使用例如“橙色”设置集。对 portlet 设置所做的任何更改随后都会影响使用“橙色”设置集的任何其他 portlet。

    更多信息请参见http://www.liferay.com/community/forums/-/message_boards/message/10361805#_19_message_10382903

    【讨论】:

      【解决方案2】:

      您拥有自己的自定义 portlet,并且希望它是可实例化的或不可实例化的,具体取决于它的部署位置,对吗? (如您评论中的链接所述)

      一种可能性是部署另一个版本的 portlet,名称稍有不同(portlet1 与 portlet2),现在在另一个 (portlet1) 上设置 instanceable,在另一个 (portlet2) 上设置它不可实例化。这不是一个好方法,而是一些开箱即用的想法。

      此外,如果您可以另外配置可实例化的东西,以便某个 portlet 窗口打开该设置并关闭另一个,那将是完美的,但我对此知之甚少。也许无所不知的谷歌或其他人可以帮助他/她自己的答案。

      顺便说一句。为什么不问cmets上另一个问题的回答者也看这个呢?

      编辑_1: 在您发表评论后,我再次研究了该问题并发现了Portlet Prefences 属性,其应用程序在Liferay pagesone forum 上进行了描述。我提到的论坛上至少有一条评论与您所说的行为很接近。 Liferay 页面也有一些可能有趣的设置示例。

      【讨论】:

      • 对不起;我想链接到另一个问题有点误导。我们正在寻找的是具有多个portlet 实例的能力,但具有多个页面共享实例的能力。例如,可能有三个页面共享一个 portlet 实例,可能还有两个页面共享一个不同的实例,另外 8 个页面共享一个第三个实例,等等。
      【解决方案3】:

      是的,这可以通过创建不可实例化的 portlet 并为这些页面使用范围来实现。这是关于范围的 Liferay wiki 页面:http://www.liferay.com/community/wiki/-/wiki/Main/Scope

      更新: 还有一些 Liferay 特定的设置允许您控制 portlet 首选项的范围:“preferences-company-wide”、“preferences-unique-per-layout”和“preferences-owned-by-group”(都是通过 liferay-portlet.xml 设置/取消设置)。

      这里有更多关于它们的信息: http://content.liferay.com/4.3/doc/devel/liferay_4_portlet_development_guide/multipage/ch02.html 和这里: http://www.liferay.com/community/forums/-/message_boards/message/10931559/maximized

      【讨论】:

        猜你喜欢
        • 2011-07-09
        • 2019-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多