Je viens de realiser qu'en cachingURI coplet les events sont attribues
dans l'order 1,2,3 etc.. a tous les <a href.../> et cl:link trouve.
Quand je fais back avec le navigateur je vois des liens qui sont
d'autres events mais le portal ne sait pas que je suis revenu en
arriere. Ca marche en effet en ne mettant que des bookmarks (pas
d'events generes).
Je commence a me pencher sur la realisation de tout ca sans le portal,
avec l'Authentication Framework seul + peut etre le linkrewriter, il y
a-t-il des documents disponibles en dehors du sample de login et la
documentation
(http://cocoon.apache.org/2.1/developing/webapps/authentication.html) ?
Phil
Philippe Guillard wrote:
Hum, j'ai eu de mauvaises experiences avec les bookmarks complexes a
configurer et suis tres surpris de ce que tu arrives a faire en Uri
Coplet, je vais essayer.
Pour la touche back j'avais supprime l'action-counter comme indique sur
le wiki pour avoir les pageLabel, me donne un mauvais comportement sur
mon mon site, mais j'ai suivi ton conseil et ai enleve
action-counter+no-client-caching sur la branche 2.1.x, cela semble
donner un resultat meilleur. Pour les forms je reset effectivement le
cache pour obtenir un nouveau form vierge la prochaine fois.
Merci beaucoup en tous cas, j'obtenais aucune aide pour un probleme qui
me semble devrait etre celui de tous ceux qui utilisent le portal, sans
doute peu utilise au profit de l'authenication framework seul!
Phil
Philippe Gassmann wrote:
Philippe Guillard wrote:
J'ai un probleme bloquant sur le portal, sans avoir jamais reussi a
obtenir de solutions :
Historiquement j'ai utilise le "cachingURICoplet" pour pouvoir y
acceuillir mes CForms, egalement pour offrir une naviguation dans le
meme coplet, garce au fait que l'uri temporaire de ces coplets peut
etre modifiee par l'intermediaire d'events, et cachee.
Le probleme intervient avec l'utilisation de la touche "back" du
navigateur, une fois effectuee le comprtement est imprevisble, a mon
sens parce que faire un retour signifie envoyer l'event precedent au
portal et que celui-ci n'est pas ou mal pris en compte suivant la
release. (Mon mail precedent
http://www.opensubscriber.com/message/users@cocoon.apache.org/2076520.html)
Apparemment la solution retenue sur la branche svn 2.1 est celle-ci
: le portal sample ne prend tout simplement pas en compte les events
passes, c'est a dire donc que la touche "Back" du navigateur n'a
aucun effet meme visuel. Ce qui a mis avis est inacceptable pour
tout utilisateur !! Je remarque que c'est dailleurs le cas pour tout
lien y compris les menus. (L'utilisation des pageLabel m'evite ce
souci la)
Les seules solutions que je vois aujourd'hui sont les suivantes :
- Ne plus utiliser le portal-html-eventlink transformer. Mais alors
comment?
Utiliser BookmarkAction de préférence.
Attention, il ne faut pas utiliser le pipeline bookmark tel qu'il est
dans le block portal de cocoon. En effet, pour ne plus voir
apparaitre de cocoon-portal-event... dans les uri, il faut faire une
redirection interne dans le pipeline bookmark :
<map:match pattern="bookmark">
<map:act type="auth-protect">
<map:parameter name="handler" value="portalhandler"/>
<map:parameter name="application" value="portal"/>
<map:act type="portal-bookmark">
<map:parameter name="portal-name" value="portal"/>
<map:redirect-to uri="cocoon://portal/portal?{uri}"/>
</map:act>
</map:act>
</map:match>
ou quelque chose d'equivalent.
Attention, il ne faut plus non plus utiliser des astuces du type :
temporary-attributes:uri dans la définition des coplets et n'utiliser
que des URICoplet. Mais il faut poster son formulaire sur
bookmark?évènement-qui-amène-a-la-page-contenant-le-formulaire.
Le pipeline executant le rendu de la coplet devra comporter un
selector sur le type de methode utilisée pour la requête (GET ou
POST) et dans le cas d'un POST appeler la continuation :
<map:match pattern="Mon_formulaire">
<map:select type="request-method">
<map:when test="GET">
<map:call function="charger_formaulaire">
</map:when>
<map:otherwise>
<map:call
continuation="{request-param:continuation-id}"/>
</map:otherwise>
</map:select>
</map:match>
De plus, pour que le bouton back fonctionne correctement, il faut
supprimer du cocoon.xconf les aspects no-client-caching et
action-counter.
Bon courage et bonne chance.
PS : pour utiliser des CachingURICoplet contenant des formulaires
avec cette methode, il faut invalider le cache de la coplet lors du
POST du formulaire (par exemple en utilisant un évènement quelquonque
sur la coplet en question en postant sur le pipeline bookmark)
- Ne plus utiliser le cocoon portal !
C'est une autre solution...
- Utiliser l'applicationCoplet en enlevant JTidy puisque mes pages
sont XML
Merci d'avance pour toute aide !
Phil
---------------------------------------------------------------------
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]