Documentation de jstemplatebuilder ================================== Principes --------- jstemplatebuilder permet de générer du code XUL, intégré où l'on veut, à partir d'un fichier gabarit. La génération est conditionnée par les valeurs de variables javascript. Format du fichier de template ------------------------------- Le fichier est en xml. Le minimum est : Voici les balises spécifiques à jstemplatebuilder qui vont conditionner la génération. Légende : exprvar est à remplacer par un nom de variable javascript ou du code javascript var est à remplacer par un nom de variable expression doit être une expression javascript renvoyant vrai/faux string est à remplacer par du simple texte insert le contenu renvoyé par exprvar (génère un node xml de type texte) ajoute l'attribut "attr" avec la valeur renvoyée par exprvar, à la balise parente générée. ... insère les balises filles si l'expression est vérifiée à l'interieur du if, on peut aussi avoir deux balises spécifiques .. contenu à inserer si l'expression est vraie ... contenu à inserer si l'expression est fausse ... parcourt le tableau/objet javascript var1. pour chaque occurence, met sa valeur dans var2 et sa clé dans var3 (clé = indice ou nom de propriete), et génère le code inclus dans . créer/modifie une variable dans le moteur de template, avec le nom var et la valeur exprvar affiche un dump de exprvar et/ou une chaine "string" dans la console Il existe aussi un attribut jstemplate à indiquer dans les balises à générer : ajoute l'attribut "attr" avec la valeur de "exprvar" dans le tag. Si vous voulez modifier plusieurs attributs, utilisez la balise jstpl (cf plus haut) exemple de fichier template ---------------------------- Appel en javascript -------------------- Pour la génération du template, il faut faire appel à l'objet jsTemplateBuilder // instanciation var jstpl = new jsTemplateBuilder(); // creation des variables javascript utilisées dans le template jstpl.assign('message','Bonjour !'); jstpl.assign('autremessage', ['lorem','ispum','dolor']); jstpl.assign('premiertest',0); jstpl.assign('desactive','true'); jstpl.assign('prenoms', ['Laurent','Daniel','Tristan']); // on peut aussi donner directement un objet au lieu de faire des assigns: var datas = { message:'Bonjour !', autremessage: ['lorem','ispum','dolor'], premiertest:0, desactive:'true', prenoms : ['Laurent','Daniel','Tristan'], } var jstpl = new jsTemplateBuilder(datas); // ensuite on peut demander la génération des éléments : jstpl.build( letemplate , element , vider); /* letemplate = le nom du fichier contenant le nom du template (chemin relatif au fichier de la fenêtre) element = id de l'element dans lequel on insère les balises générées. peut être aussi directement un objet DOM vider = boolean indiquant si on supprime les fils de element avant insertion */ jstpl.build( 'motemplate.jstpl' , "maboite" , true); // ou var elt=document.getElementById('toto'); jstpl.build( 'motemplate.jstpl' , elt , true);