Thursday January 27, 2005
JunkfoodFood and Junk. 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&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
Recent Entries
SearchNavigation
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||