Junkfood

Food and Junk.

All | Food | Junk | Work

20050127 Thursday January 27, 2005

Roller: Navigation Bar Improvement

The current behavior of the Navigation Bar (the one on my page, at the right, that starts with "Sun Bloggers" and "Weblog") is that if a Roller user logs into the system, the Navigation Bar also contains "New Entry", "Settings", and "Logout". It makes sense if I (the page owner) am the one looking at this page. However, for other Roller users who happen to see this on my page, it may be somewhat confusing. Similarly, when I am logged in and look at other users' pages, I see a "New Entry" link which is confusing for me.

The improved behavior is that "New Entry", "Settings", and "Logout" is seen in the Navigation Bar only when I (the page owner) am logged in. Other logged-in users don't see these links. Non-logged in users see a link to "Login". The below macro contains the fix. It overrides an existing Roller macro.

#macro( showNavBar2 $vertical $delimiter $useCSS)
    #set( $container = "div" )
    #if ( $useCSS ) #set( $container = "ul" ) #end
    #set( $rawUrl = "$ctxPath/page/$userName" )
    <$container class="rNavigationBar">
    #if ($siteName=="Main")
        #set( $mainUrl = "$ctxPath?rmk=tabbedmenu.main&amp;rmik=tabbedmenu.main" )
        #printNavLink( $mainUrl $text.get("navigationBar.main") $useCSS $vertical "" )
    #else
        #printNavLink( "$ctxPath/" $siteName $useCSS $vertical "" )
    #end
    #if( $website )
        #foreach( $iPage in $pages )
            #set( $invisible = $iPage.Name.startsWith("_") )
            ## Again, there is no "break" in Velocity
            #if( !$invisible )
                #set( $isSelected = false )
                #if( $page && $iPage.Id == $page.Id && 
!$editorui) #set($isSelected = true) #end

                #if( !$isSelected )
                    #printNavLink( "$rawUrl/$iPage.Link" $iPage.Name 
$useCSS $vertical $delimiter )
                #else
                    #if( $useCSS )<li class="rNavItem">
                    #elseif( $vertical ) <br />
                    #else $delimiter
                    #end
                    $iPage.Name
                #end
            #end
        #end
    #end

    ## strutsUrlHelper( useIds, isAction, path, val1, val2)
    #if ($req.getUserPrincipal())
        ## // The person looking at the page is logged into Roller.
        #if ($req.getUserPrincipal().getName().equals($userName))
            ## // The person looking at the page is this blog's owner
            ## // who is also currently logged in.
            #set( $editUrl = $rawUrl )
            #set( $editUrl = $pageHelper.strutsUrlHelper(false, true, 
"weblogCreate", "tabbedmenu.weblog", "tabbedmenu.weblog.newEntry") )
            #printNavLink( $editUrl $text.get("navigationBar.newEntry") 
$useCSS $vertical $delimiter )

            #set( $editUrl = $rawUrl )
            #set( $editUrl = $pageHelper.strutsUrlHelper(false, true, 
"editWebsite", "tabbedmenu.website", "tabbedmenu.website.settings") )
            #printNavLink( $editUrl $text.get("navigationBar.settings") 
$useCSS $vertical $delimiter )
            #set( $editUrl = $rawUrl )
            #set( $editUrl = $pageHelper.strutsUrlHelper(false, true, 
"logout-redirect", "", "") )
            #printNavLink( $editUrl $text.get("navigationBar.logout") 
$useCSS $vertical $delimiter )
        #else
            ## // The person looking at the page is the owner of a
            ## // different blog.  They are logged in.
        #end
    #else
        ## // The user is not logged into Roller.
        #set( $editUrl = $pageHelper.strutsUrlHelper(false, true, "login-redirect", 
"", "") )
        #printNavLink( $editUrl $text.get("navigationBar.login") $useCSS $vertical 
$delimiter )

        #if ($req.getAttribute("allowNewUsers"))
            #set( $registerUrl = $pageHelper.strutsUrlHelper(false, true, 
"registerUser", "", "") )
            #printNavLink( $registerUrl $text.get("navigationBar.register") $useCSS 
$vertical $delimiter )
        #end
    #end
    </$container >
#end

(Some long lines have been broken into separate lines, so you may need to join them back together manually.)

(2005-01-27 13:00:00.0) Permalink | Comments [1]

Calendar

« January 2005 »
SunMonTueWedThuFriSat
      
1
2
3
4
5
6
7
8
9
10
13
15
16
17
22
23
26
28
29
30
31
     
Today

Recent Entries

Search

Navigation



XML