在 Liferay 中,多个页面可以共享同一个 portlet 实例吗?

5 portlet liferay-6

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

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

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

家(绿色)
?? 关于(蓝色)
? ?? 联系人(蓝色)
?? 产品(橙色)
? ?? AXL-900(橙色)
? ?? VCC-218(橙色)
?? 支持(红色)
? ?? 贵宾(金)
?? 合法(绿色)

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

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

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

有没有办法使这项工作?

小智 1

看起来可行的方法是创建命名的设置集,并让每个页面都有自己的 portlet 实例。

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

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