Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-04-2008 10:30:29

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

[ZF 1.5] ZF et Ajax (prototype et scriptaculous)

Bonjour à tous,

J'aimerais savoir s'il y en a parmi vous qui utilisez AJAX avec le ZF.
Je pense que c'est le cas, donc, comment avez vous structuré vos dossiers et votre application pour rendre ça facile à développer?

Merci d'avance.

Hors ligne

 

#2 15-04-2008 14:30:30

boucheric
Nouveau membre
Date d'inscription: 15-04-2008
Messages: 1

Re: [ZF 1.5] ZF et Ajax (prototype et scriptaculous)

salut,
désolé d'avance pour les erreurs d'explications je découvre depuis peu Zend.
pour ma part j'utilise une structure modulaire avec un viewRenderer pour une utilisation normal avec url rewrite.
par contre dès que j'utilise des requêtes via javascript je passe par un plugin qui désactive le viewrenderer
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
$viewRenderer->setNoRender(true);
de ce fait je ne charge plus automatiquement les modules, actionstack et autre template et c'est manuellement que je vais pointer vers la view qui m'interresse
$this->render('ajax-message');

du coup je n'est pas de structure dédié à l'utilisation d'ajax si ce n'est pour mes view.(dans les controlleurs tu peux utiliser if ($this->_request->isXmlHttpRequest()) pour tester tes requêtes

Hors ligne

 

#3 16-04-2008 09:12:37

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [ZF 1.5] ZF et Ajax (prototype et scriptaculous)

Des helpers font ça automatiquement http://framework.zend.com/manual/fr/zen … textswitch
Et ça va même plus loin smile

Hors ligne

 

#4 16-04-2008 11:17:57

or4cle
Membre
Date d'inscription: 18-02-2008
Messages: 70

Re: [ZF 1.5] ZF et Ajax (prototype et scriptaculous)

J'ai un peu étudié la chose pour faire de l'ajax avec ZF et c'est pas mal bien intégré.
Dans mon site test d'apprentissage, j'ai fait un truc tout con pour manipuler:

Dans le controlleur, j'ajoute la propriété :

Code:

public $ajaxable = array( 
   'archive' => array('html')
);

"archive" est le nom de mon action, "html" c'est le contexte (c'est un des contexte existant dans ZF, pas besoin de le créer mais on peut en créer d'autre, ce que j'ai fait car le contexte "html" par défaut sous IE pose un problème de cache et de mise à jour)
çà dit à ZF que l'action "archive" peut etre rendu sous le contexte classique ou html.
Le contexte html indique notamment que le script de vue doit être nommé "nomaction.ajax.phtml" par défaut

Dans le code de la vue, j'ai un lien qui permet d'appeler l'action,
j'utilise prototype ce qui donne à peu près çà :

Code:

<a href="#" onClick="javascript:dispatch('archive/produit/', 'liste-news');">produit</a>

et la fonction :
function dispatch(href, id)
{
   var result = new Ajax.Updater(id, 'http://localhost/'+href+'/?format=html', { method:'get' });
};

href c'est un param contenant l'url que je veux appeler (genre: http://localhost/archive/produit/ )
J'y ajoute le param "format" = html comme çà ZF saura que je veux rendre mon action archive via le contexte "html"

Dans l'action "archive", il n'y a rien à faire de spécial.
Par défaut, sans format, c'est rendu normalement et mon action "archive" m'affiche les dernières actualités si on appelle http://localhost/archive/generale/
Et si l'utilisateur clique sur mon lien ajax sur la page, j'appelle la même action "archive" mais le param format "html" fait en sorte que le ZF va me renvoyer la vue "archive.ajax.html" et via prototype, j'intègre le résultat dans ma page.

Je sais pas si j'ai été très clair par contre :S

Dernière modification par or4cle (16-04-2008 11:28:30)

Hors ligne

 

#5 16-04-2008 16:32:23

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [ZF 1.5] ZF et Ajax (prototype et scriptaculous)

...par défaut sous IE pose un problème de cache...

Truc bête mais qui marche

Code:

'http://localhost/ten/'+href+'/?format=html&'+(new Date().getTime())

Et ouais l'url change tous le temps, donc plus de soucis (mais n'empèche que IE c'est la mort...)

Hors ligne

 

#6 16-04-2008 16:42:17

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: [ZF 1.5] ZF et Ajax (prototype et scriptaculous)

Personnelement je génère mes fichiers XML par PHP et je rajoute les headers suivant pour ne plus avoir de problème de cache avec IE:

Code:

header("Pragma: no-cache");
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date du passé
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header('Content-Type: text/xml; charset=ISO-8859-1');

En tout, ça marche sans ZF. Je n'ai pas encore essayé avec le ZF.

Pour moi l'AJAX sur ZF, ce n'est pas pour tout de suite, mais je préfère poser les questions en avance histoire de ne pas être surpris. Personnelement j'utiliserais pour faire un écran avec des zones de drag&drop et une interface avec google map (d'ailleur c'est dommage que le ZF n'est pas gère pas le google map par le Gdata). Il y aura aussi quelques gadgets comme l'auto complétion etc mais cela reste assez simple.

Dernière modification par slaughter (16-04-2008 16:44:17)

Hors ligne

 

#7 16-04-2008 19:53:11

or4cle
Membre
Date d'inscription: 18-02-2008
Messages: 70

Re: [ZF 1.5] ZF et Ajax (prototype et scriptaculous)

Comme je le disais, j'utilise un contexte personnalisé qui utilise le header que tu viens de donner et çà règle de problème sous IE, mais pour répondre à ta question j'ai voulu faire simple pour expliquer comment utiliser les fonctionnalités ajax du ZF que j'ai utudié.

Hors ligne

 

#8 17-04-2008 10:48:09

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [ZF 1.5] ZF et Ajax (prototype et scriptaculous)

J'utilise ExtJS

Hors ligne

 

#9 18-04-2008 08:38:41

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: [ZF 1.5] ZF et Ajax (prototype et scriptaculous)

La notion de "contexte" dans ZF est un peu abstrait pour moi. Avez vous un exemple?

Hors ligne

 

#10 18-04-2008 09:12:12

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [ZF 1.5] ZF et Ajax (prototype et scriptaculous)

Requete HTTP normal, requete http via javascript (ajax)
Ca te va? smile

Hors ligne

 

#11 18-04-2008 10:37:30

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: [ZF 1.5] ZF et Ajax (prototype et scriptaculous)

Oui, je vois bien qu'il doit y avoir une différence de traitement entre des requête HTTP normale et les requêtes via ajax, mais la notion de de "contexte" est-elle spécifique au ZF ? Comment créer des comportements personnalisés et différents selon les contextes ?

Je crois que je vais faire un tour sur la doc...

Hors ligne

 

#12 02-05-2008 23:37:48

lethak
Membre
Lieu: France
Date d'inscription: 05-04-2008
Messages: 168

Re: [ZF 1.5] ZF et Ajax (prototype et scriptaculous)

Avec une recherche "ajax" sur le site du framework, je trouve très peux de doc pour comprendre de A à Z comment implementer ajax, merci de vos conseils.

si j'ai bien compris c'est par la http://framework.zend.com/manual/fr/zen … textswitch

mais pas très clair smile

je recherche des tutoriaux, si vous avez wink

Dernière modification par lethak (02-05-2008 23:43:34)


IT Dev @Twitter

Hors ligne

 

#13 05-05-2008 08:18:58

or4cle
Membre
Date d'inscription: 18-02-2008
Messages: 70

Re: [ZF 1.5] ZF et Ajax (prototype et scriptaculous)

C'est pas vraiment un tuto mais ce que j'ai écrit plus haut dans ce topic est "censé" ( wink ) aidé à ce propos.
En tout cas, même si c'est pas super clair au 1er abord, c'est en lisant la doc que tu as indiqué que j'ai pigé le truc.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages