Liferay 如何将语言portlet的配置更改应用于所有页面

Liferay 如何将语言portlet的配置更改应用于所有页面,liferay,liferay-6,liferay-theme,liferay-velocity,Liferay,Liferay 6,Liferay Theme,Liferay Velocity,我使用以下代码在liferay主题中添加语言portlet: 在门户中\u normal.vm 我在许多页面中使用相同的主题。问题是,当我更改语言portlet的配置(例如,添加或删除某些语言)时,修改仅应用于当前页面,而不应用于其他页面。语言portlet的首选项在每个布局中都是唯一的,这意味着每个页面对此portlet都有自己的配置 liferayportlet.xml中有一个控制该设置的设置。它默认为true,这就是为什么在语言portlet部分中没有提到它的原因 您有两个选择: 创建一

我使用以下代码在liferay主题中添加语言portlet:

门户中\u normal.vm


我在许多页面中使用相同的主题。问题是,当我更改语言portlet的配置(例如,添加或删除某些语言)时,修改仅应用于当前页面,而不应用于其他页面。

语言portlet的首选项在每个布局中都是唯一的,这意味着每个页面对此portlet都有自己的配置

liferayportlet.xml
中有一个控制该设置的设置。它默认为
true
,这就是为什么在语言portlet部分中没有提到它的原因

您有两个选择:

  • 创建一个ext插件,并在
    liferay-portlet-ext.xml
    中重新定义语言portlet:

    <portlet>
        <portlet-name>82</portlet-name>
        <icon>/html/icons/language.png</icon>
        <struts-path>language</struts-path>
        <!-- ... copy of all other lines of portlet 82 from liferay-portlet.xml -->
        <preferences-unique-per-layout>false</preferences-unique-per-layout>
    </portlet>
    
    
    82
    /html/icons/language.png
    语言
    错误的
    
  • 创建一个钩子插件并为PortletLocalService创建一个服务包装器,该服务包装器返回portlet 82的自定义包装器,最终返回
    false
    for
    首选项SuniquePerLayout


  • 只是我需要解决在所有页面中更新protlet语言更改的问题。实例id是无用的,因为语言portlet不是可实例化的。
    <portlet>
        <portlet-name>82</portlet-name>
        <icon>/html/icons/language.png</icon>
        <struts-path>language</struts-path>
        <!-- ... copy of all other lines of portlet 82 from liferay-portlet.xml -->
        <preferences-unique-per-layout>false</preferences-unique-per-layout>
    </portlet>