Home » Liferay Portal » English » 3. Development

Combination View Flat View Tree View
Threads [ Previous | Next ]
pratty M
Making Public & Private Pages as Left Navigation Panel Tabs
June 5, 2014 4:15 AM

pratty M

Rank: Regular Member

Posts: 112

Join Date: February 5, 2014

Recent Posts

Hello all,

I am trying to make Public and Private Pages as Tabs of Side navigation portlet. But I am stuck, as the links for Public and Private pages in control panel are dynamically generated,. so how should I proceed ??

Can anyone help ??

Thanks in advance
Sandip Patel
RE: Making Public & Private Pages as Left Navigation Panel Tabs
June 6, 2014 2:03 AM

Sandip Patel

Rank: Regular Member

Posts: 195

Join Date: January 4, 2011

Recent Posts

You can go with Liferay OOTB Navigation porltet and create hook and customize your own way to display public and private page.
If this solution becomes complex then you can create your custom porltet and with use of list of Layouts(Pages) u can display link which you want to display

Sandip Patel
Subhash Pavuskar
RE: Making Public & Private Pages as Left Navigation Panel Tabs
June 9, 2014 12:49 AM

Subhash Pavuskar

Rank: Regular Member

Posts: 234

Join Date: March 12, 2012

Recent Posts


If you want to display Public and private page as a left navigation bar then create theme in and in _diff/templates folder create vm file(Eg :side_navigation.vm)
and do something like below snippet
 1#foreach($group in $user.getGroups())
 2                        #if ($group.descriptiveName==$siteName)
 3                                    #set ($globalLayouts_private = $layoutLocalService.getLayouts($group.groupId,true,0))
 4                                       #set ($globalLayouts_public = $layoutLocalService.getLayouts($group.groupId,false,0))
 5                                  #foreach ($private_layout in $globalLayouts_private)
 6                                      <li><a href="$portalUtil.getLayoutFriendlyURL($private_layout, $theme_display)?siteName=$siteName"> $private_layout.getName($locale) </a></li>
 7                                            #if($private_layout.hasChildren())
 8                                                <div>
 9                                                     <ul>
10                                                         <li><a href="$portalUtil.getLayoutFriendlyURL($private_layout, $theme_display)?siteName=$siteName"> $private_layout.getName($locale) </a></li>
11                                                        #foreach($private_layout_chilld in $private_layout.getAllChildren())
12                                                            <div>
13                                                                 <ul>
14                                                                    <li>
15                                                                        <a href="$portalUtil.getLayoutFriendlyURL($private_layout_chilld, $theme_display)?siteName=$siteName"> $private_layout_chilld.getName($locale)</a>
16                                                                    </li>
17                                                                </ul>
18                                                            </div>
19                                                        #end
20                                                    </ul>
21                                                 </div>
22                                             #end
23                                #end
25                                  #foreach ($public_layout in $globalLayouts_public)
26                                    <li><a href="$portalUtil.getLayoutFriendlyURL($public_layout, $theme_display)?siteName=$siteName">$public_layout.getName($locale)</a></li>
27                                                #if($public_layout.hasChildren())
28                                                    <div>
29                                                         <ul>
30                                                         <li><a href="$portalUtil.getLayoutFriendlyURL($public_layout, $theme_display)?siteName=$siteName">$public_layout.getName($locale)</a></li>
31                                                                #foreach($public_layout_chilld in $public_layout.getAllChildren())
32                                                                    <div>
33                                                                         <ul>
34                                                                            <li>
35                                                                                <a href="$portalUtil.getLayoutFriendlyURL($public_layout_chilld, $theme_display)?siteName=$siteName">$public_layout_chilld.getName($locale)</a>
36                                                                            </li>
37                                                                        </ul>
38                                                                    </div>
39                                                                #end
40                                                        </ul>   
41                                                    </div>
42                                                #end
43                                #end
44                        #end
45                 #end

And in portal_normal add this code

1#if ($is_signed_in)
2            <div id="menu" style="float:left;width:20%; background-color:#882345;padding: 3px;margin-top: 8px;">
3                #if ($has_navigation || $is_signed_in)
4                    #parse ("$full_templates_path/side_navigation.vm")
5                #end
6            </div>
7        #end

hope above may help you .

Participate in the State of Liferay Community 2017. Help the community and even win some prizes!