JaliosXperience
fr en
Path > Home > Forums > French Forum
Link

Forum JCMS francophone > Tag caddy JCMS 5.7.3

Sébastien Delamotte

Sébastien Delamotte

Post February 2, 2010 2:24 PM

Tag caddy JCMS 5.7.3

Bonjour,

J'utilise le tag caddy dans une jsp afin de pouvoir mettre dans le panier le contenu d’une collection de publication.

<jalios:caddy action='add' collection='<%= macollection %>' checkPstatus='false'/>

Lorsque le nombre de publications dans la collection est très important (plusieurs milliers exemple 3000) j’ai le message suivant lorsque je clique pour ajouter les publications :

« La fenêtre à été bloqué par un bloqueur de fenêtre intempestive. »

Je précise que je n’ai aucun bloqueur de popup d’activé et que cela fonctionne très bien lorsque macollection contient un nombre de publication moins important exemple 200 publications.

En regardant le code html généré par le tag jalios j’ai remarqué que la fonction javascript :

popupWindow('/CR/work/caddy/caddyPopup.jsp?x=0&ids=CR848A_3664305...

était appelée avec toutes les références id des objets de la collection, ce qui pour 3000 objets est très long. Somme-nous aux limites du javascripts ?

Avez-vous une idée sur ce problème ?

Sylvain DEVAUX

Sylvain DEVAUX

Post February 3, 2010 10:18 PM

Re: Tag caddy JCMS 5.7.3

Hello,

j'ai vu plusieurs fois (sans me rappeler de la valeur exacte) que les urls, donc celle de la popup caddy également ne doit pas ou ne peut pas (selon le navigateur ? doute), dépasser les 2k de donnés. Si il y a effectivement les 3000 références, la requête peut être bloquée car considérée comme "incorrecte" / trop longue ? une piste.

Bonne soirée

nicolas delrue

Post March 3, 2010 11:30 AM

Re: Tag caddy JCMS 5.7.3

Effectivement, si le nombre d'éléments sélectionnés est important, la taille de la requete devient trop grande et l'on obtient une erreur de type : 413 : request entity too large.

Ce qui est étrange, le probleme ne se posent pas lorsque le pager affiche qu'un petite quantité d'éléments. Les contenus des autres pages ne se trouvent pas dans le corps de la requête.

Malheureusement, je n'ai pas trouvé la solution pour augmenter la taille du corps de la requete sous Tomcat. Les navigateurs acceptent des requetes importantes (65000 caracteres pour firefox etc ...) mais Tomcat à une limtie fixé à 4000 (de mémoire).

Quelqu'un connait il un paramètre comme maxRequestLength ou LimitRequestLine (Directive pour apache) et l'endroit ou le fichier de conf à changer ?

bonne journée

Nicolas DELRUE

Olivier Jaquemet

Olivier Jaquemet

Post March 3, 2010 12:11 PM

Re: Tag caddy JCMS 5.7.3

Bonjour,

Effectivement le comportement que vous constatez est logique si vous passez en paramètre du caddy un très grand nombre de publications.

Si vous souhaitez ajouter un grand nombre de publication au panier, il faut éviter de passer par l'attribut collection mais privilégié l'attribut queryString qui permet de spécifier une requête sur des contenus. Cette requete est passée en paramètre puis rejoué par le caddy.

<%
QueryHandler queryHandler = new com.jalios.jcms.handler.QueryHandler();
// queryHandler.set...
String queryString = queryHandler.getQueryString();
%>
<jalios:caddy action='add' queryString='<%= queryString %>'/>

Bien entendu cela n'est possible que si vos contenus sont récupérables via une requete JCMS (types/catégorie/date/etc...) et qu'il ne s'agit pas de contenu réparti sans logique...

nicolas delrue

Post March 3, 2010 12:19 PM

Re: Tag caddy JCMS 5.7.3

Merci pour cette réponse.

Notre problème se pose pour l'administrateur du site, dans le back office lorsque l'on sélectionne dans le pager : "Afficher tous les contenus" / "Afficher 500 contenus" puis lorsque l'on clique sur le bouton "Panier" situé à gauche de la liste déroulante "Type de contenu".

Il est donc difficile de mettre en place cette solution.

Login   Home   fr en
JALIOS SA - SIREN 440 126 035