Как применить изменения конфигурации языкового портлета ко всем страницам

Я добавляю языковой портлет в свою тему liferay, используя этот код:

#set ($VOID = $velocityPortletPreferences.setValue('portletSetupShowBorders', 'false'))
#set ($portlet_id = '82')
#set ($instance_id = "239abc678iuy")
#set ($my_portlet_id = "${portlet_id}_INSTANCE_${instance_id}")
$theme.runtime($my_portlet_id, "", $velocityPortletPreferences.toString())

в portal_normal.vm.

Я использую одну и ту же тему на многих страницах. Проблема в том, что когда я меняю конфигурацию языкового портлета (например, добавляю или удаляю некоторые языки), изменение применяется только к текущей странице, а не к другим страницам.


person sedki    schedule 21.05.2015    source источник
comment
просто мне нужно решить проблему обновления смены языка протлета на всей странице   -  person sedki    schedule 21.05.2015
comment
Идентификатор экземпляра бесполезен, поскольку языковой портлет не поддерживает создание экземпляра.   -  person Tobias Liefke    schedule 22.05.2015


Ответы (1)


Предпочтения для языкового портлета уникальны для каждого макета, что означает, что каждая страница имеет свою собственную конфигурацию для этого портлета.

В liferay-portlet.xml есть параметр, который этим управляет. По умолчанию используется true, поэтому он не упоминается в разделе языкового портлета.

У вас есть два варианта:

  1. Создайте дополнительный модуль и переопределите языковой портлет в liferay-portlet-ext.xml:

    <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>
    
  2. Создайте подключаемый модуль ловушки и создайте служебную оболочку для PortletLocalService, которая возвращает настраиваемую оболочку для портлета 82, которая в конце возвращает false для preferencesUniquePerLayout.

person Tobias Liefke    schedule 21.05.2015