<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Restons Zend &#187; Mootools</title>
	<atom:link href="https://blog.developpez.com/lucas-corbeaux/pcategory/javascript/mootools/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/lucas-corbeaux</link>
	<description></description>
	<lastBuildDate>Fri, 18 Jan 2013 12:02:26 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Form.Validator.List : un petit plugin Mootools pour des erreurs &#171;&#160;Zend_Form-like&#160;&#187; côté client</title>
		<link>https://blog.developpez.com/lucas-corbeaux/p9280/javascript/form_validator_list_plugin_mootools</link>
		<comments>https://blog.developpez.com/lucas-corbeaux/p9280/javascript/form_validator_list_plugin_mootools#comments</comments>
		<pubDate>Sat, 11 Sep 2010 15:31:26 +0000</pubDate>
		<dc:creator><![CDATA[Nighty]]></dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mootools]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Il y a quelques mois, je vous parlais de lier simplement les Form.Validator de Mootools avec Zend_Form. Ayant commencé à étudier le problème (en trois mois, il était temps ), j&#8217;ai en premier lieu avancé sur la problématique côté client : avoir un rendu des erreurs Mootools identique aux erreurs Zend_Form. Vu la lourdeur qu&#8217;implique la modification des Zend_Form_Decorator pour chaque élément, j&#8217;ai pris le partis de minimiser ces modifications en adaptant tant que possible [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Il y a quelques mois, je vous parlais de <a href="http://blog.developpez.com/lucas-corbeaux/p8990/php/zend-framework/zend-form-verification-client-side/">lier simplement les Form.Validator de Mootools avec Zend_Form</a>.</p>
<p>Ayant commencé à étudier le problème (en trois mois, il était temps <img src="https://blog.developpez.com/lucas-corbeaux/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> ), j&rsquo;ai en premier lieu avancé sur la problématique côté client : avoir un rendu des erreurs Mootools identique aux erreurs Zend_Form.<br />
<span id="more-4"></span><br />
Vu la lourdeur qu&rsquo;implique la modification des Zend_Form_Decorator pour chaque élément, j&rsquo;ai pris le partis de minimiser ces modifications en adaptant tant que possible le CSS pour avoir la présentation souhaitée. Cette façon de faire convient pour la majorité des formulaires, ça serait dommage de s&rsquo;en priver&#8230; Sur cette base, je souhaite donc que les validateurs Mootools produisent les même erreurs que mes Zend_Form.</p>
<p>Le fonctionnement du Form.Validator de Mootools est simple : on active la validation pour un formulaire, en affinant le comportement avec quelques options, et l&rsquo;outil détermine les contrôles à effectuer en fonction des classes sur vos champs input : pas de liaison forte entre le client et le serveur, on se contente d&rsquo;attribuer des classes.</p>
<p>Par exemple, prenons ce formulaire :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;form id=&quot;mootools-validator&quot; method=&quot;post&quot; action=&quot;&quot;&gt; <br />
&nbsp; &nbsp;&lt;dl class=&quot;zend_form&quot;&gt; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &lt;dt id=&quot;name-label&quot;&gt;&lt;label for=&quot;name&quot; class=&quot;required&quot;&gt;Name* :&lt;/label&gt;&lt;/dt&gt; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &lt;dd id=&quot;name-element&quot;&gt; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;input type=&quot;text&quot; name=&quot;name&quot; id=&quot;name&quot; value=&quot;&quot; class=&quot;minLength:3 maxLength:20&quot;&gt; <br />
&nbsp; &nbsp; &nbsp; &lt;/dd&gt; <br />
&nbsp; &nbsp; &nbsp; &lt;dd id=&quot;valid-element&quot;&gt; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;input type=&quot;submit&quot; name=&quot;valid&quot; id=&quot;valid&quot; value=&quot;Valider&quot;&gt; <br />
&nbsp; &nbsp; &nbsp; &lt;/dd&gt; <br />
&nbsp; &nbsp;&lt;/dl&gt; <br />
&lt;/form&gt;</div></div>
<p>Notre champ input a deux classes assez particulière, minLength:3 et maxLength:20, qui vont permettre de vérifier côté client si le champ contient bien un texte entre 3 et 20 caractères.</p>
<p>Pour activer la validation, c&rsquo;est simple, il suffit d&rsquo;instancier Form.Validator :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">window.addEvent('domready', function() { &nbsp;<br />
&nbsp; new Form.Validator('mootools-validator'); <br />
});</div></div>
<p>Dés à présent, les validateurs seront sollicités sur les évènements onBlur (des champs input) et onSubmit (du formulaire).</p>
<p>Le Form.Validator de Mootools ne se charge &laquo;&nbsp;que&nbsp;&raquo; d&rsquo;activer les validateurs et de stocker leur résultat : des évènements sont déclenchés, et il faut les utiliser pour gérer notamment l&rsquo;affichage des erreurs.</p>
<p>Une implémentation plus complète est disponible via Form.Validator.Inline : cette classe permet d&rsquo;afficher chaque erreur dans un bloc div pour chaque champ concerné. Pour l&rsquo;utiliser, il suffit simplement d&rsquo;instancier Form.Validator.Inline au lieu de Form.Validator :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">window.addEvent('domready', function() { &nbsp;<br />
&nbsp; new Form.Validator.Inline('mootools-validator'); <br />
});</div></div>
<p>Pour les intéressés, vous trouverez la documentation ici : </p>
<p>http://mootools.net/docs/more/Forms/Form.Validator</p>
<p>Et là :</p>
<p>http://mootools.net/docs/more/Forms/Form.Validator.Inline</p>
<p>En m&rsquo;inspirant un peu du code source du Form.Validator.Inline, j&rsquo;ai donc conçu une ébauche de Form.Validator.List. Cette classe permet d&rsquo;afficher les erreurs sous forme de liste ul, exactement comme le Zend_Form_Decorator_Errors. De cette manière, je peux alterner contrôles côté client et côté serveur sans que l&rsquo;affichage ne change pour l&rsquo;utilisateur.</p>
<p>Je vous invite à jeter un oeil du côté du code sur le dépôt github :</p>
<p>http://github.com/lucascorbeaux/Form.Validator.List</p>
<p>Lorsque les travaux seront plus avancés et que le code sera mieux testé, je le déposerais sur la forge Mootools afin de toucher un plus large public. Pour ceux qui ne connaissent pas la forge mootools, on y trouve pas mal de plugins utiles et ça se trouve ici : http://mootools.net/forge/</p>
<p><em>Pour la petite histoire, il s&rsquo;agit de ma première approche de github, et de la première fois que j&rsquo;utilise git, n&rsquo;ayant eut pour le moment que l&rsquo;occasion de travailler sur SVN. Plus encore, il s&rsquo;agit de ma première contribution, aussi modeste soit-elle&#8230; Ca fait longtemps que je voulais franchir le cap, c&rsquo;est désormais chose faite ! <img src="https://blog.developpez.com/lucas-corbeaux/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> Plus que jamais, tout commentaire, positif ou négatif, est plus que le bienvenue.</em></p>
<p><ins>Petite update pour signaler la mise en ligne du plugin sur la forge Mootools : http://mootools.net/forge/p/form_validator_list</ins></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend_Form et vérification client-side des données</title>
		<link>https://blog.developpez.com/lucas-corbeaux/p8990/php/zend-framework/zend_form_verification_client_side</link>
		<comments>https://blog.developpez.com/lucas-corbeaux/p8990/php/zend-framework/zend_form_verification_client_side#comments</comments>
		<pubDate>Sat, 12 Jun 2010 10:36:29 +0000</pubDate>
		<dc:creator><![CDATA[Nighty]]></dc:creator>
				<category><![CDATA[Mootools]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[En regardant ce screencast je me suis rappelé de précédents essais de formulaire à validation &#171;&#160;automatique&#160;&#187; côté client. L&#8217;idée était, sur le papier, très sexy : Conception d&#8217;une classe Javascript de vérification réellement réutilisable, sans retoucher le code pour chaque formulaire. Uniformisation du contrôle client et serveur : si les spécifications du formulaire change, il suffit de modifier notre Zend_Form et tout le reste suis. Seulement voilà, le projet était à petit budget, et si [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>En regardant <a href="http://www.zendcasts.com/ajaxify-your-zend_form-validation-with-jquery/2010/04/" target="_blank">ce screencast</a> je me suis rappelé de précédents essais de formulaire à validation &laquo;&nbsp;automatique&nbsp;&raquo; côté client.</p>
<p>L&rsquo;idée était, sur le papier, très sexy : </p>
<ul>
<li>Conception d&rsquo;une classe Javascript de vérification réellement réutilisable, sans retoucher le code pour chaque formulaire.</li>
<li>Uniformisation du contrôle client et serveur : si les spécifications du formulaire change, il suffit de modifier notre Zend_Form et tout le reste suis.</li>
</ul>
<p><span id="more-7"></span><br />
Seulement voilà, le projet était à petit budget, et si le volume d&rsquo;utilisateur était faiblard, le mutualisé l&rsquo;hébergeant l&rsquo;était plus encore : s&rsquo;ensuivait des freeze à chaque validation de formulaire, qui m&rsquo;a complètement freiné dans l&rsquo;utilisation sur le onblur des éléments au lieu du submit du form, ce qui faisait perdre une grosse partie de la réactivité (la validation client-side attendait sagement qu&rsquo;on valide le formulaire pour se faire, ce qui était d&rsquo;un intérêt discutable&#8230;).</p>
<p>Conclusion : c&rsquo;était un bonheur à programmer, et une horreur à utiliser.</p>
<p>Depuis les besoins ont fait que je me suis &laquo;&nbsp;contenté&nbsp;&raquo; de formulaire à l&rsquo;ancienne, avec une validation server-side only. Ayant eut beaucoup d&rsquo;application métier à développer ça n&rsquo;a pas choqué grand monde : les utilisateurs étaient contents, c&rsquo;était carré, ça fonctionnait, c&rsquo;était fluide. Mais il faut l&rsquo;avouer, ça n&rsquo;était pas très sexy.</p>
<p>Ce screencast a fait germer l&rsquo;idée de refaire un essai, plus ambitieux, plus carré, mais tout aussi évolutif et maintenable.</p>
<p>Mon objectif ? Trouver une façon simple mais robuste de lier les Zend_Form au <a href="http://mootools.net/docs/more/Forms/Form.Validator" target="_blank">Form.Validator</a> de Mootools, de façon à offrir un contrôle homogène entre server-side et client-side, sans appel Ajax superflu : on réservera les appels Ajax aux besoins dont le serveur est indispensable, notamment vérifier l&rsquo;unicité d&rsquo;une valeur dans une table.</p>
<p>Je réfléchis à un plan d&rsquo;attaque, et on se tient au courant <img src="https://blog.developpez.com/lucas-corbeaux/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
