Из JavaScript мне нужно создать всплывающее окно на странице (на основе DIV?), которое показывает определенный портлет.
Это выглядит именно так, как мне нужно:
https://web.liferay.com/community/wiki/-/wiki/Main/Using+Pop-up+in+Liferay
Liferay предоставляет класс Expanse.Popup для реализации этого типа всплывающих окон. Вот как будет выглядеть всплывающее окно такого типа:
Этот код javascript сделает асинхронный вызов URL-адреса, который мы ему даем, и поместит содержимое в наша страница. Ниже приведен пример, который загрузит URL-адрес «url» во всплывающем окне под названием «наш заголовок»:var popup = новый Expanse.Popup(
[...]
Проблема. К сожалению, когда я добавляю этот код в свой портлет, развертываю и запускаю его, я получаю:
TypeError: Expanse.Popup is not a function
Судя по комментариям на этой странице, функция много раз меняла названия. Я пробовал Alloy.Popup
, A.Popup
, Liferay.Popup
, все одинаково терпят неудачу. Кроме того, я читал, что AUI устарел и не рекомендуется для новой разработки.
Liferay.Util.openWindow
работает, но, к сожалению, в качестве параметра принимает URL, а не портлет. Есть ли способ заставить его показывать портлет? Я не хочу создавать страницу для этого на всех сайтах.
Вопрос. Как реализовать это всплывающее окно на странице, которое загружает портлет, в Liferay 7?
Оно может быть модальным или нет: я не возражаю, если пользователи могут позволить всплывающему открывать и взаимодействовать с остальной частью страницы.