Donc doof tu nous parle d'un autre système de template.Il est vrai que celui à l'air tès interessant car la syntaxe s'intègre dans les balises HTML. Au moins le designer peut voir directement dans un navigateur un apercut sans passer par la moulinette du moteur de template (certe sans les boucles). Tandis que avec les autre systèmes le code html est disons "plus polué" par la syntaxe des templates (dite moi si je me trompe?).
Non non, pas d'erreur, on ne defigure pas ses templates avec flexy. Il permet néamoins de mettre la logique en dehors dans des cas extremes (voir meme dans des balises propriétaires un peu comme modeliXe), ce que je n'avais pas précisé. Mais en se forcant a "penser flexy" on peut quasiment tout caser dans les balises d'origine.
Donc apparemment il peut s'integer à quickform!! Merveilleux! Si tu pouvais nous montrer un exmple tout simple...
Hmmm, apres tests, je n'en suis plus vraiment convaincu ... J'ai essayé la maniere simple qui consiste a mettre dans le template une variable qui correspond au form :
1 2 3
| <div name="mondiv">
{monform:h}
</div> |
Puis coté php, le creer de cette facon :
1 2 3 4 5
| $form = new HTML_QuickForm('Form');
...
...
$form->addElement('submit', null, 'Envoyer');
$this->monform = $form->toHtml(); |
Mais bon, évidement de cette facon, on ne peut pas le travailler en wysiwyg, ce qui pert un peu de son interet. Sinon il y a bien HTML_QuickForm_Renderer_ObjectFlexy mais pour le moment j'ai pas vraiment réussit à l'utiliser correctement par manque de doc :/
En fait la principale raison pour laquelle je n'ai pas persisté avec Quickform c'est que dans flexy Il y à la classe HTML_Template_Flexy_Element qui permet déjà d'acceder directement aux elements forms du template : (exemple pour un champ input appelé 'login')
1 2
| $this->elements['login'] = new HTML_Template_Flexy_Element;
$this->elements['login']->setValue('Moi'); |
Donc on y accede aussi simplement qu'avec quickform sauf que là, il est en 'dur' dans le template. Et pour remplir plusieurs valeurs à la fois, la classe HTML_Template_Flexy_Factory est là pour s'en charger, un simple :
$this->elements = HTML_Template_Flexy_Factory::fromArray($_POST, $this->elements);
Merge le contenu de $_POST dans le formulaire du template par exemple.
Donc toutes ces joyeuseries font que quickform me parait du coup inutile (c'est d'ailleur là que flexy commence à montrer sa puissance )
En plus tu dit qu'il dispose d'un système XML!!! Comment ca marche??
Il ne dispose pas d'un "systeme XML" mais peut ecrire dedans comme on accederait au DOM grace à son parser et ses méthodes issues de la classe "elements". il dispose des memes méthodes utilisées pour le form, setValue(), setAttributes(), removeAttributes()... sur chaque balise, ce qui est tres pratique.
Et puis qu'est que XUL? Ca sert à quoi??
C'est le language balisé de Mozilla pour decrire une interface graphique riche, reposant donc sur xml. Si tu dispose de mozilla/firefox, tu peux tester ici : http://xulplanet.com/tutorials/xultu...em/allelem.xul
Ca permet donc de faire des interfaces bien plus riches qu'en html. Ca ne marche que pour moz-firefox mais microsoft travaille sur un equivalent : XAML.
Flexy, avec son acces direct aux balises est déjà pret pour ce type d'interfaces.
Rq: dommage que la doc de Flexy soit en anglais!
Oui, et de plus assez légère (J'avance doucement en testant tout du coup). Mais quand je vois sur le nombre impressionant de projets sur lesquels Alan Knowles travaille, je comprends qu'il n'ai pas trop de temps à y consacrer... Mais ca serait bien utile !
PS : pour ton "framework" ca me parait la base ideale, sinon, Alan Knowles nous prepare déjà un framework (au sens plus large) : HTML_FlexyFramework
Partager