Author: gmcdonald
Date: Sat Mar 24 04:06:43 2007
New Revision: 522005
URL: http://svn.apache.org/viewvc?view=rev&rev=522005
Log:
Update contracts howTo to reflect current way of doing things
Modified:
forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/src/documentation/content/xdocs/how/howto-dispatcher-contracts.xml
Modified:
forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/src/documentation/content/xdocs/how/howto-dispatcher-contracts.xml
URL:
http://svn.apache.org/viewvc/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/src/documentation/content/xdocs/how/howto-dispatcher-contracts.xml?view=diff&rev=522005&r1=522004&r2=522005
==============================================================================
---
forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/src/documentation/content/xdocs/how/howto-dispatcher-contracts.xml
(original)
+++
forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/src/documentation/content/xdocs/how/howto-dispatcher-contracts.xml
Sat Mar 24 04:06:43 2007
@@ -23,7 +23,7 @@
<abstract>
This How-To will explain how we wrote the contracts for the dispatcher and
hope afterwards you will be able to do the same.
</abstract>
- <last-modified-content-date date="2005-07-17"/>
+ <last-modified-content-date date="2007-03-24"/>
</header>
<audience title="Intended Audience">
@@ -108,7 +108,7 @@
<title>Explaining the blank forrest:contract</title>
<p>
To start a new forrest:contract you can copy the 'blank.ft' from
-
<code>org.apache.forrest.plugin.output.themer/resources/themes/common/html/blank.ft</code>.
+
<code>org.apache.forrest.plugin.themes.core/themes/common/html/blank.ft</code>.
</p>
<p>
The 'blank.ft' is a simple xml file with the following code which you
can use to base new contracts
@@ -118,29 +118,27 @@
<![CDATA[<forrest:contract
xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
xmlns:forrest="http://apache.org/forrest/templates/1.0"
- name="blank" type="nugget">
+ name="blank">
<!--NOTE:
When using the blank template as c'n p master just search and replace
'blank' by the {contract-name}!-->
<description>
- {contract-name} will output {contract-funtion}. This is just a blank
contract, it will output *nothing*.
+ blank will output {contract-function}. This is just a blank contract, it
will output *nothing*.
</description>
- <usage>]]><![CDATA[<![CDATA[<forrest:contract
name="blank"/>]]>]]><![CDATA[</usage>
+ <usage>]]><![CDATA[<![CDATA[<forrest:contract
name="blank"/>]]>><![CDATA[</usage>
<forrest:template xmlns:forrest="http://apache.org/forrest/templates/1.0"
- format="html" name="blank" inputFormat="xsl" body="false" head="false">
+ name="blank" inputFormat="xsl">
<xsl:stylesheet version="1.1"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <!--
- Add here the needed templates.
- Remember to set the forrest:template @attributes!
- -->
- <!--
- <xsl:template name="blank-head">
- </xsl:template>
- <xsl:template name="blank-body">
- </xsl:template>
- -->
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <!--<xsl:param name="defaultVariables" select="'test.html'"/>-->
+ <!--<xsl:variable name="skin-img-dir" select="$defaultVariables/*/[EMAIL
PROTECTED]'skin-img-dir']/@value"/>-->
+ <xsl:template match="/">
+ <forrest:content>
+ <!--<forrest:part/>-->
+ <!--<forrest:part xpath="/html/head"/>-->
+ </forrest:content>
+ </xsl:template>
</xsl:stylesheet>
</forrest:template>
</forrest:contract>]]>
@@ -155,7 +153,7 @@
<p>
The <code><![CDATA[<description/>]]></code> tag needs to be filled in
with some information
that is explaining the contract to the webdesigner. The better
explained the more efficient
- for the webdesigner to pick the right contract.
+ for the web designer to pick the right contract.
</p>
<source><![CDATA[<description>
siteinfo-last-published-howto will output the last published date of the
site with the help of jscript.
@@ -168,33 +166,21 @@
<source><![CDATA[<usage>]]><![CDATA[<![CDATA[<forrest:contract
name="siteinfo-last-published-howto"/>]]>]]><![CDATA[</usage>]]>
</source>
<p>
- <code><![CDATA[<forrest:template name="blank" body="false"
head="false">]]> </code>
- That leads to the template attribute @body="true" and
- @head="false". In html a contract can add content to the
<![CDATA[<body/>]]> or/and
- <![CDATA[<head/>]]> part of <![CDATA[<html/>]]>. These values need to
be changed when adding an actual template.
- Besides this, a xsl-template needs to indicate this in the naming. A
template that adds content to the
- html body needs to end with "<code>-body</code>"!!!
+ To put contract code into the
<code><![CDATA[<head></head>]]></code> section, this needs to be declared in
the contract as :-
+ <code><![CDATA[<forrest:part
xpath="/html/head">...</forrest:part>]]></code>
+ Simply by leaving out the xpath declaration and the code will go into
body. You can use
+ <code><![CDATA[<forrest:part
xpath="/html/head">...</forrest:part><forrest:part>...</forrest:part>]]></code>
+ if you need content in both head and body.
</p>
<warning>
- The last paragraph about <![CDATA[<forrest:template name="blank"
body="false" head="false">]]> is due to change.
- Please be aware that this part of the dispatcher is the main moving
target right now!!!
+ The last paragraph about <![CDATA[<forrest:part/>]]> has
replaced the older way of
+ <![CDATA[<forrest:template name="blank" body="false"
head="false">]]>.
+ Please be aware that this part of the dispatcher is still a moving
target and may change still.
</warning>
<note>
- It is possible to use contracts in different in/output formats.
- We are focussing for now on format="html" as output and the
inputFormat="xsl".
+ It is possible to use contracts in different input/output formats.
+ We are focusing for now on format="html" as output and the
inputFormat="xsl".
</note>
- <p>
- A <![CDATA[<forrest:template />]]> has the child
<![CDATA[<xsl:stylesheet/>]]> where we can create
- templates for the html-head and html-body. For adding content into the
body of the final
- document change @body="true" and add:
- </p>
- <source>
-<![CDATA[<xsl:stylesheet version="1.1"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <!--Add here the needed templates-->
- <xsl:template name="blank-body"/>
-</xsl:stylesheet>]]>
- </source>
</section>
<section id="newContract">
<title>Create a new contract</title>
@@ -236,14 +222,13 @@
<ul>
<li>Search and replace "blank" with "siteinfo-last-publish-howto"</li>
<li>Add description and usage of the contract</li>
- <li>Set @body="true"</li>
<li>Copy the maintenance optimized code to the contract.</li>
</ul>
<p>
As the result your code should look like this:
</p>
<source><![CDATA[<forrest:contract
xmlns:forrest="http://apache.org/forrest/templates/1.0"
- name="siteinfo-last-published-howto" type="nugget">
+ name="siteinfo-last-published-howto">
<description>
siteinfo-last-published-howto will output the last published date of the
site with the help of jscript.
</description>
@@ -251,13 +236,17 @@
<forrest:template
xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
xmlns:forrest="http://apache.org/forrest/templates/1.0"
- format="html" name="siteinfo-last-published-howto" inputFormat="xsl"
body="true" head="false">
+ name="siteinfo-last-published-howto" inputFormat="xsl">
<xsl:stylesheet version="1.1"
xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:template name="siteinfo-last-published-howto-body">
+ <xsl:template match="/">
debug string -
- <script type="text/javascript">document.write("<i18n:text >Last
Published:</i18n:text> " + document.lastModified);</script>
+ <forrest:content>
+ <forrest:part>
+ <script type="text/javascript">document.write("<i18n:text
>Last Published:</i18n:text> " + document.lastModified);</script>
+ </forrest:part>
+ </forrest:content>
</xsl:template>
</xsl:stylesheet>
</forrest:template>