Forum: Radiant CMS Children + Siblings

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
Paul I. (Guest)
on 2009-01-12 22:44
(Received via mailing list)

I'm trying to show a side-menu with a section, so, for example:

- Welcome
+ Items Intro
++ Item A
++ Item B

I'd like to show a list with "Items Intro, Item A, and Item B" on the
Items Intro, Item A, and Item B pages- with my current page highlighted.

At present, I'm doing something similar to:

     <li <r:if_self> class="selected"</r:if_self><r:unless_self>
       <a href="<r:url/>"><r:title /></a>

But, as soon as I click on Item A, or Item B, they lose the items
(because those are obviously now siblings of the current page). Is
there anyway to attempt to find both children and perhaps siblings, or
a clever way to avoid having to duplicate the items for each page?


Nate T. (Guest)
on 2009-01-12 23:06
(Received via mailing list)
On Mon, Jan 12, 2009 at 2:43 PM, Paul I. <removed_email_address@domain.invalid> 

> Intro, Item A, and Item B pages- with my current page highlighted.
I believe that if you wrap that snippet with <r:find
url="/items-intro/">...</r:find>  you should be good.

Paul I. (Guest)
on 2009-01-12 23:10
(Received via mailing list)
Yep, worked perfectly. Thank you!
Andrew N. (Guest)
on 2009-01-12 23:12
(Received via mailing list)
On 12 Jan 2009, at 20:43, Paul I. wrote:
> <r:children:each>
>    <li <r:if_self> class="selected"</r:if_self><r:unless_self>
> class="item"</r:unless_self>>
>      <a href="<r:url/>"><r:title /></a>
>    </li>
> </r:children:each>

I think what you need to do is wrap the above section of code in a
<r:find/> tag. If the "Items Intro" has the url: /items you would do
something like:

<r:find url="/items">
       <li <r:if_self> class="selected"</r:if_self><r:unless_self>
         <a href="<r:url/>"><r:title /></a>

That way, it will always find the children of the "Items intro" page,
even if the page you are on *is* a child of "Items intro".

You might need to tinker with the if/unless_self conditions to apply
the appropriate classes.

If you find yourself wanting to work with sibling pages, instead of
child pages, then check out the sibling_tags extension:

This is useful, for example, if you want to provide "Next" and
"Previous" links.

Hope this helps,
This topic is locked and can not be replied to.