论坛

主页 » Liferay Portal » English » 3. Development

组合视图 统一视图 树状图
讨论主题 [ 上一个 | 下一个 ]
toggle
Yale Yu
how can I get $navItems variables from webcontent's template
2012年3月30日 上午4:10
答复

Yale Yu

等级: New Member

帖子: 6

加入日期: 2012年3月29日

最近的帖子

I know that we can get $navItems in theme context, but how can I get navItems in webcontent step by step.

What should I config or how to get navigation information?

Thanks!
Amit Doshi
RE: how can I get $navItems variables from webcontent's template
2012年4月3日 上午5:40
答复

Amit Doshi

等级: Liferay Master

帖子: 544

加入日期: 2010年12月29日

最近的帖子

Hi Yale,

As per my knowledge you cannot directly get $nav-items in web-content.

But you can use the service of layout and get the currentlayout and also it's subpages too.

The below code will get you the currentlayout of the page and also it's subpages.

 1##get the services for layout and group
 2
 3#set($layoutLocalService = $serviceLocator.findService("com.liferay.portal.service.LayoutLocalService"))
 4#set($groupLocalService  = $serviceLocator.findService("com.liferay.portal.service.GroupLocalService"))
 5
 6#set($scopeGroup = $groupLocalService.getGroup($getterUtil.getLong($groupId)))
 7#set($groupHomeURL = $request.get("theme-display").path-friendly-url-public + $scopeGroup.getFriendlyURL())
 8
 9#set ($layoutId = $getterUtil.getLong($request.get("theme-display").get("plid")))
10
11##take a layout object
12#set($layout = $layoutLocalService.getLayout($layoutId))
13
14#set($layoutforsubmenu = $layoutLocalService.getLayout($getterUtil.getLong($groupId),false,$getterUtil.getLong($layoutId)))
15
16#if ($layoutforsubmenu.hasChildren())
17       
18            #set($layoutList=$layoutLocalService.getLayouts($getterUtil.getLong($groupId),false,$layoutforsubmenu.getLayoutId()))
19            
20            #foreach($childLayout in $layoutList)
21            
22               
23                        #set($childLink = $groupHomeURL +$childLayout.getFriendlyURL())
24                        
25                        #if($layout.getPlid() == $childLayout.getPlid() || ($layout.isHidden() && $layout.getParentPlid() == $childLayout.getPlid()))                        
26                            <a href="$childLink" class="active">$childLayout.getName()</a>
27                        #else
28                            <a href="$childLink" class="">$childLayout.getName()</a>
29                        #end
30            
31               
32            #end
33            
34        #end


Hope it helps.

Thanks & Regards,
Amit Doshi
Yale Yu
RE: how can I get $navItems variables from webcontent's template
2012年4月5日 上午2:41
答复

Yale Yu

等级: New Member

帖子: 6

加入日期: 2012年3月29日

最近的帖子

thanks very much