Ross Gardler wrote:

Helena Edelson wrote:



Helena Edelson wrote:

Hi,
I am trying to set up a test where if the request URI is {project home}/index.html override skinning that page using site2html.xsl with another modified version of the file.

I see in main/webapps/sitemap.xmap 2 pipelines pertaining to skinning and wonder where to add the test in my project sitemap and set the modified site2html for the final skinning of the "home" page,
and how to construct the statement.

[snippet from main/webapps/sitemap.xmap]
<map:pipeline internal-only="false">
<!--pipeline that "marries" the docs in the root dir with the skin to produce html-->
     <map:match pattern="*.html">
       <map:aggregate element="site">
         <map:part src="cocoon:/skinconf.xml"/>
         <map:part src="cocoon:/build-info"/>
         <map:part src="cocoon:/tab-{0}"/>
         <map:part src="cocoon:/menu-{0}"/>
         <map:part src="cocoon:/body-{0}"/>
       </map:aggregate>
              <map:call resource="skinit">
         <map:parameter name="type" value="site2xhtml"/>
         <map:parameter name="path" value="{0}"/>
       </map:call>
</map:match> kind regards,
helena
Here is an example of the current index pipeline:
<map:match pattern="index.xml">
                <map:call resource="all-articles-aggregator-resourse"/>
<map:transform src="{project:resources.stylesheets}/index.xsl"/>
                <map:serialize type="xml"/>
            </map:match>
        </map:pipeline>

when I insert this above the inital resource, it appears you must declare "skinit" somewhere.
any idea where?

<map:call resource="skinit">
          <map:parameter name="type" value="index2xhtml"/>
          <map:parameter name="path" value="{0}"/>
        </map:call>


I'm a little confused by what you have actually done here. What you should do is:

1. create an empty project sitemap (if you seeded your site when creating it using forrest you will already have a simple example one)

2. Add your match to the map:patterns part of the sitemap

3. add your resource to the project sitemap

That is it.

You should *not* be copying anything from the core sitemap into your project sitemap. If your project sitemap does not process a request it will fall through to the core sitemap.

Ross



To rephrase the question:
What do you need to do in sitemap to override using site2xhtml.xsl for one page request only, and implement another
skin stylesheet of type <xsl:template match="site"> ?
this is my current index.xml file entry in sitemap using a custom {project.resources-dir}/stylesheets/index.xsl for custom output but the framework around it needs to be in a modified skin as well. I can add this as a howto later for projects needing a special homepage layout if desired.


           <map:match pattern="index.xml">
                <map:call resource="all-articles-aggregator-resourse"/>
<map:transform src="{project:resources.stylesheets}/index.xsl">
                   <map:parameter name="entries" value="1"/>
               </map:transform>
               <map:serialize type="xml"/>
           </map:match>