You are viewing a plain text version of this content. The canonical link for it is here.
Posted to docs@cocoon.apache.org by do...@cocoon.apache.org on 2004/10/25 17:28:32 UTC

[Cocoon Wiki] Updated: WoodyCopletForPortalEngine

   Date: 2004-10-25T08:28:32
   Editor: VladTanasescu <V....@open.ac.uk>
   Wiki: Cocoon Wiki
   Page: WoodyCopletForPortalEngine
   URL: http://wiki.apache.org/cocoon/WoodyCopletForPortalEngine

   Warning about complete html pages for coplets

Change Log:

------------------------------------------------------------------------------
@@ -6,17 +6,17 @@
 [[BR]]
 '''Step 1:''' The first step is to modify one existing coplet to use a woody form.
 Edit the {{{portal/layout/copletdata/portal.xml}}} file and change the value of the uri of the Portal-Demo with {{{cocoon://samples/woody/registration}}}.[[BR]]
-{{{
-...
-<coplet-data id="Portal-demo" name="standard">
-  ...
-  <value xsi:type="java:java.lang.string"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    cocoon://samples/woody/registration
-  </value>
-  ...
-</coplet>
-...
+{{{
+...
+<coplet-data id="Portal-demo" name="standard">
+  ...
+  <value xsi:type="java:java.lang.string"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    cocoon://samples/woody/registration
+  </value>
+  ...
+</coplet>
+...
 }}}
 Log into the portal as guest/guest and in the main tab instead of the introduction coplet, you will ses the woody form.[[BR]]
 Now the problem is that the !KontId isn't handling. It's always the same uri called for this coplet. The simplest trick will be to put the KontID in an hidden filed and change the woody sitemap to handle it.[[BR]]
@@ -24,26 +24,26 @@
 '''Step 2:''' Add the continuation hidden field. Edit the {{{woody/forms/registration_template.xml}}} and add after {{{wt:form-template}}} the tag
 {{{<wt:continuation-id/>}}}
 Then set the form action to an empty string, because we want use the portal page, not just the form. Your file should look like[[BR]]
-{{{<page ...
-<content>
-  <wt:form-template action="" method="POST">
-    <wt:continuation-id/>
-    <wt:widget-label id="name"/>
-...</page>
+{{{<page ...
+<content>
+  <wt:form-template action="" method="POST">
+    <wt:continuation-id/>
+    <wt:widget-label id="name"/>
+...</page>
 }}}
 [[BR]]
 '''Step 3:''' Configure the sitemap to handle the continuation. we gonna switch the pipeline based on the request method.
 Edit the woody/sitemap.xmap and replace the match pattern registration with[[BR]]
-{{{<map:match pattern="registration">
-  <map:select type="request-method">
-    <map:when test="GET">
-      <map:call function="registration"/>
-    </map:when>
-    <map:when test="POST">
-      <map:call continuation="{request-param:continuation-id}"/>
-    </map:when>
-  </map:select>
-</map:match>
+{{{<map:match pattern="registration">
+  <map:select type="request-method">
+    <map:when test="GET">
+      <map:call function="registration"/>
+    </map:when>
+    <map:when test="POST">
+      <map:call continuation="{request-param:continuation-id}"/>
+    </map:when>
+  </map:select>
+</map:match>
 }}}
 That's all. Right now you can enjoy the woody inside a Coplet.[[BR]]
 [[BR]]
@@ -65,10 +65,23 @@
 [[BR]]
 '''However''': your form must specify an {{{action}}}, i.e. page that it submits to.  The normal behaviour of a form with no {{{action}}} is that it submits back to itself, but this won't work with the Application coplet adaptor.  This is so that the coplet adaptor can change the value of {{{action}}} so it can make sure that the rest of your portal loads around your coplet when you submit your form.[[BR]]
 e.g.
-{{{
-<form method="post" action="submitpage">
- <!-- [...] -->
-</form>
+{{{
+<form method="post" action="submitpage">
+ <!-- [...] -->
+</form>
 }}}
 [[BR]]
 JonEvans
+
+[[BR]]
+'''Beware!''': your form must be a valid html page in order to be accepted by a coplet. The {{{forms-samples-styling.xsl}}} stylesheet of the distribution formats a form in this way:[[BR]]
+{{{
+<form ...>
+ <!-- [...] -->
+</form>
+}}}
+[[BR]]
+You have to modify the stylesheet in order to add the {{{html}}} and {{{head}}} and {{{body}}} tags if you want your form to appear in a coplet.
+[[BR]]
+VladTanasescu
+