<r:if_url matches="^/"> doesn't make much sense.. It means any url starting with a /, so ... any url. This will indeed always render.
<r:unless_url matches="^/about$"> means if we are not on the /about page, so this will also render on every page except the about page. I think this is what you're after: <r:unless_url matches="^/about$"><r:snippet name="slider" /></ r:unless_url> <r:snippet name="main" /> <r:content part="sidebar" inherit="true" /> <r:snippet name="foot" /> regards, Benny On Feb 23, 7:52 pm, rosslaird <r...@rosslaird.com> wrote: > Thanks for the help, Will. > > I must be misunderstanding this in a fundamental way. > Here's what I have in my layout: > > <r:if_url matches="^/"> > <r:snippet name="slider" /> > <r:snippet name="main" /> > <r:content part="sidebar" inherit="true" /> > <r:snippet name="foot" /> > </r:if_url> > <r:unless_url matches="^/about$"> > <r:snippet name="main" /> > <r:content part="sidebar" inherit="true" /> > <r:snippet name="foot" /> > </r:unless_url> > > By my reckoning, that should render all the snippets -- including the > slider, which has the About Me info -- on every page except the /about > page, for which the above code is intended to remove the slider. But > what happens in the above scenario is that the snippets are rendered > twice on every page (This creates such a messy page that I have not > even looked for the slider snippet to see if it is rendered twice. I > think I should fix the reproduction first.) > > What am I missing? > > On Feb 23, 9:16 am, William Ross <w...@spanner.org> wrote: > > > > > > > > > On 23 Feb 2011, at 17:01, rosslaird wrote: > > > > In the radiant wiki over on github (I am posting this here because the > > > wiki on github seems to have very low readership), the conditional > > > tags page show this example code: > > > > <head> > > > <r:if_url matches="^/$"> > > > <title>Radiant Handbook</title> > > > </r:if_url> > > > <r:unless_url matches="^/$"> > > > <title><r:title/> - Radiant Handbook</title> > > > </r:unless_url> > > > </head> > > > > The documentation goes on to say that "the code above would set the > > > page title as “Radiant Handbook” on the homepage, but for all subpages > > > it would use the title of the page, then “… – Radiant Handbook”. > > > > Now, when I look at the url regexp in the first bit (if_url matches), > > > then I look at the regexp in the second bit (unless_url), these two > > > expressions look *exactly the same* to me. Each one is "^/$". Am I > > > blind, or are they the same? And if they are the same, should they be? > > > And if not, what should they be? > > > The lack of an else clause in radius makes for rather clumsy notation > > sometimes: this is really just an if/then/else construction to check for > > rootpageness. In radius that has to be written as if and then unless with > > the same condition. In this example the path stays the same so that the > > same condition is applied first positively then negatively. > > > > I am trying to show an "About Me" link (in an id that slides in and > > > out with JS) on my site on every page except the /about page (which > > > already is about me...). It seems that if_url and unless_url are the > > > way to go here, but I can't seem to get it to work. And I'm wondering > > > is the reason for that has to do with the example code I've been > > > adapting. I just changed the unless_url link to <r:unless_url > > > matches="^/about/$">, but no dice. The About Me link still shows on > > > that page. > > > Your regex should work for /about/, but it does depend on the url that is > > requested. It's a rails quirk that /about and /about/ are considered the > > same path, for example. Partial matches are fine so if the site is simple > > you might have better results with <r:unless_url matches="^/about">. > > Depending on the server, you may also want to set ignore_case="true". > > > best, > > > will