Встроенный портлет в теме Liferay - Как принудительно обновить? - PullRequest
1 голос
/ 03 ноября 2011

У меня есть пользовательская тема портала Liferay, которая встраивает портлет в левый раздел через некоторый стандартный код Velocity в portal_normal.vm.Когда я впервые встраивал портлет, я установил для свойства portlet-setup-show-border-default значение «false», что заставляло портлет отображаться без строки заголовка или другого «хрома» (что я не хотел).

Я изменил значение свойства на «true», но обнаружил, что на страницах, где я уже загрузил портлет, он продолжал отображаться без границ и «хрома».Однако, если я загрузил другую страницу, портлет отобразился правильно.

Как заставить Liferay правильно перерисовать портлет на тех первых страницах, которые я посетил?Я не могу найти ничего в GUI администратора (что я бы предпочел), что могло бы привести к очистке какой-то его кэшированной копии, и многие поисковые запросы в Google не показали ничего, что также работает.Я нашел одну статью, которая выглядела так, как будто она могла бы работать (http://www.liferay.com/community/forums/-/message_boards/message/772138), но код, опубликованный Артуром во втором комментарии, не работает для общего портлета, только портлет веб-контентаи статьи.

Кто-нибудь еще сталкивался с этим и нашел решение?Пожалуйста, дайте мне знать как можно скорее!

Заранее спасибо

- Джо -

1 Ответ

2 голосов
/ 03 ноября 2011

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

Когда портлет встроен в тему, каждая страница, загруженная для этой темы, имеет настройки VelocityPortletPreferences, хранящиеся в таблице PortletPreferences базы данных.,Даже если вы измените настройки предпочтений внутри кода шаблона для вашей темы, Liferay проигнорирует это изменение и будет использовать сохраненные значения предпочтений в БД.Единственный способ очистить эти сохраненные значения - удалить строки в таблице PortletPreferences, соответствующие идентификатору вашего портлета.

 delete from PortletPreferences where portletId = '<your-portlet-id-here>'

Как только вы это сделаете (перезапуск службы Liferay не требуется),Вы можете перезагрузить страницы, которые не отображались должным образом, и теперь они будут выбирать обновленные настройки предпочтений.

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

...