Ajax est un nouvelle technologie qui permet de raffraichir une partie de page web, sans raffraichir toute la page.
Pour comprendre cela, prenons un exemple simple. Vous cherchez un script qui vous permet de réaliser une auto completion sur une page web.
Ce script va agir de la façon suivante:
- étape 1 : je détecte qu'une personne à taper une ou plusieurs lettres dans un formulaire
- étape 2 : j'envoie une requete au serveur contenant ces lettres
- étape 3 : le serveur fait une recherche dans sa base de tous les items commencant par ses lettres et renvoie le résultat
- étape 4 : le résultat est traité par le client, et la page est mise à jours via un script "javascript"
Problématique
Il y a peu, j'ai réalisé l'implémentation d'un add ons ajax pour rajouter un panier raffraichi dynamiquement sur PN0.8. Il se trouve que j'ai eu beaucoup de mal à cerner la technique à utiliser. En effet, l'implémentation d'ajax nécéssite des connaissances avancées en javascript, une méthodologie particuliére doit être appliqué pour mettre en place ajax sur pn (gestion des authid etc ... ) . L'idée est donc de simplifier tout çà en proposant dans un module, une série de script ajax prêt à l'emploi ou néccessitant trés peu de programmation.
Objectifs
- simplifier au maximum l'implémentation d'ajax dans postnuke
- proposer un large panel d'applications ajax au développeur
- profiter de l'arrivée d'ajax pour donner un coup de jeunesse au CMS ( autrement , mettre postnuke sur le devant de la scéne en terme d'implémentation d'application web 2.0).
Présentation
Le projet se composera pour l'instant de trois parties majeures :
- script ajax à mettre en place sois même
Cette partie est la plus intéréssante car elle permettra à un novice de mettre en place facilement un script pour n'importe quel module avec un minimum de codes. L'idée est de ne pas lui montrer le moindre javascript.
Pour cela, on lui fourni un smartie de cette forme
- <!–[ pnautocompletion modname=mymodule ajaxfunc=itemsearch ]–>
Ensuite, on lui donne un patron de la fonction php qu'il devra réaliser pour rendre son script fonctionnel( étape 3).
typiquement à stocker dans un fichier pnajax.php dans le répertoire du module ( à voir, il pourrait être intéréssant de tout centraliser dans le module ajax toolkit en respectant une méthodologie pour que toutes les fonctions ne soient pas mélangées)
- function mymodule_ajax_itemsearch()
- {
- if (!SecurityUtil::confirmAuthKey()) {
- AjaxUtil::error(DataUtil::formatForDisplayHTML(_BADAUTHKEY));
- }
- $letters= AjaxUtil::convertFromUTF8(FormUtil::getPassedValue('letters', null, 'POST'));
- $tableauItem = array(); // remplir cette variable avec les items commençant par les lettres précédentes
- // ...
- return array("item" => $tableauItem);
- }
- script ajax prêt à l'emploi
Cette partie incluera des scripts ajax prêt à l'emploi, c'est à dire que la partie php cité précédement n'aura pas besoin d'être réalisée. Je pensais par exemple à un script permettant régénéré un code visuel, si celui ci n'est pas lisible à l'inscription. On peut aussi imaginer que des personnes ait réalisé l'implémentation php cité plus haut et qu'il souhaite la partager. (il faudra alors faire quelques modifications pour le tout reste centraliser dans le module)
- documentation développeur pour faire ses propres scripts et les soumettre à la communauté
Une partie essentiel, cette documentation expliquera comment implémenté des applications ajax dans postnuke de A à Z.
Pour ceux qui ont déja regardé un peu dans la 0.8,
création du script "script.js" (normalement stocké dans /modules/nommodule/pnjavascript)
création de pnajax.php
modification du template html
mise en place des éléments à éffacer ou à afficher
Si besoin, je pense aussi rajouté une doc, comment implémenter une application ajax simple pour bien comprendre le principe
Maintenant, la question est ? est ce que quelqu'un a déja créer ce hook et que j'arrive aprés la tempéte...
Cette idée n'est qu'un projet pour l'instant.
modifié par : mumuri, 05 Jan 2007 - 15:19




