Intégration de la librairie XAJAX (admin generator) - Partie 2

Publié le par Sacri

Reprenons ou nous nous étions arrêté hier soir sur la première partie de ce tutoriel.

Il nous restait donc à créer les différentes actions :

Actions du module TOOLS
Le module tools me sert pour plusieurs choses (par exemple XAJAX + JQUERY autocompleter). Je ne vais vous proposer que le code pour XAJAX : afficher le code du fichier.
Vous le voyez, c'est assez simple. Il faut bien voir aussi que nous utilisons ici une fonction très simple d'alert javascript.
La fonction executeXajax() permet ici de charger la fonction xajax_alert() qui n'est pas dans la classe toolsActions.
J'ai choisi d'utiliser une fonction simple de XAJAX car je ne prétends pas faire un tutoriel sur l'utilisation d'XAJAX mais je l'ai utilisé dans un projet afin de remplir des champs en fonction d'un autre champ ou d'afficher une liste déroulante de ville en fonction du code postal saisi dans un champ de formulaire.

Ajout dans le layout
Nous alons rajouter une ligne dans le layout qui permettra d'enregistrer la fonction que nous souhaitons appeler (le helper prend en argument un tableau donc on peut enregistrer plusieurs fonctions en même temps) :
<?php use_helper('xajax') ?> // code ajouté hier
<?php register_functions(array("xajax_alert")) ?>
<?php init_xajax_javascript() ?>  // code ajouté hier
Nous le plaçons après avoir chargé le helper (logique :p) et avant l'initialisation du script dans le document (je ne sais pas si c'est important mais ça fonctionne ainsi :p).

Action/Template dans votre module
Voilà, il ne nous reste plus qu'à utiliser notre fonction xajax_alert() quelque part. Soit vous utilisé un module déjà créé soit vous créez un nouveau module. Je vous propose de créer un module et du coup, une nouvelle action :
public function executeAffichagexajax(sfWebRequest $request)
  {
  }
Bon, il faut bien se dire ici que cette action est vide et ne sert uniquement qu'à tester notre fonction xajax. Si vous voulez utiliser XAJAX dans une action différente, c'est tout aussi possible. Dans ce cas, il suffit juste d'ajouter dans le template correspondant (action = executeAffichagexajax / template = affichagexajaxSuccess.php) un appel à cette fonction : afficher le code du fichier module/template/affichagexajaxSuccess.php


Voilà, si tout va bien, vous devriez voir ceci sur votre page :

Ce tutoriel est assez complexe dans le sens où il faut travailler avec beaucoup de fichiers et du coup, il se peut qu'à un endroit ou un autre, cela coince.

Quoiqu'il en soit, j'espère vous avoir aidé à comprendre comment intégrer XAJAX à symfony permettant d'offrir au framework de nouvelles fonctionnalités sympathiques :)

Si vous avez des questions, des problèmes ou autres, n'hésitez pas, j'essayerai de vous répondre rapidement.

Mon prochain article devrait concerner la conférence Symfony Live qui a débute ce jeudi. Je ne garantis pas un article pour lundi prochain mais je l'espère tout de même en début de semaine.

A bon entendeur !

Publié dans Tutoriel

Commenter cet article