<?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>Amicalement Web - Astuces et Bons plans dans le développement web &#187; form</title>
	<atom:link href="http://www.amicalement-web.net/tag/form/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.amicalement-web.net</link>
	<description>Astuces et bons plans d&#039;un web developpeur</description>
	<lastBuildDate>Wed, 04 Jan 2012 14:54:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Symfony, les forms et les forms embarqués</title>
		<link>http://www.amicalement-web.net/symfony-les-forms-et-les-forms-embarques/2010/03/08/</link>
		<comments>http://www.amicalement-web.net/symfony-les-forms-et-les-forms-embarques/2010/03/08/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 10:00:00 +0000</pubDate>
		<dc:creator>Vince</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[conception]]></category>
		<category><![CDATA[embed]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[poo]]></category>
		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://www.amicalement-web.net/?p=896</guid>
		<description><![CDATA[Tout d&#8217;abord admirez, dans le titre, cette traduction d&#8217;embedded forms , qui est digne d&#8217;un Nelson (ou d&#8217;un ubermuda) en pleine forme. Maintenant que c&#8217;est fait, nous allons parler ici d&#8217;un des aspects de symfony les plus intéressant, mais aussi d&#8217;un des moins bien documenté. Pas que les forms &#171;&#160;basiques&#160;&#187; ne soient pas documentés, mais [...]]]></description>
			<content:encoded><![CDATA[<p><a  href="http://www.amicalement-web.net/symfony-les-forms-et-les-forms-embarques/2010/03/08/"><img src="http://www.amicalement-web.net/wp-content/uploads/boats.jpg" alt="" title="boats" width="614" height="100" class="alignnone size-full wp-image-1368" /></a> Tout d&#8217;abord admirez, dans le titre, cette traduction d&#8217;<em>embedded forms</em> , qui est digne d&#8217;un Nelson (ou d&#8217;un ubermuda) en pleine forme. </p>
<p>Maintenant que c&#8217;est fait, nous allons parler ici d&#8217;un des aspects de symfony les plus intéressant, mais aussi d&#8217;un des moins bien documenté. Pas que les forms &laquo;&nbsp;basiques&nbsp;&raquo; ne soient pas documentés, mais dès que vous voulez faire autre chose qu&#8217;un form qui représente tel quel (ou presque) un objet de la base de données, ça se complique un peu. </p>
<p>Je vais essayer de vous faire un petit tour d&#8217;horizon de <strong>ce qu&#8217;on peut faire avec les embedded forms</strong>.<br />
<span id="more-896"></span></p>
<h3>Les forms, c&#8217;est de la POO</h3>
<p>Vous allez me dire que tout symfony est de la POO (Programmation Orientée Objet), et vous avez raison. Mais on peut utiliser symfony sans être un expert de la POO (voire sans vraiment savoir ce que c&#8217;est), en suivant Jobeet et en comprenant que executeIndex inclut le template indexSuccess.php en cas de succès. À partir de là, on est le roi du monde. </p>
<p>Enfin, du monde, moins les forms. Car les forms sont &#8211; à mon sens &#8211; la partie de symfony qui est à la fois utilisée par tous les utilisateurs de symfony, et à la fois<strong> très orientée objet </strong>(les factories sont par exemple beaucoup moins utilisées &#8230;). Du coup, ça mérite quelques explications.</p>
<h3>Tout le monde n&#8217;est pas doué en POO</h3>
<p>Certes tout le monde n&#8217;est pas doué en POO, professionnel ou pas d&#8217;ailleurs ;) À l&#8217;inverse de JAVA où les programmeurs n&#8217;ont pas vraiment le choix, la POO est récente dans PHP et certains l&#8217;ont découvert comme un cheveu sur la soupe. </p>
<p>L&#8217;impression que l&#8217;on a quand on essaye de changer le comportement des embed form c&#8217;est : mais <strong>où est-ce que je peux bien faire ce que j&#8217;ai envie de faire</strong>? doBind, doUpdateObject, saveEmbeddedForms, &#8230; les choix sont multiples. </p>
<p>Et pour cause, les forms utilisent énormément l&#8217;héritage, et disposent donc de moultes méthodes que l&#8217;on peut surcharger, sans que ce ne soit vraiment documenté autre part que dans l&#8217;API. Si on ne comprend pas les principes de base de la POO, les forms sont une vraie galère (déjà que quand on les comprend &#8230;). </p>
<p>Petit rappel sur la POO sur <a href="http://hdd34.developpez.com/cours/artpoo/ ">developpez.com</a> : Consultez au moins la partie sur l&#8217;héritage pour ceux qui sont largués.</p>
<h3>Principales étapes de gestion des formulaires</h3>
<p>Il faut quand même que vous ayez quelque chose à l&#8217;esprit, il y a pour moi deux principales étapes quand vous souhaitez traiter un formulaire qui vient d&#8217;être soumis :</p>
<ul>
<li><strong>1 ère étape</strong> : lier les valeurs qui sont récupérées dans la requête à l&#8217;objet Form (c&#8217;est à dire les recopier en s&#8217;assurant qu&#8217;elles sont valides et nettoyées)</li>
<li><strong>2 ème étape</strong> : Une fois les valeurs recopiés dans le $values du formulaire (qui n&#8217;est en fait qu&#8217;un tableau de valeurs nettoyées), réaliser un traitement dessus ou sur l&#8217;objet qui en découlera (nous verrons cela par la suite)</li>
</ul>
<p>
Il est toujours bon de <strong>se demander ce que l&#8217;on veut faire exactement</strong> : agir sur les valeurs qui seront recopiées et validées dans notre form, ou alors agir sur les valeurs nettoyées et recopiées, avant qu&#8217;elles ne soient sauvegardées en base.
</p>
<h4>Première étape</h4>
<p>Lors de la première étape de liaison/validation/recopie des valeurs de la requête dans votre formulaire (votre objet Form), vous pourrez agir sur les données<strong> avant qu&#8217;elles ne soient passées dans les validateurs</strong>, ou alors une fois qu&#8217;elles sont passées dans les validateurs.</p>
<p>Vous pourrez faire votre bourrin : enlever des parties de votre formulaire de la requête en vous basant sur certaines valeurs soumises.<br />
Par exemple enlever tout un formulaire embarqué, si certaines valeurs ne sont pas saisies (c&#8217;est l&#8217;exemple qu&#8217;on trouve pas mal sur le web d&#8217;ailleurs).<br />
Petit souci : les valeurs de la requête n&#8217;auront pas été validées/nettoyées par les validateurs, vous vous exposez donc à quelques soucis (dans le style le gars qui n&#8217;aura rempli que des espaces dans un champ texte, faudra penser à faire vous même le trim avant de vérifier la valeur &#8230;).<br />
<h4>Deuxième étape</h4>
<p>
Lors de la deuxième étape, c&#8217;est ici que vous devrez effectuer<strong> les traitements concernant votre logique métier</strong> à proprement parler. La première étape s&#8217;est occupée de vous donner accès aux valeurs dans votre formulaire (via le tableau $values), maintenant que c&#8217;est fait vous pouvez jouer avec.</p>
<p>
Vous voulez mettre à jour un objet qui dépend de celui que vous allez sauvegarder automatiquement, vous souhaitez insérer votre objet dans un nested set, etc etc &#8230; C&#8217;est dans cette étape que vous ferez ça.
</p>
<p>
Je sépare sciemment le processus en deux étapes, après vous pouvez le voir autrement. Les étapes étant chaînées, vous pouvez les mélanger et faire un peu de business logic à la fin de l&#8217;étape 1 par exemple, mais essayez de rester constant partout dans votre code, où vous ne saurez plus où aller voir quand il y a un souci.
</p>
<h3>Étude de cas</h3>
<p>On va prendre ici un cas tout simple, celui d&#8217;un formulaire auto-généré par doctrine à partir d&#8217;une table de votre modèle. </p>
<p>Appelons notre modèle PetitSuisse. On aura donc une classe nommée <code>PetitSuisseForm.class.php dans lib/form/doctrine/</code></p>
<p>On va vite fait faire le parcours d&#8217;héritage de cette classe :<br />
<strong>PetitSuisseForm => BasePetitSuisseForm => BaseFormDoctrine => sfFormDoctrine => sfFormObject => BaseForm => sfFormSymfony => sfForm (ouf)</strong>
</p>
<p>
Même si quelques unes de ces classes sont vides, on comprend que ça puisse devenir un peu dur de savoir où chercher. Alors oui <strong>l&#8217;abstraction c&#8217;est bon</strong> mangez en, mais ça engendre une complexité de lecture du code non négligeable.</p>
<p>Les classes qui sont &laquo;&nbsp;à vous&nbsp;&raquo; et donc dans lesquelles vous pourrez surcharger des méthodes sont <strong>PetitSuisseForm</strong> et <strong>BaseFormDoctrine</strong>.</p>
<p> La première vous permettra de surcharger une méthode relative au formulaire du modèle PetitSuisse, la deuxième vous permettra de surcharger de manière plus globale (chacun des forms auto-générés par doctrine héritant de BaseFormDoctrine). Je parle ici de symfony 1.3+, vous n&#8217;aurez pas toutes ces classes dans les versions précédentes.</p>
<p>On va maintenant parler <strong>des principales méthodes</strong> que vous aurez (peut être) à surcharger. Il en existe d&#8217;autres, si celles ci ne vous vont pas, lisez le code de symfony ;-)
</p>
<h3>1 ère étape (liaison)</h3>
<h4>doBind(array $values)</h4>
<p>
C&#8217;est la méthode qui va faire appel aux validateurs pour <strong>nettoyer les valeurs</strong> de la requête avant de les placer dans le tableau des valeurs. Ce sont ensuite sur ces valeurs nettoyées que nous travaillerons. Vous pouvez ici toucher aux données brut de pomme <strong>qui sortent directement du formulaire envoyé</strong>, sans traitement préalable.
</p>
<h3>2 ème étape (sauvegarde)</h3>
<h4>doSave($con = null)</h4>
<p>
C&#8217;est cette méthode qui sera appelée (par save() ) lorsque vous demandez la sauvegarde de votre formulaire. Elle se charge de mettre à jour votre objet avec les valeurs du form en appelant updateObject (qui appelera doUpdateObject que nous verrons par la suite).<br />
Si vous souhaitez <strong>changer le processus de sauvegarde</strong>, ajouter par exemple l&#8217;appel d&#8217;une vos méthodes à chaque sauvegarde du formulaire (pourquoi pas garder trace dans un fichier de toutes les sauvegardes de vos formulaires), c&#8217;est ici que vous devez le faire.
</p>
<h4>processValues($values)</h4>
<p>
C&#8217;est ici que vous pouvez<strong> toucher les valeurs qui ont été nettoyées </strong>par les validateurs, avant qu&#8217;elles ne soient passées à la méthode updateObject (que nous verrons par la suite). Je n&#8217;ai pas de traitement particulier en tête, mais l&#8217;idée est là : modifier des valeurs avant qu&#8217;elles ne soient utilisées pour mettre votre objet à jour.
</p>
<h4>doUpdateObject($values)</h4>
<p>
C&#8217;est cette méthode que vous devrez surcharger si vous voulez réaliser <strong>une opération spéciale sur votre objet avant qu&#8217;il ne soit enregistré</strong> dans la base.<br />
Par exemple, si vous voulez insérer cet objet à la fin d&#8217;un NestedSet, vous ferez ça ici. Le $values passé en paramètre est un tableau contenant les valeurs du formulaire, une fois qu&#8217;elles ont été nettoyées/vérifiées par les validateurs.
</p>
<h4>updateObjectEmbeddedForm($values)</h4>
<p>
Je pense qu&#8217;elle veut bien dire ce qu&#8217;elle veut dire. Elle va se charger d&#8217;appeler la fonction updateObject de chaque formulaire embarqué. Vous voulez agir sur le traitement des données par vos forms embarqués ? C&#8217;est par ici !
</p>
<h4>saveEmbeddedForms($con = null, $forms = null)</h4>
<p>
Allez la petite dernière pour la route : elle se charge de la sauvegarde de chacun des objets de vos forms embarqués. Fabien Potencier en donne un exemple de surcharge dans le livre <a  href="http://www.symfony-project.org/more-with-symfony/1_4/en/06-Advanced-Forms#chapter_06_sub_creating_a_custom_validator">&laquo;&nbsp;More with symfony&nbsp;&raquo;</a>
</p>
<h3>Exemple d&#8217;utilisation</h3>
<p>C&#8217;est bien beau de parler, mais un peu de concret ne fait pas de mal. </p>
<p>Vous trouverez un bon exemple pour comprendre le comportement des forms sur le blog de n1k0 dans son article <a  href="http://prendreuncafe.com/blog/post/2009/11/29/Embedding-Relations-in-Forms-with-Symfony-1.3-and-Doctrine">Embedding Relations in Forms with Symfony 1.3 and Doctrine</a>. Certes c&#8217;est en anglais, mais le code est universel ! Si vous avez des bons articles en français je suis preneur aussi. </p>
<p>Il existe maintenant la méthode embedRelation() et le plugin de Daniel Lohse <a  href="http://github.com/annismckenzie/ahDoctrineEasyEmbeddedRelationsPlugin">ahDoctrineEasyEmbeddedRelationsPlugin</a> qui font ça tout seul. Mais c&#8217;est toujours bien de comprendre ce que l&#8217;on fait ;-)</p>
<h3>Conclusion</h3>
<p>Je vous ai fait un petit tour d&#8217;horizon des principales méthodes que vous pouvez surcharger dans votre formulaire. Comme je l&#8217;ai dit plus haut, ce n&#8217;est pas une liste exhaustive, mais vous devriez avoir de quoi vous amuser. </p>
<p>J&#8217;ai juste essayé de voir tout cela d&#8217;une manière un peu plus globale et de ne pas proposer un n-ième exemple de code pour les formulaires embarqués. </p>
<p>Mais avec tout cet attirail, gardez à l&#8217;esprit que votre code d&#8217;action ne doit pas dépasser le classique <code>Bind &gt; Save</code>! Ce qui est au traitement de votre formulaire, reste dans votre formulaire! Enjoy!</p>
<p><small>Crédit photo: http://www.flickr.com/photos/fromeyetopixel/2470999873/</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.amicalement-web.net/symfony-les-forms-et-les-forms-embarques/2010/03/08/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Développement Web: les bons plans de la semaine #31</title>
		<link>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-31/2010/02/08/</link>
		<comments>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-31/2010/02/08/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 10:00:09 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Bons plans]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[label]]></category>
		<category><![CDATA[richedit]]></category>
		<category><![CDATA[textmate]]></category>

		<guid isPermaLink="false">http://www.amicalement-web.net/?p=1210</guid>
		<description><![CDATA[Allez on garde le rythme, et on repart pour une nouvelle semaine qui s&#8217;annonce d&#8217;ors et déjà très difficile vu l&#8217;heure qu&#8217;il est au moment où j&#8217;écris :D Une belle petite semaine en tout cas, avec des bons plans plutôt variés, mais je vous laisse juger: Widget jQuery ui pour la sélection multiple Encore un [...]]]></description>
			<content:encoded><![CDATA[<p><a  href="http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-31/2010/02/08/"><img src="http://www.amicalement-web.net/wp-content/uploads/palmier.jpg" alt="" title="palmier" width="614" height="100" class="alignnone size-full wp-image-1212" /></a> Allez on garde le rythme, et on repart pour une nouvelle semaine qui s&#8217;annonce d&#8217;ors et déjà très difficile vu l&#8217;heure qu&#8217;il est au moment où j&#8217;écris :D<br />
<span id="more-1210"></span><br />
Une belle petite semaine en tout cas, avec des bons plans plutôt variés, mais je vous laisse juger:</p>
<ul>
<li><a  href="http://www.erichynds.com/jquery/jquery-multiselect-plugin-with-themeroller-support/">Widget jQuery ui pour la sélection multiple</a><br />
Encore un widget bien sympa qui combine la liste déroulante et la liste de checkboxes, le tout avec un support des thèmes de jquery ui</li>
<li><a  href="http://www.athomedia.com/blog/2009/11/16/comment-integrer-onglet-accueil-page-facebook/">Intégrer un onglet à vos pages fan facebook</a><br />
On peut pas dire que je porte facebook dans mon coeur, et leur pages fans sans saveur n&#8217;aident pas vraiment. Mais voilà, il est possible de les customiser un peu plus qu&#8217;on ne le pense, encore faut-il le savoir.</li>
<li><a  href="http://css-tricks.com/one-pixel-shift-buttons/">Donner à vos lien une impression de clic</a><br />
Petit tip css très sympa qui donne vraiment l&#8217;impression que vous avez bien cliqué sur un lien.</li>
<li><a  href="http://demo.tutorialzine.com/2010/02/photo-shoot-css-jquery/demo.html">Crop version photo</a><br />
Voilà une idée et un concept pour permettre un crop à taille fixe sur une image. Le résultat est très réussi!</li>
<li><a  href="http://everzet.com/blog/new-symfony-doctrine-php-bundles-in-sfmate">Bundles textmate pour dev Symfony</a> (via <a  href="http://twitter.com/n1k0">n1k0</a>)<br />
Je me suis lancé tout récemment sur textmate, et forcément ce kit de 3 bundle (php, symfony et doctrine) tombe pile poil. C&#8217;est pas encore un IDE mais on commence à vraiment avoir quelque chose de productif</li>
<li><a  href="http://trentrichardson.com/2010/02/04/using-impromptu-for-spell-check-yui-dojo-nicedit-editors/">Ajouter des correcteurs d&#8217;orthographe à vos richedit</a><br />
Tout est dit. C&#8217;est la dernière fonction qui manque parfois à ces petits éditeurs de texte en ligne</li>
<li><a  href="http://www.plupload.com/">Une solution d&#8217;upload complète</a><br />
Voici un kit comprenant toute les possibilités d&#8217;upload avec queue, progression et tout la panoplie, disponible via flash, gears, html, &#8230;</li>
<li><a  href="http://aext.net/2010/02/css-text-indent-style-your-html-form/">Nice tip pour vos labels</a><br />
Voilà encore un petit tips CSS, qui donne un rendu assez sympa à vos labels</li>
<li><a  href="http://www.csskarma.com/blog/sliding-labels/">Des labels qui slide</a><br />
C&#8217;est la mode en ce moment, on fait tout slider, alors pourquoi pas nos labels?</li>
</ul>
<p>Allez la semaine prochaine, promis, je vous trouve du PHP ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-31/2010/02/08/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Développement Web: les bons plans de la semaine #28</title>
		<link>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-28/2009/12/21/</link>
		<comments>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-28/2009/12/21/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 10:00:15 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Bons plans]]></category>
		<category><![CDATA[caroussel]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[rte]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.amicalement-web.net/?p=1076</guid>
		<description><![CDATA[Nous y voici, la semaine de noël. Et qui dit noël dit cadeaux! Voici donc mon cadeau à moi, ma sélection de la semaine, heureux non?&#8230; Et si vous en voulez encore, il y a même un autre billet programmé pour mercredi, et même un autre, un billet invité, pour vendredi! Et cette semaine, retour [...]]]></description>
			<content:encoded><![CDATA[<p><a  href="/developpement-web-les-bons-plans-de-la-semaine-28/2009/12/21/"><img src="http://www.amicalement-web.net/wp-content/uploads/gift1.png" alt="" title="gift" width="614" height="100" class="alignnone size-full wp-image-1078" /></a> Nous y voici, la semaine de noël. Et qui dit noël dit cadeaux!<br />
Voici donc mon cadeau à moi, ma sélection de la semaine, heureux non?&#8230; Et si vous en voulez encore, il y a même un autre billet programmé pour mercredi, et même un autre, un billet invité, pour vendredi!<br />
<span id="more-1076"></span><br />
Et cette semaine, retour en force de jQuery, à croire que les devs javascript se sont réveillés tous en même temps.</p>
<ul>
<li><a  href="http://blog.servergrove.com/2009/12/14/add-a-link-checker-panel-to-the-symfony-web-debug-toolbar/">Rajouter un vérificateur de lien à la debug bar Symfony</a><br />
Petit plugin sympa et qui permet de se familiariser un peu plus avec les possibilités d&#8217;extensions de cette merveilleuse toolbar.</li>
<li><a  href="http://rikrikrik.com/jquery/autosave/">Sauvegarder automatiquement le contenu de vos forms</a> (via <a  href="http://twitter.com/clementj">@clementj</a>)<br />
Plugin jquery qui permet de sauvegarder le contenu d&#8217;un formulaire tout seul comme un grand, pour éviter de perdre son travail sur un malentendu</li>
<li><a  href="http://jarodtaylor.com/meerkat/">Faites passer l&#8217;info en gros</a><br />
Autre plugin jQuery qui permet de faire des messages à l&#8217;utilisateur de bien jolie manière à mon goût</li>
<li><a  href="http://code.google.com/p/wkrte/">Un nouveau RTE en jquery</a><br />
Tout nouveau, il s&#8217;annonce comme un projet à suivre</li>
<li><a  href="http://fredhq.com/projects/roundabout/">Un coverflow en jquery</a><br />
Ok, un peu plus rudimentaire que son homologue en flash, mais très réactif et bien suffisant la plupart du temps je pense</li>
<li><a  href="http://www.kremalicious.com/2009/12/wordpress-post-thumbnails/">WordPress 2.9 ajoute les vrais images pour les billets</a><br />
Avant, il fallait user de stratagèmes, maintenant on fait enfin ajouter une image dédiée pour un billet wordpress, tout ça de série</li>
<li><a  href="http://www.dummwiam.com/jSnow">C&#8217;est noël avec jquery</a><br />
Et oui, c&#8217;est de rigueur, faire tomber de la neige sur son blog! Bon ok je le ferai pas, mais peut-être que vous oui :p</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-28/2009/12/21/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Développement Web: les bons plans de la semaine #27</title>
		<link>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-27/2009/12/14/</link>
		<comments>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-27/2009/12/14/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 10:00:48 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Bons plans]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[inspiration]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[showcase]]></category>
		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://www.amicalement-web.net/?p=1029</guid>
		<description><![CDATA[Une sélection sans jQuery, sisi c&#8217;est possible! Comme quoi des fois on parle d&#8217;autre choses ici ;) Je me prend de plus en plus à lire des réflexions plutôt que des codes sources, donc vous allez forcément croiser plus de lectures que d&#8217;exemple de code tout fait pendant quelques temps. Je vous rassure c&#8217;est rarement [...]]]></description>
			<content:encoded><![CDATA[<p><a  href="http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-27/2009/12/14"><img src="http://www.amicalement-web.net/wp-content/uploads/snowroad.png" alt="snowroad" title="snowroad" width="614" height="100" class="alignnone size-full wp-image-1045" /></a> Une sélection sans jQuery, sisi c&#8217;est possible! Comme quoi des fois on parle d&#8217;autre choses ici ;) Je me prend de plus en plus à lire des réflexions plutôt que des codes sources, donc vous allez forcément croiser plus de lectures que d&#8217;exemple de code tout fait pendant quelques temps.<br />
Je vous rassure c&#8217;est rarement du Shakespeare, même si c&#8217;est pas en français.<br />
<span id="more-1029"></span><br />
Allez c&#8217;est parti:</p>
<ul>
<li><a  href="http://netbeans.org/downloads/index.html">Netbeans 6.8 avec support Symfony final release</a><br />
Voilà, c&#8217;est fait, la dernière version de Netbeans est enfin stable et inclut donc de série le support de Symfony. Pour l&#8217;instant, elle a l&#8217;air vraiment stable comparé aux Releases Candidates. On va voir à l&#8217;utilisation</li>
<li><a  href="http://inspirationti.me/websites/web-apps/">De bien jolis sites</a><br />
Voilà une belle sélection de sites web dédié à la promotion d&#8217;application. C&#8217;est exactement ce genre de site que j&#8217;affectionne.</li>
<li><a  href="http://17webshop.com/2009/12/10/php-filters-and-how-to-use-them/">Les filtres PHP, exemples</a><br />
J&#8217;en avais déjà parlé, j&#8217;en remet une couche avec un billet très concret avec des exemples d&#8217;utilisation</li>
<li><a  href="http://davidwalsh.name/php-cache-function">Un cache basique en PHP</a><br />
Un exemple très basique d&#8217;utilisation de cache en PHP. Ca peut toujours servir à l&#8217;occasion</li>
<li><a  href="http://css-tricks.com/poll-results-css-formatting/">Comment formatez-vous votre CSS?</a><br />
Le résultat du dernier sondage de Chris Coyier, où le résultat est assez net. C&#8217;est en multiligne que la majorité formate son CSS. Personnellement, je fais un mix des 2, et vous?</li>
<li><a  href="http://www.jankoatwarpspeed.com/post/2009/12/12/No-registration-please.aspx">Une nouvelle approche d&#8217;inscription</a><br />
Les ergonomes n&#8217;en finissent pas de trouver l&#8217;ultime moyen de rendre la vie la plus facile à leurs internautes. Voici une nouvelle approche qui permet de simplifier encore plus la création d&#8217;un compte</li>
<li><a  href="http://brenelz.com/2009/12/09/what-makes-a-great-web-developer-twitter-developers-respond/">Qu&#8217;est-ce qu&#8217;un bon développeur?</a><br />
Une question ouverte sur twitter avec une sélection des réponses les plus pertinentes. Ca résume assez bien ma vision des choses</li>
<li><a  href="http://blog.creativityden.com/create-a-funky-most-commented-section-for-your-blog/">Un bloc de billets les plus commentés un peu funky</a><br />
Voici encore une belle démonstration de créativité.</li>
<li><a  href="http://www.insideria.com/2009/12/28-rich-data-visualization-too.html">Tour d&#8217;horizon des solutions de graphique web</a><br />
Jquery, Flash, and co, je vous parle souvent de solutions pour faire des graphiques. Voici un billet qui récapitule tout ça avec des screenshot pour le côté visuel</li>
<li><a  href="http://www.funstaff.ch/2009/12/13/symfony-afficher-un-message-en-cas-de-non-disponibilite-de-la-base-de-donnees">Filtre Symfony en cas de souci avec la bdd</a><br />
Petit filtre basique mais bien pensé qui permet d&#8217;intercepter les problèmes de connexion avec sa bdd et ainsi personnaliser l&#8217;affichage (ou autre).</li>
</ul>
<p><small>Crédit photo: http://www.flickr.com/photos/wait4thelight/422656134/</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-27/2009/12/14/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Symfony: Une utilisation du type array de Doctrine</title>
		<link>http://www.amicalement-web.net/symfony-une-utilisation-du-type-array-de-doctrine/2009/11/04/</link>
		<comments>http://www.amicalement-web.net/symfony-une-utilisation-du-type-array-de-doctrine/2009/11/04/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 10:00:47 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[doctrine]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://www.amicalement-web.net/?p=925</guid>
		<description><![CDATA[Oui, les billets Symfony commençaient à me manquer. Mais difficile de trouver et le temps et la ressource pour en faire. Mais voici une petite astuce illustrée qui permet de trouver une application au type array de Doctrine tout en simplifiant une problématique. Tout ce que j&#8217;aime. Commençons par rendre à César ce qui est [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.amicalement-web.net/wp-content/uploads/check.png" alt="check" title="check" width="614" height="100" class="alignnone size-full wp-image-927" /> Oui, les billets Symfony commençaient à me manquer. Mais difficile de trouver et le temps et la ressource pour en faire. Mais voici une petite astuce illustrée qui permet de trouver une application au <a  href="http://www.doctrine-project.org/documentation/manual/1_1/en/defining-models#columns:data-types:array">type array de Doctrine</a> tout en simplifiant une problématique. Tout ce que j&#8217;aime.<br />
<span id="more-925"></span><br />
Commençons par rendre à César ce qui est à César, j&#8217;avais dans l&#8217;idée d&#8217;essayer ce type mais les exemples sur la doc ou sur le net n&#8217;était pas légion. En bon fainéant que je suis, j&#8217;ai demandé un peu d&#8217;aide et c&#8217;est mon nouveau voisin de droite, <a  href="http://twitter.com/colinux">Colin</a> qui m&#8217;a soufflé un bout de code où il l&#8217;utilise.</p>
<h3>Problématique</h3>
<p>Il me fallait stocker le résultat d&#8217;une question à choix multiple sans pour autant avoir à manipuler ensuite ses résultats autrement que par simple visualisation. Du coup, je voulais éviter d&#8217;avoir à créer une table pour stocker ces réponses et une table d&#8217;association avec ma table miroir de mon formulaire.</p>
<p>C&#8217;est là où le type array intervient. Rien de compliqué en fait, il ne fait que simplifier un traitement tout bête qui consiste à stocker un tableau php en base après sérialisation. Et qui le désérialise quand on le récupère depuis un enregistrement de la base.<br />
Une chose de moins à faire en fait et c&#8217;est bien là ce qu&#8217;on recherche nous autres développeurs, en faire le moins possible ;)</p>
<h3>La solution codée</h3>
<p>Niveau code, c&#8217;est très simple. On défini notre champ dans notre <code>schema.yml</code> comme n&#8217;importe quel autre champ</p>

<div class="wp_syntax"><div class="code"><pre class="yaml" style="font-family:monospace;">meschoix: { type: array(1000) }</pre></div></div>

<p>Qui donnera un champ text en mysql.</p>
<p>Ensuite, il suffit de modifier le formulaire obtenu pour transformer notre champ en liste de checkbox de manière très classique:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">widgetSchema</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'meschoix'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> sfWidgetFormChoice<span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
      <span style="color: #0000ff;">'choices'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
        <span style="color: #0000ff;">'0'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Choix1'</span><span style="color: #339933;">,</span>
        <span style="color: #0000ff;">'1'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Choix2'</span><span style="color: #339933;">,</span>
        <span style="color: #0000ff;">'2'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Choix3'</span><span style="color: #339933;">,</span>
        <span style="color: #0000ff;">'3'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Choix4'</span>
      <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
      <span style="color: #0000ff;">'multiple'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span>
      <span style="color: #0000ff;">'expanded'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">true</span>
    <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Et puis c&#8217;est tout! Maintenant, lors de l&#8217;enregistrement, Doctrine va sérialiser le résultat de votre sélection et le stocker en base. Et quand vous peuplerez votre formulaire avec des données en base, il le désérialisera et donnera les bonnes valeurs à notre liste de checkbox.</p>
<p>Bien sûr, ca nous oblige à ne pas changer l&#8217;ordre des questions et les rend difficilement modifiables. Mais c&#8217;est une décision qui doit être prise en connaissance de cette limitation.</p>
<p><small>Crédit photo: http://www.flickr.com/photos/40491122@N03/3738306829/</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.amicalement-web.net/symfony-une-utilisation-du-type-array-de-doctrine/2009/11/04/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Développement Web: les bons plans de la semaine #20</title>
		<link>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-20/2009/10/26/</link>
		<comments>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-20/2009/10/26/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 10:00:14 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Bons plans]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://www.amicalement-web.net/?p=906</guid>
		<description><![CDATA[Bon ok, j&#8217;ai rien écrit la semaine dernière et Vince m&#8217;a pas aidé cette fois-ci :p Je manque juste d&#8217;un peu de temps pour me réorganiser après mon changement de boulot. Donc pas d&#8217;inquiétude (oué oué, je sais je suis le seul inquiet en fait), ca va revenir tranquillement. Surtout que je prend au moins [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.amicalement-web.net/wp-content/uploads/book.png" alt="book" title="book" width="614" height="100" class="alignnone size-full wp-image-910" /> Bon ok, j&#8217;ai rien écrit la semaine dernière et Vince m&#8217;a pas aidé cette fois-ci :p Je manque juste d&#8217;un peu de temps pour me réorganiser après mon changement de boulot.</p>
<p>Donc pas d&#8217;inquiétude (oué oué, je sais je suis le seul inquiet en fait), ca va revenir tranquillement. Surtout que je prend au moins toujours autant de temps pour mes bons plans de la semaine et que cette semaine, des trucs biens sympa ont pointé leur bout de html.<br />
<span id="more-906"></span><br />
Par contre je tiens à m&#8217;excuser, j&#8217;ai pris pas mal de chose de twitter cette semaine mais j&#8217;ai oublié de noter toutes les sources! Promis, j&#8217;essaie de corriger ça au plus vite.</p>
<ul>
<li><a  href="http://designrfix.com/freebies/free-twitter-icons-website-design">Des icones twitter très fun</a><br />
Certainement la meilleur liste que j&#8217;ai pu voir, on voit que le petit oiseau inspire plus que le F de facebook.</li>
<li><a  href="http://www.html-form-guide.com/blog/web-form-widget/54/web-form-password-widget/">Un widget de mot passe javascript</a><br />
Très complet, permettant de voir le mot de passe en clair, d&#8217;en générer un et de détecter sa force. Son seul tord a mon sens c&#8217;est qu&#8217;est pas écrit en jquery :p</li>
<li><a  href="http://code.google.com/p/jquery-text-truncate/">Couper vos textes au pixel près</a><br />
J&#8217;ai toujours cru que c&#8217;était pas possible, et là encore jquery vient dire le contraire avec ce plugin qui permet de couper un texte dans sa largeur, quelle que soit la taille de la police. Alors bien sûr, ca suit pas le niveau de zoom de la police. Faut pas rêver non plus hein.
</li>
<li><a  href="http://www.jquery.wisdomplug.com/jquery-plugins/jquery-photo-gallery-plugins/jquery-tutorial-create-a-unique-gallery-by-using-z-index-and-jquery/">Tuto pour créer une galerie jquery sympa</a><br />
L&#8217;effet et le style du tuto mérite bien un petit détour. Ca peut aussi aider pas mal de gens à se mettre un peu plus à jquery.</li>
<li><a  href="http://html-ipsum.com/">HTML Ipsum</a> (via <a  href="http://twitter.com/alsacreations">@alsacreations</a>)<br />
L&#8217;idée est tout bête et pourtant. Les lorem ipsums si chers, lors des intégrations de nos chers webdesigns, n&#8217;auront jamais été aussi facile à mettre en place. Ce site permet de récupérer les éléments HTML les plus courants, directement rempli avec ce jargon latin. Encore 10min de sauvé!
</li>
<li><a  href="http://www.webdevelopmenttips.com/autoload-your-php-classes/">L&#8217;autoload PHP en détail</a><br />
Mécanisme plutôt &laquo;&nbsp;récent&nbsp;&raquo; en PHP, il méritait bien quelques lignes pour montrer l&#8217;envers du décor quand on utilise des framework qui l&#8217;intégre déjà.</li>
<li><a  href="http://www.unwrongest.com/projects/password-strength/#demo">Testez la force de mots de passe</a><br />
Voyez combien de temps un bruteforce pourrait casser votre mot de passe! Ca ferait presque peur leur truc.</li>
<li><a  href="http://www.do-as-i-say.com/notes/2009/10/twitter-explique-a-ma-maman/">Twitter explique a ma maman</a><br />
Certainement l&#8217;explication de twitter que je rejoins le plus! Et c&#8217;est presque drôle en plus :p</li>
<li><a  href="http://www.playframework.org/">Play Framework</a><br />
C&#8217;est le lien de la semaine qui a fait le tour de twitter, Un nouveau framework dans le ROR style, mais cette fois en java! Et oui, mêmes les utilisateurs de ce langage ont fini par craquer et c&#8217;est personnellement pas pour me déplaire.</li>
<li><a  href="http://kroppr.rborn.info/">Une solution de Crop d&#8217;image</a><br />
Et même plus! Elle intégre aussi le zoom et la rotation des images dans un seul outil très bien outil. </li>
<li><a  href="http://aext.net/2009/08/perfect-sign-in-dropdown-box-likes-twitter-with-jquery/">Reproduire le login de twitter</a><br />
Parce que pour moi twitter, mais aussi dailymotion, ont la meilleur solution de dropdown, il fallait en parler l&#8217;expliquer, c&#8217;est chose fait.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-20/2009/10/26/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Développement Web: les bons plans de la semaine #19</title>
		<link>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-19/2009/10/19/</link>
		<comments>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-19/2009/10/19/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 12:00:21 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Bons plans]]></category>
		<category><![CDATA[doctrine]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.amicalement-web.net/?p=899</guid>
		<description><![CDATA[Une semaine importante qui commence, avec le lancement de la V1 de chambres a part! Mais une semaine assez pauvre qui se termine, où j&#8217;ai trouvé peu de ressources vraiment de qualité. Peut-être aussi parce que j&#8217;avais le nez dans le nouveau code/job qui m&#8217;attend pour les prochains mois? Possible mais j&#8217;en quand même de [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.amicalement-web.net/wp-content/uploads/writing.png" alt="writing" title="writing" width="614" height="100" class="alignnone size-full wp-image-903" /> Une semaine importante qui commence, avec le lancement de la V1 de chambres a part! Mais une semaine assez pauvre qui se termine, où j&#8217;ai trouvé peu de ressources vraiment de qualité.<br />
Peut-être aussi parce que j&#8217;avais le nez dans le nouveau code/job qui m&#8217;attend pour les prochains mois? Possible mais j&#8217;en quand même de quoi faire un billet je vous rassure.<br />
<span id="more-899"></span></p>
<ul>
<li><a  href="http://woorkup.com/2009/10/14/jquery-lessons-how-to-interact-with-html-forms/">jQuery pour interagir avec les form</a><br />Un bon billet pour débutant pour apprivoiser jquery dans le contexte des formulaires. Ca permet de faire rapidement certaines choses élémentaires qu&#8217;on utiliser plus tard dans des scripts plus complexes.
</li>
<li><a  href="http://code.google.com/p/php-asset-packager/">Class PHP5 pour merger et compresser vos CSS</a><br />
Simple et efficace, cela reste une bonne pratique pour réduire les appels HTTP souvent pointé du doigt dans les performances d&#8217;un site.
</li>
<li><a  href="http://www.queness.com/post/798/5-techniques-to-style-buttons-using-images-and-css">Styler vos boutons</a><br />
Encore un, mais bien fait. Et quand on est développeurs, on est content d&#8217;avoir ce genre de ressource ;)
</li>
<li><a  href="http://net.tutsplus.com/articles/web-roundups/top-20-ways-for-web-developers-to-reduce-their-carbon-footprint/">20 moyens de réduire notre empreinte carbone en tant que développeur</a><br />
Et oui, c&#8217;est pas parce qu&#8217;on est bien au chaud derrière notre machine qu&#8217;on ne peut pas faire de petits gestes pour la planète.</li>
<li><a  href="http://srobbin.com/jquery-plugins/jquery-approach/">jQuery plugin d&#8217;approche</a><br />
Pour faire réagir un lien en fonction de la proximité de la souris. L&#8217;effet est très sympa!
</li>
<li><a  href="http://code.google.com/p/mysql-workbench-doctrine-plugin/">Doctrine plugin pour schema mysql workbench</a><br />
Dans le monde de la conception de modèle de données, mysql workbench commence à s&#8217;imposer grâce à un vrai look n feel. Voici donc un plugin qui permet de passer facilement d&#8217;un schema workbench à un schéma doctrine!
</li>
<li><a  href="http://javascript.developpez.com/cours/outils-vraiment-utiles-pour-developpeurs-javascript/">Outils pour développeurs javascript</a><br />
Parce que le javascript a bien évolué, voici une liste d&#8217;outils très pratiques pour tout ce qui touche de près ou de loin à ce langage.
</li>
<li><a  href="http://kovshenin.com/archives/automated-twitter-bot-in-php-remote-control/">Un robot twitter en PHP</a><br />
Pas vraiment d&#8217;utilisation précise mais le principe est sympa.
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-19/2009/10/19/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Développement Web: les bons plans de la semaine #17</title>
		<link>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-17/2009/10/05/</link>
		<comments>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-17/2009/10/05/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 12:00:08 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Bons plans]]></category>
		<category><![CDATA[Actualité]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.amicalement-web.net/?p=796</guid>
		<description><![CDATA[Une semaine, qui va marquer un nouveau virage dans mon quotidien, démarre et elle devait forcément démarrer avec de bonnes résolutions et donc le retour des bons plans le lundi! Pour le virage, vous en saurez bientôt plus ;) Cette semaine, quelques scoops, peu de jquery, du php, enfin bref, autant aller jeter un œil [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.amicalement-web.net/wp-content/uploads/many-newspaper.png" alt="many-newspaper" title="many-newspaper" width="614" height="100" class="alignnone size-full wp-image-817" /> Une semaine, qui va marquer un nouveau virage dans mon quotidien, démarre et elle devait forcément démarrer avec de bonnes résolutions et donc le retour des bons plans le lundi! Pour le virage, vous en saurez bientôt plus ;)</p>
<p>Cette semaine, quelques scoops, peu de jquery, du php, enfin bref, autant aller jeter un œil directement!<br />
<span id="more-796"></span></p>
<ul>
<li><a  href="http://www.noupe.com/spotlight/noupe-has-a-new-owner-smashing-magazine.html">Noupe &laquo;&nbsp;racheté&nbsp;&raquo; par Smashing Magazine</a><br />
Cela ne vous parle pas, mais dans le monde du webdev anglophone, c&#8217;est une grosse news. Noupe étant un des principaux agrégateurs de contenus sur le webdev et Smashing magazine, le site de référence sur le webdev.</li>
<li><a  href="http://www.geekeries.fr/articles/installer-wordpress-un-simple-fichier-installation/">Installer wordpress encore plus facilement</a><br />
Il suffisait d&#8217;y penser! Une superbe idée que de créer un petit script PHP qui une fois déposé sur votre serveur et exécuté, s&#8217;occupe de vous récupérer WordPress et vous l&#8217;installer. Il aura jamais été aussi simple d&#8217;installer WordPress.</li>
<li><a  href="http://borreli.com/blog/les-emails-avec-symfony-1-3/">Introduction au mailer Symfony 1.3</a><br />
Bientôt dans les bacs, mais déjà des articles qui pointent leur bout du nez. Voici, un premier et très bon billet qui explique le fonctionnement du <a hrf="http://www.amicalement-web.net/actualite-symfony-doctrine-et-propel/2009/09/21/">nouveau mailer de Symfony 1.3 tant attendu</a>.</li>
<li><a  href="http://www.gayadesign.com/diy/queryloader-preload-your-website-in-style/">Jquery préchargement d&#8217;une page</a><br />
Voilà, c&#8217;était quasiment le dernier effet bien connu du flash qui est désormais transplanté dans jquery: une barre de chargement pendant le chargement de votre page. La grande classe!</li>
<li><a  href="http://jquery-howto.blogspot.com/2009/02/5-easy-tips-on-how-to-improve-code.html">Jquery, Manipuler des grosses données</a><br />
C&#8217;est son principal problème, le javascript est lent, très lent, surtout quand il faut manipuler bcp de données. Voici donc 5 astuces pour au moins optimiser vos gros traitements.</li>
<li><a  href="http://briancray.com/2009/08/26/free-php-url-shortener-script/">Un script de raccourci d&#8217;url</a><br />
Avec l&#8217;avènement de twitter, les services de raccourcis d&#8217;url se sont multiplés. Mais comment procède exactement ces sites? Et bien voici un exemple de script utilisé! Vous pouvez tous le faire maintenant ;)</li>
<li><a  href="http://us2.php.net/manual/en/migration53.deprecated.php">PHP 5.3, la liste des deprecated</a><br />
Histoire de préparer l&#8217;avenir, et pour ceux qui auraient pas encore jeter un oeil, voici la liste des fonctions php depréciées en 5.3. Pensez donc à ne plus les utiliser désormais, histoire d&#8217;assurer une compatibilité ascendante!</li>
<li><a  href="/support-de-symfony-dans-netbeans-acheve/2009/10/02/">Support de Symfony dans netbeans terminé</a><br />
Vous l&#8217;avez peut-être lu Vendredi par ici, mais ca méritait bien de remettre une couche tant cette news pourrait vraiment faire pencher la balance pour Netbeans pour beaucoup de dev.</li>
<li><a  href="http://www.jankoatwarpspeed.com/post/2009/09/28/webform-wizard-jquery.aspx">Transformer un formulaire à la sauce installateur</a><br />
Petit plugin jquery sympa, qui permet de transformer vos formulaires comme les bons vieux installateurs sur PC.</li>
<li><a  href="http://yoast.com/articles/wordpress-seo/">Tout ce qu&#8217;il faut savoir sur le SEO dans WordPress</a><br />
Article très complet qui recense toutes les règles à suivre. Un must to read.</li>
<li><a  href="http://www.lafermeduweb.net/billet/phpids-une-librairie-php-pour-detecter-les-attaques-sur-votre-site-601.html">Une librairie PHP pour tester les XSS</a><br />
Dans la continuité du lien de la semaine dernière, voici une librairie PHP qui va vous permettre de tester directement ces failles sur votre site.</li>
</ul>
<p><small>Crédit photo: http://www.flickr.com/photos/brajeshwar/497609530/</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-17/2009/10/05/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Développement Web: les bons plans de la semaine #16</title>
		<link>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-16/2009/09/29/</link>
		<comments>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-16/2009/09/29/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 18:48:35 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Bons plans]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[sécurité]]></category>
		<category><![CDATA[stats]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[traduction]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.amicalement-web.net/?p=789</guid>
		<description><![CDATA[Petit décalage à nouveau, mais lundi a été un jour de reprise donc forcément un jour très (trop?) long. Mais pas d&#8217;inquiétude, voici la petite sélection qui remet les pendules à l&#8217;heure que vous retrouverez à nouveau tous les lundis! Malgré une rentrée très intense, je trouve que la qualité des billets trouvés sur mon [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.amicalement-web.net/wp-content/uploads/newspaper.png" alt="newspaper" title="newspaper" width="614" height="100" class="alignnone size-full wp-image-791" /> Petit décalage à nouveau, mais lundi a été un jour de reprise donc forcément un jour très (trop?) long. Mais pas d&#8217;inquiétude, voici la petite sélection qui remet les pendules à l&#8217;heure que vous retrouverez à nouveau tous les lundis!</p>
<p>Malgré une rentrée très intense, je trouve que la qualité des billets trouvés sur mon parcours n&#8217;est pas supérieur à ce que je pouvais trouver pendant la trêve estivale. Comme quoi, quantité ne rime vraiment pas avec qualité. Mais il y a quand même des choses très intéressantes.<br />
<span id="more-789"></span></p>
<ul>
<li><a  href="http://sundaymorning.jaysalvat.com/">Traduction d&#8217;un site via jquery</a><br />
C&#8217;est la bonne idée de la semaine. Qui en plus bénéficie d&#8217;une très bonne réalisation. Ce plugin, permet grâce à l&#8217;api de traduction Google, d&#8217;offrir à vos visiteurs, un premier niveau de traduction! A essayer et à adopter.</li>
<li><a  href="http://ha.ckers.org/xss.html">Listing des attaques XSS communes</a><br />
Histoire de vérifier que votre site est en béton armé, voici un récapitulatif de toutes les failles XSS les plus courantes.</li>
<li><a  href="http://www.statosphere.fr/website/">Un site de stats sur le monde du web</a><br />
Et moi qui adore les stats, je pouvais pas passer à côté. Et en plus c&#8217;est en français ;)
</li>
<li><a  href="http://symfonyguide.wordpress.com/2009/09/28/symfony-forms-saving-process/">Le processus de save des formulaires Symfony</a><br />
C&#8217;est le bon lien de la semaine Symfony. Vous retrouverez dans ce billet, un schéma reprenant tout le fonctionnement lors d&#8217;un save d&#8217;un formulaire.</li>
<li><a  href="http://css-tricks.com/unobtrusive-page-changer/">Une sélection par selectbox, non intrusive s&#8217;il vous plaît</a><br />
C&#8217;est certainement le gadget javascript, le plus utilisé. Permettre de valider une option d&#8217;une liste déroulante simplement en la sélectionnant (sans submit donc). Mais voilà, sans js, et bien c&#8217;est pas pratique. Voici une version, qui permet de faire la même chose, mais qui offre une alternative sans js. Et ça c&#8217;est bien.</li>
<li><a  href="http://www.distancetohere.com/2009/09/tracking-copied-text-using-javascript-and-php/">Capter les sélections de vos utilisateurs</a><br />
C&#8217;est plus par le côté technique que l&#8217;aspect pratique que j&#8217;ai été séduit. Mais on peut imaginer trouver un intérêt à la cette technique.</li>
<li><a  href="http://www.webdesignbooth.com/wordpress-web-optimization-15-tips-and-plugins-to-monitor-speed-up-and-optimize-your-wordpress-blog/">15 astuces pour optimiser votre blog wordpress</a><br />
Astuces et plugins, pour vous aidez à dompter et à optimiser votre blog.</li>
<li><a  href="http://net.tutsplus.com/videos/screencasts/quick-and-easy-filtering-with-jquery/">Filtrer vos données avec jquery</a><br />
Parce que ça reste une des meilleurs utilisations de jquery à mon sens, voici encore un tutorial sur du filtering de donnée avec jquery</li>
<li><a  href="http://jquerystyle.com/2009/09/23/bezier-curves-and-arcs-in-jquery">Mathématiques + jquery = animation</a><br />
Et oui, les maths en fait, ça sert! En l&#8217;occurence, les courbes de béziers ici permettent d&#8217;obtenir un résultat d&#8217;animation jquery bluffant</li>
<li><a  href="http://blog.jaysalvat.com/articles/realisez-un-bandeau-de-news-en-jquery-comme-sur-itele.php">Un petit bandeau de news en jquery</a><br />
C&#8217;est en français, ca valait bien le déplacement!
</li>
<li><a  href="http://papermashup.com/demos/jquery-highlighting-form-inputs/">Mettre en avant la ligne de votre champ de formulaire</a><br />
Et oui, le css permet de mettre en avant, le champ lui même, mais forcément, c&#8217;est plus visible de mettre toute la ligne! La démo parle d&#8217;elle même.
</li>
</ul>
<p><small>Crédit photo: http://www.flickr.com/photos/drb62/2054107736/</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-16/2009/09/29/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Développement Web: les bons plans de la semaine #15</title>
		<link>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-15/2009/09/17/</link>
		<comments>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-15/2009/09/17/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 12:00:27 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Bons plans]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.amicalement-web.net/?p=727</guid>
		<description><![CDATA[Une grosse semaine de boulot plus tard et quelques jours de vacances à jouer à rock band beatles me reposer un peu, me voilà de retour pour la liste de liens qui sera finalement une liste pour les 10 derniers jours et qui décalera la prochaine à lundi prochain (pas celui qui arrive quoi)! Pas [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.amicalement-web.net/wp-content/uploads/echec.png" alt="echec" title="echec" width="614" height="100" class="alignnone size-full wp-image-732" /> Une grosse semaine de boulot plus tard et quelques jours de vacances à <strike>jouer à rock band beatles</strike> me reposer un peu, me voilà de retour pour la liste de liens qui sera finalement une liste pour les 10 derniers jours et qui décalera la prochaine à lundi prochain (pas celui qui arrive quoi)!<br />
Pas d&#8217;inquiétude, j&#8217;ai d&#8217;autres surprises pour vous ce lundi et la semaine prochaine.<br />
<span id="more-727"></span><br />
Mais on verra ça plus tard, pour l&#8217;instant voici de quoi cliquer:</p>
<ul>
<li><a  href="http://css-tricks.com/number-increment-buttons/">Ajouter un +/- à un input en jquery</a><br />
C&#8217;est une fonctionnalité que j&#8217;ai longtemps cherché, en vain. Voilà qui est maintenant réparé
</li>
<li><a  href="http://blogtoolbox.fr/comment-integrer-google-custom-search-engine-a-son-blog/">Integrer google search à son blog</a><br />
Une des fonctionnalités sur laquelle je bosse pour aw. Voici un bon début avec ce tutorial</li>
<li><a  href="http://net.tutsplus.com/tutorials/javascript-ajax/10-super-helpful-traversing-functions-in-jquery/">Tutorial de manipulation du DOM en jquery</a><br />
Un tutorial un peu avancé qui permet de pointer du doigt la puissance de manipulation du DOM avec jQuery</li>
<li><a  href="http://chrisiufer.com/loupe/sample.html">Plugin jQuery pour zoom d&#8217;image</a><br />
Encore un type de plugin assez répandu, mais qui est bien fichu à mon goût</li>
<li><a  href="http://www.filamentgroup.com/lab/styling_buttons_and_toolbars_with_the_jquery_ui_css_framework/">Habillez vos design avec jquery UI</a><br />
Voici un tutorial pour apprendre comment utiliser jqueryui pour habillez uniformément et sans effort un design web</li>
<li><a  href="http://vanadiumjs.com/">Un nouveau validateur de formulaire</a><br />
Son seul défaut, c&#8217;est qu&#8217;il utilise des class css. Je suis pas très fan du principe. Mais il reste bien pensé et très complet</li>
<li><a  href="http://www.jankoatwarpspeed.com/post/2009/09/16/Animate-validation-feedback-using-jQuery.aspx">Une utilisation des animations jquery</a><br />
Parce qu&#8217;avoir de bons outils, ça ne suffit pas, il faut aussi avoir de bonnes idées. En voici une qui utilise les animations jquery pour transmettre un message de retour à l&#8217;utilisateur.
</li>
<li><a  href="http://net.tutsplus.com/tutorials/php/getting-clean-with-php/">Apprendre à utiliser les filtres en PHP</a><br />
Arrivée avec PHP 5.2, les filtres permettent de &#8230; filter vos données. Très puissants mais encore un peu obscurs, voici un tutorial qui vous donnera les bases de ces fonctions.</li>
<li><a  href="http://net.tutsplus.com/tutorials/other/a-deeper-look-at-mod_rewrite-for-apache/">Mod_rewrite avec Apache</a><br />
Oui, on en a bcp parlé il y a quelques années avec l&#8217;arrivée de la réécriture d&#8217;urls. Mais voici un tutorial bien fourni sur toutes les possibilités et toutes les options de ce mod beaucoup plus complet qu&#8217;on peut l&#8217;imaginer</li>
<li><a  href="http://woork.blogspot.com/2009/09/rediscovering-html-tables.html">Rédécouvrez les tableaux HTML</a><br />
Element HTML diabolique pour certains depuis l&#8217;ascension du CSS, il ne faut pas oublier que les tableaux ont une utilité et sont surtout très fournis en options et personnalisations. Voici de quoi vous rafraichir la mémoire.</li>
<li><a  href="http://www.catswhocode.com/blog/10-code-snippets-to-interact-with-twitter">10 snippets pour intéragir avec twitter</a><br />
Un petit listing de 10 possibilités d&#8217;interagir avec twitter via son API. Preuve que maintenant un service web à succès se doit d&#8217;avoir une API à la hauteur de l&#8217;imagination de ses utilisateurs.
</li>
</ul>
<p>C&#8217;est tout pour ces 10 jours, la faute à ma non présence sur twitter ces derniers jours. Mais je vais corriger ça ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.amicalement-web.net/developpement-web-les-bons-plans-de-la-semaine-15/2009/09/17/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
