"hook" ajax toolkit pour Postnuke 0.8
Auteur Sujet

Post 
Introduction

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
  1. <!–[ 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)

  1.  function mymodule_ajax_itemsearch() 
  2.      if (!SecurityUtil::confirmAuthKey()) { 
  3.         AjaxUtil::error(DataUtil::formatForDisplayHTML(_BADAUTHKEY)); 
  4.    } 
  5.  
  6.      $letters= AjaxUtil::convertFromUTF8(FormUtil::getPassedValue('letters', null, 'POST')); 
  7.  
  8.         $tableauItem = array(); // remplir cette variable avec les items commençant par les lettres précédentes 
  9.          // ... 
  10.          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
Données personnelles Accueil
Post 
Citation :
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...

Non, tu n'arrives absolument pas après la tempête... mais même avant puisque la 0.8 n'est pas encore sortie.

Je développe tous les jour avec ajax pour la 0.8 et il y a pleins de choses intéressantes à faire !

Citation :
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 ... )
Je trouve, par contre, que son implémentation est plutôt simple! le script d'appel, le traitement "serveur" et le script de réponse !

La petite doc serait bien sympathique en effet pour permettre à chacun (ayant un niveau de base en php) de rajouter des fonctionnalités à son site. mais... actuellement, le script existe déjà quand on désire s'inscrire (validité et existante d'un utilisateur) et dans les fichiers de base, je ne vois pas trop ou celà pourrait être intéressant. Par contre, pour ceux qui créent des modules, ça l'est !

autre chose: les nom des fichiers et dossiers (pnajax.php pnjavascipt/) sont "figés". il faut que tes scripts utilisent ces noms de fichiers !

Citation :
- 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).

C'est clair que pn n'est pas vraiment au devant de la scène mais avec la structure qu'il a (0.8), je pense qu'en terme de stabilité et de performance, sécurité, il va dépasser certains de ses concurents !


Gilles  ><>°
Données personnelles Accueil