Salut Laurent,

A mon avis, ce que tu veux faire est possible. Ton pb ressemble a une erreur ds l'enchainement des pipes. J'ai une config a peu pres similaire au niveau des composantes (menu, header, page centrale etc...), et je me souviens avoir longtemps tourné en rond pour arriver a regler le pb que tu decris. Finalement l'idee est assez simple, il suffit d'avoir un matcher du genre *.showform qui fait exactement la meme chose que ton matcher *.html, et de passer a ta fct flowscript un "display-pipeline" du genre monform.showform. a mon avis, que ce soit du map:aggregate ou du cinclude pour composer la page ne change pas grd chose au pb.
Je sait pas si je suis très clair du coup je donne un petit exemple  :)

               <map:match pattern="**form-*.html">
                   <map:call function="handleForm">
<map:parameter name="function" value="form_{2}2xml"/> <map:parameter name="display-pipeline" value="form-{2}.showform"/> <map:parameter name="form-definition" value="forms/admin/{2}-definition.xml"/> <map:parameter name="documentURI" value="cocoon:/data/{2}"/> <map:parameter name="bindingURI" value="forms/admin/{2}-binding.xml"/> <map:parameter name="success-pipeline" value="{2}_success.html"/>
                   </map:call>
               </map:match>
               <map:match pattern="**.html">
                   <map:call resource="composite">
                       <map:parameter name="URI" value="{1}"/>
                       <map:parameter name="prefix" value="admin/"/>
                       <map:parameter name="locale" value="{../locale}"/>
                   </map:call>
               </map:match>
<map:match pattern="**form-*.showform"> <map:call resource="composite">
                       <map:parameter name="URI" value="{1}form-{2}"/>
                       <map:parameter name="locale" value="{locale}"/>
                       <map:parameter name="form" value="true"/>
                   </map:call>
               </map:match>

Et dans la resource composite, tu compose la page du site avec la methode qui te plait.

Marc


Laurent Perez a écrit :

Une page d'erreur générique? Et pourquoi ne pas réafficher la même page
avec l'indication de l'erreur de saisie. Cocoon Forms est fait pour ça,
tout de même :-)

oui, c'est le comportement logique des CForms, mais j'ai voulu faire
quelque chose qui à priori pose problème :

j'ai une interface d'administration plutôt basique : un header avec
quelques liens comme "logout" par ex., un menu à gauche pour
sélectionner une section à administrer, un footer, et enfin un écran,
qui affiche les CForms.

plutôt qu'utiliser un map:aggregate qui regroupe les quatre morceaux,
suivi d'une transfo xsl qui transforme tout, j'ai fait un squelette
(JXTemplate), qui utilise des <cinclude> vers des patterns internes
(comme cocoon:/menu.xml, cocoon:/header.xml, etc. mais surtout des
choses comme cocoon:/forms/ajouterUnTruc.form) pour construire la page
complète, le squelette reçoit ensuite une transformation cinclude,
puis une transfo i18n à la fin.

au 1er appel ça fonctionne, le flux issu de
cocoon:/forms/ajouterUnTruc.form est bien inclu dans le JX, j'ai un
joli formulaire :)

mais quand une erreur de validation survient, showForm rappelle le
pattern cocoon:/forms/ajouterUnTruc.form, et je me retrouve assez
logiquement avec juste un formulaire et ses indicateurs de saisie, et
pas le JX contenant les autres morceaux.

ça ressemble à une erreur de design de ma part (pas taper), je voulais
eviter de faire un pattern par CForm, qui aggrege toujours les trois
mêmes morceaux, le quatrieme changeant à chaque fois (CForm
différent), mais visiblement injecter les CForms avec un cinclude
était pas une bonne idée.

voilà, c'est un peu long, mais je le laisse pour les archives :)

laurent

---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:[EMAIL PROTECTED]
Autres commandes : mailto:[EMAIL PROTECTED]





---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:[EMAIL PROTECTED]
Autres commandes : mailto:[EMAIL PROTECTED]

Reply via email to