On Fri, Apr 01, 2011 at 12:52:41PM +0200, Vicent Mas wrote:
> Hi,
> 
> I'm trying to add a motd pane only to the main page of my dispatcher website. 
> Adding the following lines to my pelt-html.content.panel.xml makes the pane 
> to 
> appear in every index.html page of the website:
> 
>         <forrest:contract name="content-motd-page">
>           <forrest:property name="content-motd-page">
>             <motd>
>               <motd-option pattern="index.html">
>                 <motd-title></motd-title>
>                 <motd-page location="alt">My message here.</motd-page>
>               </motd-option>
>             </motd>
>           </forrest:property>
>         </forrest:contract>
> 
> I've changed the filename of the main page of my website following the
> answer to question 2.13 of the FAQ:
> 
> http://forrest.apache.org/docs_0_100/faq.html#defaultStartPage
> 
> but I'd rather prefer to achieve my goal giving a proper path to the pattern 
> option of the motd contract. The problem is that the index.xml of the main 
> page is directly under the xdocs folder and I don't know how to be more 
> specific and tell forrest that I don't want the motd to be applied to the 
> index 
> pages of subdirectories under  xdocs. Could someone tell me how to do it, 
> please?

The motd contract uses the XSLT contains() function to determine
whether the motd is displayed for a given path. It does not appear
that the contains() function is intelligent enough to do what you
want. Also, a brief search shows a general lack of support for regular
expressions in XSLT 1.0.

Perhaps the motd could be injected via the Cocoon pipeline, where
regular expressions are supported.

-Brian