Как получить plid определенного портлета в шаблоне скорости Liferay

Я разрабатываю MVC Portlet и хочу открыть определенную страницу моего портлета через ссылку меню через контроллер. В шаблоне скорости у меня есть имя портлета моего портлета.

Как я могу получить доступ к этому портлету?

Мой код выглядит следующим образом:

#if ($nav_item.getName().equalsIgnoreCase("specific menu link"))

#set ($myURL = $portletURLFactory.create($request,"portletname_WAR_portletnameportlet",$getterUtil.getLong($plid),"RENDER_PHASE"))
$myURL .setParameter("view","methodName") //Controller paramter
<a href="$myURL" > $nav_item.getName()</a>
#end

Он добавляет мои параметры к текущему URL-адресу и остается на текущей странице.

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

Итак, как я могу получить мои портлеты во время выполнения в файле vm для использования при создании URL-адреса?


person Omkar Khandare    schedule 18.02.2014    source источник


Ответы (1)


у нас есть поддержка кое-где еще в конфигурации.. я могу дать вам совет, что-то хранит значение PlId в настройках портлета.. в скорости получите предпочтение портлета по идентификатору портлета.. затем получите plid.

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

Используйте одни и те же имена страниц на всех порталах на основе plid получения имен страниц.

person Meera Prince    schedule 08.05.2014