Newb Menu Question

Hey all,

I’ve got my Radiant shell up and running and I’m trying to figure things
out. One thing I’ve run across is building a menu and highlighting the
current page. Here’s what I have right now. It works but it’s really
really messy. I guess I could put it into a snippet or something but it
still seems like the hard way to do it. I looked at the <r:navigation>
stuff but I think that just works with children pages, correct?

Basically, I’m trying to single out the current page so that I can apply
a
CSS id to it. That id causes the menu item to be bold and give you the
feeling that your really on the page.

I know it’s probably something really stupid, but instead of messing
with it
for 3 days I thought I would ask you guys for some help.

Thanx!
Richard

BTW: The page I’m working on is at http://mail.kangaroobox.com:3000/.
Don’t
abuse me too much. :slight_smile:

I used to recommend the <r:navigation> tag, but nowadays, I’m thinking
body-ids combined with some dynamic CSS might work best. I might do
something like this in the layout:

Then in a separate (Radiant-stored) stylesheet, I would do something
like this:

<r:find url="/">
<r:snippet name=“page_menu_highlight” />
</r:find>

Then in the snippet named “page_menu_highlight”:

#page_<r:id/> #link_to_<r:id/> { font-weight: bold; } // or whatever
you want to use to highlight.
<r:children:each>
<r:snippet name=“page_menu_highlight” />
</r:children:each>

Then when generating your menu items, set the id on each item to
#link_to_<r:id/>.

If you have pretty much static menu options, <r:navigation/> is
arguably better, however.

Sean

Sean,

Thats good information. Since I will be having mostly static menu items
I’m
thinking that <r:navigation> might work better. However, I don’t really
know how to implement it for pages that don’t have a parent/child
relationship. All the samples seem to focus on dynamic menus built on
multiple levels of related pages. Or maybe I’m looking at them wrong…
Do
you have any hints/tips on using it?

Anyway, my major focus is going to be simplicity and efficiency. I
don’t
want to put up a huge boatload of processor intensive code just to build
a
menu. :confused:

Later…
Richard

Woo Hoo! I think I’ve figured it out. I have it working in all cases
except the root “/” site (Home Page). Since every URL contains a ‘/’
my
‘Home’ page gets selected every time. Hmmmm…I see that the
<r:navigation> source shows that it can do RegExp processing but I’m not
sure how to turn it on. I LOVE open source code, but my Ruby reading
abilities are pretty weak.

Thanx!
Richard

Richard,

I usually put the home page in a separate case, outside the
<r:navigation>. That way, they won’t all be highlighted. Something
like this:

<li class="active"Home

Ruby regexps’ literal syntax is basically the same as Perl regexps, if
that helps.

Sean