cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philippe Gassmann <philippe.gassm...@anyware-tech.com>
Subject Re: Probleme bloquant sur le portal
Date Mon, 19 Sep 2005 12:01:14 GMT
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



-- 
Philippe


---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org


Mime
View raw message