llamar burgess wrote:
Ross Gardler schrieb:
For example, issue FOR-1044 [2] ("Navigation conversion is
incomplete") is a pretty important one. To start understanding what
the problem is here we need to understand the process by which
site.xml gets turned into the HTML.
Searching in sitemap.xmap shows us this:
<!-- The navigation and links file "site.xml" -->
<map:pipeline internal-only="true">
<map:match pattern="site.navigation.links.xml">
<map:select type="exists">
<map:when test="{lm:project.xml.site}">
<map:generate src="{lm:project.xml.site}"/>
</map:when>
<map:when test="{lm:site.xml}">
<map:generate src="{lm:site.xml}"/>
</map:when>
</map:select>
<map:transform type="xinclude"/>
<!-- FIXME: This is a workaround to Issue FOR-675 and
commons-jxpath-1.2 -->
<map:transform src="{lm:transform.xml.xml-namespace-stripped}"/>
<!-- end FIXME: FOR-675 -->
<map:serialize type="xml"/>
</map:match>
</map:pipeline>
re,
i guess the problem here is to determine if the site.xml of the master
or a subsite (and if - then which) should be used. The snippet above
will always return the site.xml of the master project.
Well, the above is the default match for the site.xml in the root
project for the current instance of Forrest. In the case of multiple
sites this will always be the master site.xml.
If you take a look at http://localhost:8888/index.html#Navigation (in
the whiteboard/multipleSites/master you will see:
--- start quoted text ---
Navigation is controlled by the main Forrest project. There are two
aspects to navigation site.xml and tab.xml.
site.xml
To include a site.xml file from a contained content object simply add
something like the following to your master site.xml:
<subsite1 label="First Subsite" tab="home" href="seed/">
<xi:include href="cocoon://seed/site.xml"/>
</subsite1>
<xi:include href="cocoon://seed/site.xml"/>
--- end quoted text ---
One thing i am not quite clear about is the line
<map:transform type="xinclude"/>
there are no xincludes in the site.xml.. is this just a precaution?
As David said elsewhere, it is so that projects can use xinclude in
their site.xml files. As you can see in the above quoted text that is
exactly what we are doing in the master site.xml file. The result is
that the subsite site.xml files are imported into the master site.xml.
I hope that helps you understand the processing. Of course I appreciate
you are only just beginning to climb up the learning curve of how
Forrest works. You will find that once you understand how the basic
processed work, like this one, figuring out the rest is pretty easy.
Ross