CMS Automne
http://www.automne-cms.org/forum/

Automne 3.3.2 et AJAX
http://www.automne-cms.org/forum/viewtopic.php?f=2&t=383
Page 1 sur 1

Auteur:  Chrys [ Mer Août 06, 2008 4:29 pm ]
Sujet du message:  Automne 3.3.2 et AJAX

Je viens de regarder plus en détail la version 3.3.2
Dans la démo, on trouve des rangées très bien faite mettant en oeuvre des fonctionnalités AJAX comme par exemple la docuthèque.
La rangée 500, qui contient le formulaire de recherche, envoie sa requête en javascript et enrichi un élément de la page introduit par la rangée 510 (<div id="searchresult">) avec la réponse reçue.
Tout ça c'est bien joli, mais comment ça marche ?
Suffit-il d'ajouter un argument out=xml pour qu'Automne ne renvoie que les espace client dans un document xml ? J'imagine que seul les éléments atm-xml seront traités... Isn't it ?
Que se passe-t-il si plusieurs rangées (de la page) contienne ce tag ?
Ou puis-je trouver de la doc sur le tag atm-xml ?

Chrys.

Auteur:  Sébastien [ Mer Août 06, 2008 5:22 pm ]
Sujet du message: 

Salut Chrys,

Tu as bien compris le principe. La doc sur ce tag atm-xml n'existe pas encore simplement car sa forme n'est pas encore parfaitement définitive et pourrait évoluer avec le temps.

Ceci étant, la version actuelle fonctionne de la manière suivante. Tu as vu que dans les rangées concernées, tu as les tags suivants :

Code :
<atm-xml what="{request:string:out} == 'xml'">
     ... code de la rangée ...
</atm-xml>


Cela veux dire que si la page est demandée avec (notamment) le paramètre out=xml, seul le contenu de ce bloc sera traité et renvoyé au format XML. Ce qui permet donc de ne réinterroger qu'une partie de la page lors d'une requête Ajax pour en récupérer un résultat mis à jour.

Ceci étant, tu fait une bonne remarque : que se passe t'il si plusieurs rangées emploient ce type de tag. Comment dans ce cas pouvoir "interroger" qu'un tag atm-xml dans la page plutôt qu'un autre. C'est là que l'attribut "what" du tag est utile.

Prenons l'exemple suivant :

Code :
<atm-xml what="{request:string:out} == 'xml' && {request:string:test} == 'block1'">
     ... code 1 de la rangée ...
</atm-xml>
<atm-xml what="{request:string:out} == 'xml' && {request:string:test} == 'block2'">
     ... code 2 de la rangée ...
</atm-xml>


Dans ce cas, pour recevoir des données du bloc 1, il te suffit d'ajouter out=xml&test=block1 à l'appel de la page pour ne faire appel qu'à la sortie du bloc 1. Idem pour le bloc 2.

Note que si ici l'attribut what contient {request:string:out} == 'xml', cette valeur est en fait redondante avec ce que demande le système car même sans cela, les tags atm-xml ne sont actif que si la page est appelé avec le out=xml.

On pourrait donc écrire mon exemple de cette manière :
Code :
<atm-xml what="{request:string:test} == 'block1'">
     ... code 1 de la rangée ...
</atm-xml>
<atm-xml what="{request:string:test} == 'block2'">
     ... code 2 de la rangée ...
</atm-xml>


Il serait toujours nécessaire dans ce cas de passer les paramètres out=xml&test=block1 pour obtenir la sortie du premier tag atm-xml.

Comme je l'ai dis plus haut, ce tag est encore en cour de développement donc si tu as des remarques n'hésites pas.

Seb

Page 1 sur 1 Le fuseau horaire est UTC [Heure d’été]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/