<?xml 
version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://arts-numeriques.codedrops.net/spip.php?page=backend.xslt" ?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>Arts num&#233;riques</title>
	<link>https://arts-numeriques.codedrops.net/</link>
	<description>artsnumeriques est le support des cours de St&#233;phane Noel, professeur &#224; l'&#233;cole de recherche graphique.</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="http://arts-numeriques.codedrops.net/spip.php?id_mot=12&amp;page=backend" rel="self" type="application/rss+xml" />




<item xml:lang="fr">
		<title>Faire scroller la page doucement avec jQuery</title>
		<link>http://arts-numeriques.codedrops.net/Faire-scroller-la-page-doucement-avec-jQuery</link>
		<guid isPermaLink="true">http://arts-numeriques.codedrops.net/Faire-scroller-la-page-doucement-avec-jQuery</guid>
		<dc:date>2012-12-02T22:56:35Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>St&#233;phane Noel</dc:creator>


		<dc:subject>Javascript</dc:subject>

		<description>
&lt;p&gt;Jquery permet de se d&#195;&#169;placer dans une page avec douceur. Il est possible de le faire avec juste la librairie. &lt;br class='autobr' /&gt; La m&#195;&#169;thode standard Comme toujours, pour que le javascript fonctionne, il faut un code html adapt&#195;&#169; au script et bien form&#195;&#169; l'inclusion de la librairie jQuery le code jQuery d'initilalisation &lt;br class='autobr' /&gt;
Un code html adapt&#195;&#169; Dans notre cas, le code comporte une partie pour la navigation et des &#195;&#169;l&#195;&#169;ments dans la page vers lesquels scroller. &lt;br class='autobr' /&gt;
La navigation c&#195;&#180;t&#195;&#169; html sera une liste (&#8230;)&lt;/p&gt;


-
&lt;a href="http://arts-numeriques.codedrops.net/-JQuery-79-" rel="directory"&gt;JQuery&lt;/a&gt;

/ 
&lt;a href="http://arts-numeriques.codedrops.net/+-Javascript-+" rel="tag"&gt;Javascript&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Jquery permet de se d&#195;&#169;placer dans une page avec douceur. Il est possible de le faire avec juste la librairie.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;La m&#195;&#169;thode standard&lt;/h2&gt;
&lt;p&gt;Comme toujours, pour que le javascript fonctionne, il faut
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; un code html adapt&#195;&#169; au script et bien form&#195;&#169;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; l'inclusion de la librairie jQuery
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; le code jQuery d'initilalisation&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Un code html adapt&#195;&#169;&lt;/h2&gt;
&lt;p&gt;Dans notre cas, le code comporte une partie pour la navigation et des &#195;&#169;l&#195;&#169;ments dans la page vers lesquels scroller.&lt;/p&gt;
&lt;p&gt;La navigation c&#195;&#180;t&#195;&#169; html sera une liste d'ancres. En html, une ancre est un lien interne &#195; une page, pointant vers un &#195;&#169;l&#195;&#169;ment poss&#195;&#169;dant l'attribut &#034;name&#034; . Ils s'&#195;&#169;crivent comme suit :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;a href=&#034;#lien1&#034;&gt;Premier lien&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;m&#195;&#168;nera vers&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;div id=&#034;lien1&#034;&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Nous avons donc ce code qui a l'avantage d'&#195;&#170;tre d&#195;&#169;gradable. En absence de javascript, les liens fonctionneront, mais en sautant.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; &lt;div id=&#034;top&#034;&gt;&lt;/div&gt; &lt;div id=&#034;nav&#034;&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#034;#partie1&#034;&gt;#1&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#034;#partie2&#034;&gt;#2&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#034;#partie3&#034;&gt;#3&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; &lt;section id=&#034;content&#034;&gt; &lt;div id=&#034;partie1&#034;&gt; &lt;h2&gt;Un intertitre 1 &lt;a href=&#034;#top&#034;&gt;Top&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Une banque est une entreprise &lt;/p&gt; &lt;/div&gt; &lt;div id=&#034;partie2&#034;&gt; &lt;h2&gt;Un intertitre 2 &lt;a href=&#034;#top&#034;&gt;Top&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Le concept de dette est fortement associ&#195;&#169; au m&#195;&#169;canisme de cr&#195;&#169;ation mon&#195;&#169;taire dans le syst&#195;&#168;me financier moderne. &lt;/p&gt; &lt;/div&gt; &lt;div id=&#034;partie3&#034;&gt; &lt;h2&gt;Un intertitre 3 &lt;a href=&#034;#top&#034;&gt;Top&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Une banque est une entreprise qui fait le commerce de l'argent. .&lt;/p&gt; &lt;/div&gt; &lt;/section&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Inclure jQuery&lt;/h2&gt;
&lt;p&gt;Dans le header, on place un appel vers les deux fichiers javascript : la librairie et le plugin :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; JQuery sur &lt;a href=&#034;http://jquery.com/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;le site m&#195;&#168;re&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Nous les pla&#195;&#167;ons dans un dossier &#195; c&#195;&#180;t&#195;&#169; de la page html.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;script type=&#034;text/javascript&#034; src=&#034;jquery.js&#034;&gt;&lt;/script&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Activer le tout&lt;/h2&gt;
&lt;p&gt;En dessous des deux appels de javascript, on placera le code suivant :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;script type=&#034;text/javascript&#034;&gt; $(document).ready(function() { $('nav a').on('click', function() { // Au clic sur un &#195;&#169;l&#195;&#169;ment var page = $(this).attr('href'); // Page cible var speed = 750; // Dur&#195;&#169;e de l'animation (en ms) $('html, body').animate( { scrollTop: $(page).offset().top }, speed ); // Go return false; }); }); &lt;/script&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour un scroll horizontal, on modifiera l'animation&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;$('html, body').animate( { scrollLeft: $(page).offset().left }, speed );&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Voir la documentation sur le site de jQuery pour &lt;a href=&#034;https://api.jquery.com/scrolltop/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;scrollTop&lt;/a&gt; et &lt;a href=&#034;https://api.jquery.com/scrollLeft/#scrollLeft&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;scrollLeft&lt;/a&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Personnaliser plus&lt;/h2&gt;
&lt;p&gt;Ce script poss&#195;&#168;de de nombreuses variantes que l'on peut trouver en cherchant sur le net, et plusieurs plugins pour jquery ont &#195;&#169;t&#195;&#169; cr&#195;&#169;&#195;&#169;s, pour param&#195;&#169;trer facilement la vitesse et la fluidit&#195;&#169; du scroll. Chercher avec les mots cl&#195;&#169;s &#034;jquery scroll plugin&#034; par exemple.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Int&#195;&#169;grer colorbox dans wordpress</title>
		<link>http://arts-numeriques.codedrops.net/Tip-integrer-colorbox-dans</link>
		<guid isPermaLink="true">http://arts-numeriques.codedrops.net/Tip-integrer-colorbox-dans</guid>
		<dc:date>2010-04-20T10:58:07Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>St&#233;phane Noel</dc:creator>


		<dc:subject>Javascript</dc:subject>
		<dc:subject>Wordpress</dc:subject>

		<description>
&lt;p&gt;Ajouter un syst&#195;&#168;me de visualisation de galerie dans son th&#195;&#168;me est assez simple mais il faut &#195;&#170;tre rigoureux. Une petite marche &#195; suivre est donc utile ici. &lt;br class='autobr' /&gt; Didacticiel ou plug and play ? Le but de cet article est de parcourir un cas pratique de mise en place d'un plugin javascript manuellement. Pour ceux qui veulent juste employer colorBox dans wordpress, il existe une solution toute faite, un plugin Wordpress beaucoup plus simple et rapide. T&#195;&#169;l&#195;&#169;charger le plugin &#034;jQuery Colorbox&#034; sur (&#8230;)&lt;/p&gt;


-
&lt;a href="http://arts-numeriques.codedrops.net/-Tips-hints-" rel="directory"&gt;Tips &amp; hints&lt;/a&gt;

/ 
&lt;a href="http://arts-numeriques.codedrops.net/+-Javascript-+" rel="tag"&gt;Javascript&lt;/a&gt;, 
&lt;a href="http://arts-numeriques.codedrops.net/+-Wordpress-+" rel="tag"&gt;Wordpress&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L150xH69/arton213-4fd02.jpg?1726857176' class='spip_logo spip_logo_right' width='150' height='69' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Ajouter un syst&#195;&#168;me de visualisation de galerie dans son th&#195;&#168;me est assez simple mais il faut &#195;&#170;tre rigoureux. Une petite marche &#195; suivre est donc utile ici.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Didacticiel ou plug and play ?&lt;/h2&gt;
&lt;p&gt;Le but de cet article est de parcourir un cas pratique de mise en place d'un plugin javascript manuellement. Pour ceux qui veulent juste employer colorBox dans wordpress, il existe une solution toute faite, un plugin Wordpress beaucoup plus simple et rapide.&lt;br class='autobr' /&gt;
&lt;a href=&#034;http://wordpress.org/extend/plugins/jquery-colorbox/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;T&#195;&#169;l&#195;&#169;charger le plugin &#034;jQuery Colorbox&#034; sur le site officiel de Wordpress&lt;/a&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Colorbox ?&lt;/h2&gt;
&lt;p&gt;Colorbox est un syst&#195;&#168;me de type &#034;lightbox&#034;. En cliquant sur la vignette dans une page web, on ouvre l'image en grand avec un commentaire et un fond partiellement obscurci. Un grand classique du web 2.0.&lt;br class='manualbr' /&gt;Comme les autres syst&#195;&#168;mes de galerie, colorbox permet de faire entrer dans ces cadres d'autres types de contenu, notamment grace &#195; ajax.&lt;/p&gt;
&lt;p&gt;&lt;span class='spip_document_281 spip_documents spip_documents_center'&gt;&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L500xH230/colorbox-illu1-1da0e.jpg?1758113047' width='500' height='230' alt=&#034;&#034; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Colorbox n'est pas le seul syst&#195;&#168;me existant. Je le prend ici pour ce didacticiel car il est r&#195;&#169;cent, bien con&#195;&#167;u et s'appuie sur jQuery, une des biblioth&#195;&#168;ques javascript (ou framework) les plus utilis&#195;&#169;es.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Sommaire&lt;/h2&gt;
&lt;p&gt;Pour placer colorbox dans son theme, on devra
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; T&#195;&#169;l&#195;&#169;charger le plugin &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Placer la css, les images et la feuille de script de colorbox dans le theme
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; T&#195;&#169;l&#195;&#169;charger &#195;&#169;ventuellement jQuery et le placer dans le th&#195;&#168;me
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; cr&#195;&#169;er sa propre feuille javascript (pour activer le plugin) dans le dossier de th&#195;&#168;me encore
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; placer les codes d'inclusion javascript et css dans le header du th&#195;&#168;me&lt;/p&gt;
&lt;p&gt;et enfin, dans l'administration de wordpress, incorporer des images (vignettes avec lien vers l'image grand format)&lt;/p&gt;
&lt;p&gt;Ooouf. Le tout devrait prendre moins d'un quart d'heure si on fait &#195;&#167;a dans l'ordre.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;1. T&#195;&#169;l&#195;&#169;charger&lt;/h2&gt;
&lt;p&gt;On t&#195;&#169;l&#195;&#169;charge &lt;a href=&#034;http://colorpowered.com/colorbox/colorbox.zip&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;le module de colorbox ici&lt;/a&gt;&lt;br class='manualbr' /&gt;Si vous n'avez pas encore utilis&#195;&#169; jQuery dans votre th&#195;&#168;me, &lt;a href=&#034;http://jquery.com/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;t&#195;&#169;l&#195;&#169;chargez le &#195; partir du site de jQuery&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Petite remarque de compatibilit&#195;&#169; : alors que j'&#195;&#169;cris ce didacticiel (20 avril 2010) les versions de colorbox et jquery sont parfaitement compatible. Il se peut que ce ne soit plus le cas dans quelques ann&#195;&#169;es, pour des tas de raisons. V&#195;&#169;rifiez donc cette compatibilit&#195;&#169;, &#195;&#167;a &#195;&#169;vite des pleurs de rage)&lt;/i&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;2. Installer les fichiers dans le th&#195;&#168;me&lt;/h2&gt;
&lt;p&gt;Le plugin colorbox est livr&#195;&#169; avec de la documentation et des d&#195;&#169;mos, ce qui est bien pratique mais un peu confusant pour le n&#195;&#169;ophyte. Nous allons prendre dans le dossier juste ce qui nous int&#195;&#169;resse :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; La version &#034;minifi&#195;&#169;e&#034; (compress&#195;&#169;e au maximum) du fichier javascript, qui se trouve dans le dossier &#034;colorbox&#034; et s'appelle jquery.colorbox-min.js.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; La css et le dossier d'images qui se trouve dans le dossier de l'exemple 1.&lt;/p&gt;
&lt;p&gt;&lt;span class='spip_document_280 spip_documents spip_documents_center'&gt;&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L480xH276/colorbox-illu2-8c7bd.jpg?1726920012' width='480' height='276' alt=&#034;&#034; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Nous placerons ces fichiers et dossiers dans le th&#195;&#168;me, dans un dossier &#034;colorbox&#034; pour ne pas m&#195;&#169;langer ces fichiers au reste de votre th&#195;&#168;me.&lt;br class='manualbr' /&gt;Si vous n'avez pas encore jQuery (absolument n&#195;&#169;cessaire au bon fonctionnement de colobox), placez le au premier niveau de votre th&#195;&#168;me.&lt;/p&gt;
&lt;p&gt;&lt;span class='spip_document_283 spip_documents spip_documents_center'&gt;&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L480xH267/colorbox_illu3-2-8736c.jpg?1726920012' width='480' height='267' alt=&#034;&#034; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;3. Charger Jquery et colorbox dans le code du header&lt;/h2&gt;
&lt;p&gt;Il faut maintenant charger ces fichiers dans le html, pour pouvoir l'utiliser partout o&#195;&#185; c'est n&#195;&#169;cessaire. Pour cela, on ouvrira le fichier &#034;header.php&#034; (si votre th&#195;&#168;me l'utilise, ce qui est probablement le cas) et on placer les codes suivant &#195; l'int&#195;&#169;rieur de la balise &#034;head&#034; :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;script type=&#034;text/javascript&#034; src=&#034;&lt;?php bloginfo('template_directory'); ?&gt;/jquery.js&#034;&gt;&lt;/script&gt; &lt;script type=&#034;text/javascript&#034; src=&#034;&lt;?php bloginfo('template_directory'); ?&gt;/colorbox/jquery.colorbox-min.js&#034;&gt;&lt;/script&gt; &lt;script type=&#034;text/javascript&#034; src=&#034;&lt;?php bloginfo('template_directory'); ?&gt;/monscript.js&#034;&gt;&lt;/script&gt; &lt;link rel=&#034;stylesheet&#034; type=&#034;text/css&#034; href=&#034;&lt;?php bloginfo('template_directory'); ?&gt;/colorbox/colorbox.css&#034; /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&#195;&#8225;a devrait donner quelque chose comme &#195;&#167;a :&lt;/p&gt;
&lt;p&gt;&lt;span class='spip_document_284 spip_documents spip_documents_center'&gt;&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L500xH125/colorbox_illu4-dba3e.jpg?1758113047' width='500' height='125' alt=&#034;&#034; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;4. Activer ColorBox et param&#195;&#169;trer son comportement&lt;/h2&gt;
&lt;p&gt;Il nous reste a cr&#195;&#169;er un fichier &#034;monscript.js&#034; que l'on placera au premier niveau du th&#195;&#168;me (on a d&#195;&#169;clar&#195;&#169; dans le head son existance ici plus haut). On y placera le code suivant :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;$(document).ready(function(){
$(&#034;a[href$='.jpg'],a[href$='.png'],a[href$='.gif']&#034;).colorbox({transition:&#034;none&#034;, maxWidth:&#034;80%&#034;, maxHeight:&#034;80%&#034;});
});&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ce code dit : &#034;lorsque la page est charg&#195;&#169;e, active colorBox sur tous les liens qui m&#195;&#168;nent vers une image, que tu affiches dans une fen&#195;&#170;tre de maximum 80% de la hauteur et largeur de la fen&#195;&#170;tre du navigateur&#034;. Ce code va donc affecter automatiquement tous les liens vers des images, qu'ils soient un texte ou une image.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;5. Ins&#195;&#169;rer des images dans les articles&lt;/h2&gt;
&lt;p&gt;La machinerie est en place. Il faut maintenant l'activer en pla&#195;&#167;ant des images dans vos articles. Attention a bien v&#195;&#169;rifier que le champ &#034;cible du lien&#034; est rempli avec l'adresse web du fichier, pour que colorBox puisse s'appliquer. &lt;br class='manualbr' /&gt;Attention : Si vous voulez placer une l&#195;&#169;gende pour l'image, il faut placer une balise title sur le lien (la balise a) et non sur l'image. Editer dans ce cas le code html du texte de l'article.&lt;/p&gt;
&lt;p&gt;&lt;span class='spip_document_285 spip_documents spip_documents_center'&gt;&lt;img src='http://arts-numeriques.codedrops.net/local/cache-vignettes/L500xH360/colorbox-illu5-354c2.jpg?1758113047' width='500' height='360' alt=&#034;&#034; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Plus loin avec colorBox&lt;/h2&gt;
&lt;p&gt;ColorBox peut &#195;&#170;tre personnalis&#195;&#169; plus loin au niveau de l'affichage. &lt;br class='autobr' /&gt;
On peut le modifier niveau des effets, en faire un diaporama, etc. On modifiera pour &#195;&#167;a le script d'activation minimal ici plus haut avec des param&#195;&#168;tres, voir pour &#195;&#167;a &lt;a href=&#034;http://colorpowered.com/colorbox/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;la page de documentation&lt;/a&gt; ou &lt;a href=&#034;http://colorpowered.com/colorbox/core/example1/index.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;les exemples&lt;/a&gt;.&lt;br class='manualbr' /&gt;ColorBox peut aussi ouvrir des pages en ajax plut&#195;&#180;t que de simples images, voir encore une fois la documentation &#195; ce sujet.&lt;/p&gt;
&lt;p&gt;Il est possible aussi d'ouvrir et de modifier le fichier css du plugin pour modifier bords, couleurs, fond du bloc. et y placer d'autre boutons.&lt;/p&gt;&lt;/div&gt;
		&lt;div class="hyperlien"&gt;Voir en ligne : &lt;a href="http://colorpowered.com/colorbox/" class="spip_out"&gt;Le site du plugin&lt;/a&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Ouvrir une nouvelle fen&#234;tre en javascript</title>
		<link>http://arts-numeriques.codedrops.net/Ouvrir-une-nouvelle-fenetre-en</link>
		<guid isPermaLink="true">http://arts-numeriques.codedrops.net/Ouvrir-une-nouvelle-fenetre-en</guid>
		<dc:date>2009-11-03T14:35:03Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>St&#233;phane Noel</dc:creator>


		<dc:subject>Javascript</dc:subject>

		<description>
&lt;p&gt;A manipuler avec pr&#233;caution, l'ouverture de nouvelles fen&#234;tre a fait les beaux jours du net art des ann&#233;es 90', mais a aussi &#233;t&#233; une des premi&#232;re forme d'intrusion intempestive des pubs dans nos navigateurs. &lt;br class='autobr' /&gt; Syntaxe g&#233;n&#233;rale window.open('url_a_ouvrir','nom_de_la_fen&#234;tre','attribut1,attribut2') ; &lt;br class='autobr' /&gt;
Dans la commande window.open, trois arguments entre guillemets, s&#233;par&#233;s par des virgules : L'adresse de la page &#224; ouvrir, en relatif (mapage.html) ou en absolu (http://www.monsite.com). On peut (&#8230;)&lt;/p&gt;


-
&lt;a href="http://arts-numeriques.codedrops.net/-Les-bases-" rel="directory"&gt;Les bases&lt;/a&gt;

/ 
&lt;a href="http://arts-numeriques.codedrops.net/+-Javascript-+" rel="tag"&gt;Javascript&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;A manipuler avec pr&#233;caution, l'ouverture de nouvelles fen&#234;tre a fait les beaux jours du net art des ann&#233;es 90', mais a aussi &#233;t&#233; une des premi&#232;re forme d'intrusion intempestive des pubs dans nos navigateurs.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Syntaxe g&#233;n&#233;rale&lt;/h2&gt;
&lt;p&gt;window.open('url_a_ouvrir','nom_de_la_fen&#234;tre','attribut1,attribut2') ;&lt;/p&gt;
&lt;p&gt;Dans la commande window.open, trois arguments entre guillemets, s&#233;par&#233;s par des virgules : &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; L'adresse de la page &#224; ouvrir, en relatif (mapage.html) ou en absolu (&lt;a href=&#034;http://www.monsite.com&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.monsite.com&lt;/a&gt;). On peut aussi ne rien mettre entre les guillemets, ce sera alors une fen&#234;tre vide.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Le nom de la fen&#234;tre. C'est utile si on veut par la suite agir sur cette fen&#234;tre pour la d&#233;placer, lui envoyer des contenus, &#233;crire dedans. &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; les attributs, s&#233;par&#233;s par des virgules. permettent de sp&#233;cifier comment apparait cette fen&#234;tre : taille, scrollbar ou pas, emplacement, etc.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Attributs&lt;/h2&gt;
&lt;p&gt;Les attributs sont :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; width : la largeur de la fen&#234;tre. (ex : width=250)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; height : hauteur de la fen&#234;tre. (ex : height=400)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; top : la position depuis le haut de l'&#233;cran (ex : top=100)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; left : la position depuis la gauche de l'&#233;cran (ex:left=10)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; resizable : permet &#224; l'utilisateur de changer la taille de la fen&#234;tre une fois cr&#233;&#233;e. Peut prendre la valeur yes ou no. (ex : resizable=yes)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; scrollbars : fait apparaitre ou non la scrollbar. Peut prendre la valeur yes ou no. (ex : scrollbar=no)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; toolbar : fait apparaitre ou pas la barre d'outil du navigateur. Valeurs yes ou no.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; location : fait apparaitre ou pas la barre d'adresse. valeur yes ou no.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; status : fait apparaitre ou non la barre de statut, dans le bas de la fen&#234;tre. Valeur yes ou no.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; menubar : fait apparaitre ou pas la barre de menu (fichier, &#233;dition, etc.). Valeur yes ou no.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; copyhistory : copie ou pas l'historique de navigation de la fen&#234;tre d'origine dans la fen&#234;tre cr&#233;&#233;e.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Des exemples&lt;/h2&gt;&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;div onClick=&#034;window.open('','','')&#034;&gt;click !&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ouvre une fen&#234;tre vide, dans un onglet sous Firefox.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;div onClick=&#034;window.open('http://www.google.fr','','width=400,height=200')&#034;&gt;click !&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ouvre le site de Google dans une fen&#234;tre de 400 sur 200.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;div onClick=&#034;window.open('http://www.google.fr','','width=400, height=300, toolbar=yes, location=yes, directories=yes, status=no, menubar=yes, scrollbars=no, copyhistory=yes, resizable=yes')&#034;&gt;click google avec plein d'option&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ouvre le site avec des options diverses. Attention, il peut y avoir des espaces entre les virgules mais pas de retour &#224; la ligne.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Ecrire des graffittis avec jquery, php et mysql</title>
		<link>http://arts-numeriques.codedrops.net/Plus-ecrire-des-graffittis-avec</link>
		<guid isPermaLink="true">http://arts-numeriques.codedrops.net/Plus-ecrire-des-graffittis-avec</guid>
		<dc:date>2008-12-08T23:27:33Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>St&#233;phane Noel</dc:creator>


		<dc:subject>Javascript</dc:subject>
		<dc:subject>(X)html</dc:subject>
		<dc:subject>Php</dc:subject>
		<dc:subject>CSS</dc:subject>
		<dc:subject>Ajax</dc:subject>

		<description>
&lt;p&gt;Un exemple simple et complet : intervenir sur une page en cliquant dessus, sauvegarder le r&#195;&#169;sultat dans une base de donn&#195;&#169;e pour pouvoir les afficher au rechargement de la page. &lt;br class='autobr' /&gt; Ce code est perfectible : on peut imaginer pouvoir demander une image au lieu d'&#195;&#169;crire du texte, de fabriquer une texte en image avec gd2, de choisir une couleur, de naviguer dans la profondeur des messages, de recharger r&#195;&#169;guli&#195;&#168;rement la page en ajax pour en faire un esp&#195;&#168;ce de chat... &lt;br class='autobr' /&gt;
1) La page (&#8230;)&lt;/p&gt;


-
&lt;a href="http://arts-numeriques.codedrops.net/-Exemples-67-" rel="directory"&gt;Exemples&lt;/a&gt;

/ 
&lt;a href="http://arts-numeriques.codedrops.net/+-Javascript-+" rel="tag"&gt;Javascript&lt;/a&gt;, 
&lt;a href="http://arts-numeriques.codedrops.net/+-X-html-+" rel="tag"&gt;(X)html&lt;/a&gt;, 
&lt;a href="http://arts-numeriques.codedrops.net/+-Php-+" rel="tag"&gt;Php&lt;/a&gt;, 
&lt;a href="http://arts-numeriques.codedrops.net/+-CSS-+" rel="tag"&gt;CSS&lt;/a&gt;, 
&lt;a href="http://arts-numeriques.codedrops.net/+-Ajax-+" rel="tag"&gt;Ajax&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Un exemple simple et complet : intervenir sur une page en cliquant dessus, sauvegarder le r&#195;&#169;sultat dans une base de donn&#195;&#169;e pour pouvoir les afficher au rechargement de la page.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Ce code est perfectible : on peut imaginer pouvoir demander une image au lieu d'&#195;&#169;crire du texte, de fabriquer une texte en image avec gd2, de choisir une couleur, de naviguer dans la profondeur des messages, de recharger r&#195;&#169;guli&#195;&#168;rement la page en ajax pour en faire un esp&#195;&#168;ce de chat...&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;1) La page d'initialisation de la base de donn&#195;&#169;e&lt;/h2&gt;
&lt;p&gt;On externalise cette part du code pour la r&#195;&#169;employer 2 fois.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;?php // ouverture de la connexion - ici pour mamp - $hote=&#034;localhost&#034;; $utilisateur=&#034;root&#034;; $password=&#034;root&#034;; // ouverture de la connexion $connexion = mysql_connect($hote,$utilisateur,$password); // ici il faudrait pour &#195;&#170;tre complet tester que la base existe, au besoin la creer // si vous utilisez ce script, vous devez donc cr&#195;&#169;er manuellement la table mysql_tests dans phpmyadmin mysql_select_db('mysql_page',$connexion); // on teste pour voir si la base existe $requete=&#034;SELECT * FROM elements;&#034;; $requete=mysql_query($requete,$connexion); // si la table n'existe pas, la cr&#195;&#169;er if (!$requete){ // contient un id auto-incrementiel, $requete=&#034;CREATE TABLE elements (id int(7) NOT NULL auto_increment, type varchar(255), contenu TEXT, style varchar(255), date datetime, PRIMARY KEY (id))&#034;; mysql_query($requete,$connexion); } ?&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;2) La page elle-m&#195;&#170;me&lt;/h2&gt;
&lt;p&gt;Contient les fonctions qui cr&#195;&#169;e le formulaire et fait la requ&#195;&#170;te ajax, plus le listage des messages d&#195;&#169;j&#195; &#195;&#169;crit au chargement.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;!DOCTYPE html PUBLIC &#034;-//W3C//DTD XHTML 1.0 Transitional//EN&#034; &#034;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#034;&gt; &lt;html xmlns=&#034;http://www.w3.org/1999/xhtml&#034;&gt; &lt;head&gt; &lt;meta http-equiv=&#034;Content-Type&#034; content=&#034;text/html;charset=utf-8&#034; /&gt; &lt;title&gt;Add your comment on the metawall&lt;/title&gt; &lt;link rel=&#034;stylesheet&#034; type=&#034;text/css&#034; href=&#034;style.css&#034; /&gt; &lt;script type=&#034;text/javascript&#034; src=&#034;jquery.js&#034;&gt;&lt;/script&gt; &lt;script type=&#034;text/javascript&#034;&gt; $(document).ready(function(){ $(&#034;html&#034;).click(function(coordonees){ $(&#034;.clicform&#034;).remove(); $(&#034;body&#034;).append(&#034;&lt;div class='clicform contenu' style='top:&#034; + coordonees.pageY + &#034;px;left:&#034; + coordonees.pageX + &#034;px'&gt;&lt;textarea id='letexte'&gt;&lt;/textarea&gt;&lt;br /&gt;&lt;div class='validbutton' onClick='javascript:soumettexte();'&gt;Envoyer&lt;/div&gt;&lt;/div&gt;&#034;); $(&#034;.clicform textarea&#034;).focus(); $(&#034;body .clicform&#034;).click(function(){ return false; }); }); }); function soumettexte(){ var contenu=$(&#034;.clicform textarea&#034;).attr(&#034;value&#034;); if(contenu !=&#034;&#034;){ style=$(&#034;.clicform&#034;).attr(&#034;style&#034;); $.ajax({ type: &#034;POST&#034;, url: &#034;update_page.php&#034;, data: &#034;style=&#034; + style + &#034;&amp;entrer=oui&amp;contenu=&#034; + contenu, success: function(msg){ //alert( &#034;Data Saved: &#034; + msg ); } }); } $(&#034;.clicform&#034;).each(function(){ $(this).html(contenu); $(this).removeClass(&#034;clicform&#034;); }); return false; } &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;?php include('init_base.php'); $larequete=&#034;SELECT * FROM elements&#034;; $requete = mysql_query($larequete,$connexion); $total = mysql_num_rows($requete); if ($total) { while($row = mysql_fetch_array($requete)) { // ecriture les elements depuis la db echo &#034;&lt;div class=\&#034;contenu\&#034; style=\&#034;&#034;.$row['style'].&#034;\&#034; &gt;&#034;.stripslashes($row['contenu']).&#034;&lt;/div&gt;\n&#034;; } } ?&gt; &lt;/body&gt; &lt;/html&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;3) La page qui entre les message dans la db&lt;/h2&gt;
&lt;p&gt;Cette page est appell&#195;&#169;e par jquery. Ce code de d&#195;&#169;mo n'est pas d&#195;&#169;gradable. Son activation par cliquer-pointer est trop appuy&#195;&#169; sur le javascript pour l'&#195;&#170;tre...&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;?php include('init_base.php'); // initialiser la variable message $message=&#034;&#034;; // tester que post contient ce qui nous interesse, c'est &#195; dire au moins une array associative &#034;entrer&#034; // traiter ce qui a &#195;&#169;t&#195;&#169; envoy&#195;&#169; par le formulaire if(isset($_POST['entrer'])){ // on s&#195;&#169;curise le contenu avec addslashes $contenu=addslashes($_POST['contenu']); $style=addslashes($_POST['style']); // on pr&#195;&#169;pare une date $date = date(&#034;Y-m-d H:m:s&#034;); // on ins&#195;&#168;re $requete=&#034;INSERT INTO elements ( type,contenu,style,date ) VALUES ('texte','$contenu', '$style', '$date')&#034;; $envoi=mysql_query($requete,$connexion); // si c'est reussi, le dire dans le message if($envoi){ echo &#034;Nouveau contenu entr&#195;&#169;&#034;; } } ?&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;4) Les styles css&lt;/h2&gt;
&lt;p&gt;Dans le fichier style.css, quelques lignes.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;body { font-family:arial, sans-serif; font-size:11px; } .clicform { background-color:#fff; border:1px solid #ccc; } .clicform textarea{ heigth:4em; } .contenu { position:absolute; } .clicform textarea, .contenu { font-size:21px; font-weight:bold; color: #666; width:200px; } .validbutton { font-size:12px; }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ajouter &#195; ceci &#195;&#169;videmment la librairie &lt;a href='http://arts-numeriques.codedrops.net/jQuery'&gt;http://jquery.com&lt;/a&gt;...&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		
		<enclosure url="http://arts-numeriques.codedrops.net/IMG/zip/infinite_grafitti_wall.zip" length="19813" type="application/zip" />
		

	</item>
<item xml:lang="fr">
		<title>Code d&#195;&#169;gradable, non intrusif, non obstructif</title>
		<link>http://arts-numeriques.codedrops.net/Code-degradable-code-non-intrusif</link>
		<guid isPermaLink="true">http://arts-numeriques.codedrops.net/Code-degradable-code-non-intrusif</guid>
		<dc:date>2008-12-02T12:29:40Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>St&#233;phane Noel</dc:creator>


		<dc:subject>Javascript</dc:subject>

		<description>
&lt;p&gt;Le javascript permet d'&#195;&#169;tendre les possibilit&#195;&#169;s de votre navigateur, de rendre plus fluide l'exp&#195;&#169;rience de surf, de rendre plus rapide certaines op&#195;&#169;rations via ajax, mais javascript : n'est pas activ&#195;&#169; sur tous les navigateurs reste li&#195;&#169; &#195; l'environnement de l'utilisateur, et peut crasher &lt;br class='autobr' /&gt;
D&#195;&#168;s lors, que faire si le javascript est inop&#195;&#169;rant ? &lt;br class='autobr' /&gt; La bonne conduite du web, les recommandations du w3c, veulent que le code soit d&#195;&#169;gradable, non intrusif et non obstructif. Qu'est ce que &#195;&#167;a (&#8230;)&lt;/p&gt;


-
&lt;a href="http://arts-numeriques.codedrops.net/-Les-bases-" rel="directory"&gt;Les bases&lt;/a&gt;

/ 
&lt;a href="http://arts-numeriques.codedrops.net/+-Javascript-+" rel="tag"&gt;Javascript&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Le javascript permet d'&#195;&#169;tendre les possibilit&#195;&#169;s de votre navigateur, de rendre plus fluide l'exp&#195;&#169;rience de surf, de rendre plus rapide certaines op&#195;&#169;rations via ajax, mais javascript :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; n'est pas activ&#195;&#169; sur tous les navigateurs
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; reste li&#195;&#169; &#195; l'environnement de l'utilisateur, et peut crasher&lt;/p&gt;
&lt;p&gt;D&#195;&#168;s lors, que faire si le javascript est inop&#195;&#169;rant ?&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;La bonne conduite du web, les recommandations du w3c, veulent que le code soit d&#195;&#169;gradable, non intrusif et non obstructif. Qu'est ce que &#195;&#167;a signifie ?&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Non obstructif&lt;/h2&gt;
&lt;p&gt;&#034;Non-obstructivif&#034; signifie que l'absence d'interpr&#195;&#169;tation du javascript ne doit pas emp&#195;&#170;cher le visiteur d'une page d'avoir acc&#195;&#168;s &#195; l'ensemble des informations qu'elle contient. Un bouton &#034;en savoir plus&#034; par exemple, destin&#195;&#169; &#195; faire apparaitre une portion suppl&#195;&#169;mentaire de texte, ne doit pas reposer uniquement sur javascript pour &#195;&#170;tre vu. On fera en sorte que par d&#195;&#169;faut, le texte entier soit visible, et que le javascript au chargement de la page, cache une partie du contenu puis le r&#195;&#169;v&#195;&#168;le sur simple clic.&lt;br class='manualbr' /&gt;&#034;Non-obstructif&#034; signifie aussi que l'information que permet d'obtenir une fonctionnalit&#195;&#169; en javascript sera accessible par un autre moyen. Ainsi, un bloc d'information charg&#195;&#169; &#195; la place d'un autre par un chargement en ajax risque d'&#195;&#170;tre inaccessible si javascript est indisponible. On veillera dans ce cas &#195; ce que des liens apparaissent par d&#195;&#169;faut, puis soient chach&#195;&#169;s au moment du chargement de javascript.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;D&#195;&#169;gradable&lt;/h2&gt;
&lt;p&gt;Un code d&#195;&#169;gradable signifie que l'ensemble des fonctionnalit&#195;&#169;s que propose votre page sont pens&#195;&#169;e pour faire face au cas o&#195;&#185; le javascript est inop&#195;&#169;rant, ou qu'il soit d&#195;&#169;sactiv&#195;&#169;, incompatible avec le navigateur d'un visiteur ou encore arr&#195;&#170;t&#195;&#169; par un bug.&lt;/p&gt;
&lt;p&gt;C'est le prolongement du concept de non-obstructivit&#195;&#169;.&lt;/p&gt;
&lt;p&gt;&#195;&#8225;a semble &#195;&#169;vident mais dans les faits cela demande un surcroit de travail, puisque l'on a deux cas de figure et non un seul, et donc c'est parfois laiss&#195;&#169; de c&#195;&#180;t&#195;&#169;.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Un exemple de d&#195;&#169;gradabilit&#195;&#169;&lt;/h2&gt;
&lt;p&gt;Prenons un cas concret : vous avez fait un code simple qui affiche une image dans un popup lorsque l'on clique sur sa vignette. On imagine ici une fonction &#034;popup()&#034; qui ouvre une fen&#195;&#170;tre avec l'image dont la source lui est envoy&#195;&#169;e.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;a href=&#034;javascript:popup('monimage.jpg')&#034;&gt;&lt;img src=&#034;mavignette.jpg&#034; alt=&#034;cliquez&#034; /&gt;&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Probl&#195;&#168;me :&lt;/strong&gt; si javascript n'est pas activ&#195;&#169; ou qu'un bug existe dans mon code, cette image restera invisible. Il faut donc faire en sorte que l'image soit accessible sans javascript.&lt;/p&gt;
&lt;p&gt;On fera donc un code du type :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;a href=&#034;monimage.jpg&#034; onClick=&#034;popup('monimage.jpg')&#034;&gt;&lt;img src=&#034;mavignette.jpg&#034; alt=&#034;cliquez&#034; /&gt;&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;De cette mani&#195;&#168;re, si le javascript n'est pas disponible, l'image s'affichera dans la fen&#195;&#170;tre du navigateur. Pas des plus &#195;&#169;l&#195;&#169;gant, mais la d&#195;&#169;gradabilit&#195;&#169; signifie que l'information reste accessible, pas que l'on fait aussi bien que le javascript.&lt;br class='autobr' /&gt;
Notons qu'on s'arrangera pour que javascript inhibe le comportement du lien pour &#195;&#169;viter d'avoir un popup + l'image qui s'ouvre dans la page par l'action du href du lien. C'est le fameux surcroit de travail dont je parlais, ici pas tr&#195;&#168;s lourd.&lt;/p&gt;
&lt;p&gt;Le web 2.0 regorge de bloc load&#195;&#169;s en ajax, de formulaire dynamique, ces cas de figure demandent quand &#195; eux plus de travail pour une d&#195;&#169;gradabilit&#195;&#169; efficace. Les librairies javascript se chargent souvent d'une partie de celle-ci, heureusement.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Code non-intrusif&lt;/h2&gt;
&lt;p&gt;Le w3c ne recommande pas seulement la d&#195;&#169;gradabilit&#195;&#169;, il demande aussi une s&#195;&#169;paration des codes. Qu'il n'y aie pas intrusion du code javascript (ni css d'ailleurs) dans le code html, d'o&#195;&#185; le terme &#034;non-intrusif&#034;.&lt;/p&gt;
&lt;p&gt;Or, dans notre exemple simple, j'ai plac&#195;&#169; du code directement dans les balises html, dans les deux cas. Comment faire pour arriver &#195; associer du javascript dans une page web sans le placer dans le code ?&lt;/p&gt;
&lt;p&gt;D'abord il nous faudra placer le code javascript dans un fichier externe en pla&#195;&#167;ant dans le head un appel &#195; un fichier .js :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;script type=&#034;text/javascript&#034; src=&#034;monjs.js&#034;&gt;&lt;/script&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ensuite, on utilisera une librairie javascript (ici, jquery) pour placer le javascript dans la page apr&#195;&#168;s son chargement :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;script type=&#034;text/javascript&#034; src=&#034;jquery.js&#034;&gt;&lt;/script&gt; &lt;script type=&#034;text/javascript&#034; src=&#034;monjs.js&#034;&gt;&lt;/script&gt; &lt;script type=&#034;text/javascript&#034;&gt; $(document).ready(function(){ $(&#034;a.popup&#034;).each(function(){ var monimage=$(this).attr(&#034;href&#034;); popup(monimage); return false; }); }); &lt;/script&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Et dans le html&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;a href=&#034;monimage.jpg&#034; alt=&#034;mon image&#034; class=&#034;popup&#034;&gt;&lt;img src=&#034;mavignette.jpg&#034; /&gt;&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;L&#195; , c'est plus propre. Le code jquery permet &#195; tout lien qui tag &#034;a&#034; et la classe &#034;popup&#034; d'ouvrir l'image mise dans le href avec la fonction popup, au lieu d'ouvrir l'image dans la page.&lt;/p&gt;
&lt;p&gt;Voil&#195; , notre code est non intrusif et d&#195;&#169;gradable. En outre, nous avons au passage fait un script g&#195;&#169;n&#195;&#169;rique : je peux l'utiliser pour toute vignette &#195; laquelle j'associe la classe &#034;popup&#034;. Pratique.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Agir sur les fen&#195;&#170;tres</title>
		<link>http://arts-numeriques.codedrops.net/Agir-sur-les-fenetres</link>
		<guid isPermaLink="true">http://arts-numeriques.codedrops.net/Agir-sur-les-fenetres</guid>
		<dc:date>2008-12-02T11:07:10Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>St&#233;phane Noel</dc:creator>


		<dc:subject>Javascript</dc:subject>

		<description>
&lt;p&gt;Le net art faisait la part belle aux exp&#195;&#169;rimentations sur son outil premier, le navigateur. Les javascripts ici sommairement pr&#195;&#169;sent&#195;&#169;s leur rend hommage. &lt;br class='autobr' /&gt; Move ! Pour bouger la fen&#195;&#170;tre du navigateur, on s'adresse &#195; l'objet window. &lt;br class='autobr' /&gt; Deplacer la fen&#195;&#170;tre Ici on fait sauter la fen&#195;&#170;tre d'un endroit &#195; un autre. La taille est relative &#195; l'&#195;&#169;cran. Attention, javascript est &#034;case sensitive&#034;, les majuscules sont importantes. &lt;br class='autobr' /&gt; 100 pixels vers le haut Les deux chiffres &#195; passer sont bien (&#8230;)&lt;/p&gt;


-
&lt;a href="http://arts-numeriques.codedrops.net/-Les-bases-" rel="directory"&gt;Les bases&lt;/a&gt;

/ 
&lt;a href="http://arts-numeriques.codedrops.net/+-Javascript-+" rel="tag"&gt;Javascript&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Le net art faisait la part belle aux exp&#195;&#169;rimentations sur son outil premier, le navigateur. Les javascripts ici sommairement pr&#195;&#169;sent&#195;&#169;s leur rend hommage.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Move !&lt;/h2&gt;
&lt;p&gt;Pour bouger la fen&#195;&#170;tre du navigateur, on s'adresse &#195; l'objet window.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;a href=&#034;javascript:window.moveTo(10,200);&#034;&gt;Deplacer la fen&#195;&#170;tre&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ici on fait sauter la fen&#195;&#170;tre d'un endroit &#195; un autre. La taille est relative &#195; l'&#195;&#169;cran. Attention, javascript est &#034;case sensitive&#034;, les majuscules sont importantes.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;a href=&#034;javascript:window.moveBy(0,-100);&#034;&gt;100 pixels vers le haut&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Les deux chiffres &#195; passer sont bien entendu la distance de d&#195;&#169;placement en pixels.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Resize !&lt;/h2&gt;&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;a href=&#034;javascript:window.resizeTo(400,300);&#034;&gt;Fen&#195;&#170;tre de taille 400X300&lt;/a&gt; - &lt;a href=&#034;javascript:window.resizeTo(200,600);&#034;&gt;Fen&#195;&#170;tre de taille 200X600&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;ResizeTo modifie la taille de la fen&#195;&#170;tre &#195; la taille indiqu&#195;&#169;e.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;a href=&#034;javascript:window.resizeBy(10,10);&#034;&gt;Agrandir de 10 pixels&lt;/a&gt; - &lt;a href=&#034;javascript:window.resizeBy(-10,-10);&#034;&gt;Reduire de 10 pixels&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;resizeBy modifie la taille actuelle de la fen&#195;&#170;tre avec les valeurs indiqu&#195;&#169;es.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Scroll !&lt;/h2&gt;&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;a href=&#034;javascript:window.scrollTo(0,-200);&#034;&gt;Aller plus haut&lt;/a&gt; - &lt;a href=&#034;javascript:window.scrollTo(0,200);&#034;&gt;Aller plus bas&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Am&#195;&#168;ne la page jusqu'&#195; une coordonn&#195;&#169;e fixe de la page en d&#195;&#169;pla&#195;&#167;ant les ascenceurs de la page.&lt;br class='autobr' /&gt;
NB : Pour que ce code fonctionne la page doit &#195;&#170;tre assez longue pour avoir des ascenceurs.&lt;/p&gt;
&lt;p&gt;ScrollBy fait le m&#195;&#170;me travail, mais par rapport &#195; l'endroit actuel de la page.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;a href=&#034;javascript:window.scrollBy(0,-100);&#034;&gt;Scroller plus haut&lt;/a&gt; - &lt;a href=&#034;javascript:window.scrollBy(0,100);&#034;&gt;scroller plus bas&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Quelle est la taille de l'&#195;&#169;cran ?&lt;/h2&gt;
&lt;p&gt;D&#195;&#168;s que l'on voudra avoir un meilleur contr&#195;&#180;le du mouvement de ces fen&#195;&#170;tres, on aura besoin de connaitre la taille de l'&#195;&#169;cran sur laquelle elles sont affich&#195;&#169;es. C'est facile avec screen.width et screen.height.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;a href=&#034;javascript:alert('Cet &#195;&#169;cran est en ' + screen.width + 'X' + screen.height);&#034;&gt;
Quelle est la r&#195;&#169;solution de cet &#195;&#169;cran ?&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href='http://arts-numeriques.codedrops.net/exemples/move-resize.html'&gt;Un fichier de test, rapidement&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Un navigateur automatique avec opendir et jquery</title>
		<link>http://arts-numeriques.codedrops.net/Plus-un-navigateur-automatique</link>
		<guid isPermaLink="true">http://arts-numeriques.codedrops.net/Plus-un-navigateur-automatique</guid>
		<dc:date>2008-11-26T00:11:35Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>St&#233;phane Noel</dc:creator>


		<dc:subject>Javascript</dc:subject>
		<dc:subject>(X)html</dc:subject>
		<dc:subject>Php</dc:subject>
		<dc:subject>Ajax</dc:subject>

		<description>&lt;p&gt;Une application simple, melant php et jquery, permettant avec un seul fichier de naviguer dans les pages html d'un dossier. Ce script fabrique un menu d&#195;&#169;roulant comprenant toutes les pages html trouv&#195;&#169;es dans le dossier o&#195;&#185; il est d&#195;&#169;pos&#195;&#169; avec php, et permet d'afficher le contenu de ces pages sans rechargement gr&#195;&#162;ce &#195; jquery.&lt;/p&gt;

-
&lt;a href="http://arts-numeriques.codedrops.net/-Exemples-67-" rel="directory"&gt;Exemples&lt;/a&gt;

/ 
&lt;a href="http://arts-numeriques.codedrops.net/+-Javascript-+" rel="tag"&gt;Javascript&lt;/a&gt;, 
&lt;a href="http://arts-numeriques.codedrops.net/+-X-html-+" rel="tag"&gt;(X)html&lt;/a&gt;, 
&lt;a href="http://arts-numeriques.codedrops.net/+-Php-+" rel="tag"&gt;Php&lt;/a&gt;, 
&lt;a href="http://arts-numeriques.codedrops.net/+-Ajax-+" rel="tag"&gt;Ajax&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Une application simple, melant php et jquery, permettant avec un seul fichier de naviguer dans les pages html d'un dossier. Ce script fabrique un menu d&#195;&#169;roulant comprenant toutes les pages html trouv&#195;&#169;es dans le dossier o&#195;&#185; il est d&#195;&#169;pos&#195;&#169; avec php, et permet d'afficher le contenu de ces pages sans rechargement gr&#195;&#162;ce &#195; jquery.&lt;br class='manualbr' /&gt;Ce code a &#195;&#169;t&#195;&#169; produit pour un besoin personnel, il n'est pas d&#195;&#169;gradable.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Voici le code php/html/javascript complet. Pour le faire fonctionner, il faut placer le fichier de la librairie jquery avec comme nom &#034;jquery.js&#034; dans un dossier &#034;includes&#034;. Ceci pour clairement s&#195;&#169;parer dans le dossier les pages html des autres &#195;&#169;l&#195;&#169;ments. Le script php ne s&#195;&#169;lection que les pages html, mais tout de m&#195;&#170;me, c'est plus propre.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le dossier zipp&#195;&#169; reprend tout &#195;&#167;a.&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;!DOCTYPE html PUBLIC &#034;-//W3C//DTD XHTML 1.0 Transitional//EN&#034; &#034;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#034;&gt;
&lt;html xmlns=&#034;http://www.w3.org/1999/xhtml&#034;&gt;
&lt;head&gt;
&lt;meta http-equiv=&#034;Content-Type&#034; content=&#034;text/html;charset=utf-8&#034;/&gt;
&lt;title&gt;Presentation technique et technologie - St&#195;&#169;phane No&#195;&#171;l&lt;/title&gt;
&lt;script type=&#034;text/javascript&#034; src=&#034;include/jquery.js&#034;&gt;&lt;/script&gt;
&lt;link rel=&#034;stylesheet&#034; type=&#034;text/css&#034; href=&#034;include/styles.css&#034;/&gt;
&lt;script type=&#034;text/javascript&#034;&gt;
$(document).ready(function(){ // quand la page est entierement chargee // on ajoute un script qui se d&#195;&#169;clenche lorsque l'on change la valeur du selecteur $(&#034;#selecteur&#034;).change(function(){ var lien=$(&#034;#selecteur option:selected&#034;).attr(&#034;value&#034;); pompe(lien); }); // au d&#195;&#169;marrage de la page rien n'est charge, // alors on s&#195;&#169;lectionne le premier element du menu deroulant var lien=$(&#034;#selecteur option:first&#034;).attr(&#034;value&#034;); pompe(lien); }); function pompe(lien){ // requete ajax $.ajax({ url: lien, cache: false, success: function(html){ // si c'est reussi, la page est dans la variable html // recupere le titre avec la fonction split et une expression reguliere var stitre = new RegExp('&lt;title[^&gt;]*&gt;|&lt;/title&gt;', 'gi'); var titre = html.split(stitre); document.title = titre[1]; // recupere le contenu de body avec la fonction split et une expression reguliere var regcorps=new RegExp('&lt;body[^&gt;]*&gt;|&lt;/body&gt;', 'gi'); var corps=html.split(regcorps); $(&#034;#visualisateur&#034;).html(corps[1]); // place le selecteur au bon endroit $('#selecteur option:selected').selected=false; $(&#034;#selecteur option[@value='&#034; + lien + &#034;']&#034;).attr(&#034;selected&#034;,&#034;selected&#034;); } });
} function next() { // prend dans le selecteur la valeur de l'option suivant var lien=$(&#034;#selecteur option:selected&#034;).next().attr(&#034;value&#034;); if(lien){ pompe(lien); } } function prec() { // prend dans le selecteur la valeur de l'option precedent var lien=$(&#034;#selecteur option:selected&#034;).prev().attr(&#034;value&#034;); if(lien){ pompe(lien); } }
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id=&#034;headselection&#034;&gt;
&lt;?php // read all html file in the current directory if ($dh = opendir('./')) { $files = array(); while (($file = readdir($dh)) !== false) { if (substr($file, strlen($file) - 5) == '.html') { array_push($files, $file); } } closedir($dh); } // on trie les fichiers sort($files); // on affiche le menu echo &#034;&lt;select name='selecteur' id='selecteur'&gt;\n&#034;; foreach ($files as $file) { $title = Title($file); // on liste un lien par option en filtrant le nom a afficher echo &#034;&lt;option value=\&#034;$file\&#034;&gt;$title&lt;/option&gt;\n&#034;; } echo &#034;&lt;/select&gt;\n&#034;; // Function to get a human readable title from the filename function Title($filename) { $title = substr($filename, 0, strlen($filename) - 5); $title = str_replace('-', ' ', $title); $title = str_replace('_', ' ', $title); $title = ucwords($title); return $title; }
?&gt; &lt;a href=&#034;javascript:prec();&#034;&gt;Pr&#195;&#169;c&#195;&#169;dent&lt;/a&gt; - &lt;a href=&#034;javascript:next();&#034;&gt;Suivant&lt;/a&gt;
&lt;/div&gt; &lt;div id=&#034;visualisateur&#034;&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		
		<enclosure url="http://arts-numeriques.codedrops.net/IMG/zip/navigateur_html.zip" length="19409" type="application/zip" />
		

	</item>
<item xml:lang="fr">
		<title>G&#195;&#169;n&#195;&#169;rer des images avec php et jquery</title>
		<link>http://arts-numeriques.codedrops.net/Plus-generer-des-images-avec-php</link>
		<guid isPermaLink="true">http://arts-numeriques.codedrops.net/Plus-generer-des-images-avec-php</guid>
		<dc:date>2008-04-21T17:38:22Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>St&#233;phane Noel</dc:creator>


		<dc:subject>Javascript</dc:subject>
		<dc:subject>Php</dc:subject>

		<description>
&lt;p&gt;Ce script produit une s&#195;&#169;rie d'images sur base d'un texte entr&#195;&#169; dans un formulaire. &lt;br class='autobr' /&gt; Il utilise jQuery, la librairie javascript, pour &#195;&#169;viter un travail trop long &#195; php : en effet on risque un timeout si le texte est trop long. Ici, toute les secondes une requ&#195;&#170;te est envoy&#195;&#169; &#195; un fichier php, qui g&#195;&#169;n&#195;&#168;re une image sur base d'un mot. &lt;br class='autobr' /&gt;
Ce script est basique et largement perfectible : taille de l'image, de la police, couleurs, typo, texte peuvent &#195;&#170;tre g&#195;&#169;n&#195;&#169;r&#195;&#169;s diff&#195;&#169;remment. &lt;br class='autobr' /&gt;
Le code (&#8230;)&lt;/p&gt;


-
&lt;a href="http://arts-numeriques.codedrops.net/-Exemples-67-" rel="directory"&gt;Exemples&lt;/a&gt;

/ 
&lt;a href="http://arts-numeriques.codedrops.net/+-Javascript-+" rel="tag"&gt;Javascript&lt;/a&gt;, 
&lt;a href="http://arts-numeriques.codedrops.net/+-Php-+" rel="tag"&gt;Php&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Ce script produit une s&#195;&#169;rie d'images sur base d'un texte entr&#195;&#169; dans un formulaire.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Il utilise jQuery, la librairie javascript, pour &#195;&#169;viter un travail trop long &#195; php : en effet on risque un timeout si le texte est trop long. Ici, toute les secondes une requ&#195;&#170;te est envoy&#195;&#169; &#195; un fichier php, qui g&#195;&#169;n&#195;&#168;re une image sur base d'un mot.&lt;/p&gt;
&lt;p&gt;Ce script est basique et largement perfectible : taille de l'image, de la police, couleurs, typo, texte peuvent &#195;&#170;tre g&#195;&#169;n&#195;&#169;r&#195;&#169;s diff&#195;&#169;remment.&lt;/p&gt;
&lt;p&gt;Le code est annot&#195;&#169; pour plus de lisibilit&#195;&#169;.&lt;/p&gt;
&lt;p&gt;Attention, si vous d&#195;&#169;posez le script sur un serveur, celui-ci doit disposer de la librairie gd2, et le dossier &#034;mots&#034; doit &#195;&#170;tre accessible en &#195;&#169;criture (chmod 777).&lt;/p&gt;
&lt;p&gt;&gt; &lt;a href=&#034;http://www.workplace.lescorsaires.be/exemples/tous_les_mots&#034;&gt;Voir le script en action ici.&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		
		<enclosure url="http://arts-numeriques.codedrops.net/IMG/zip/tous_les_mots.zip" length="39197" type="application/zip" />
		

	</item>
<item xml:lang="fr">
		<title>Les timers javascript</title>
		<link>http://arts-numeriques.codedrops.net/Les-timers-javascript</link>
		<guid isPermaLink="true">http://arts-numeriques.codedrops.net/Les-timers-javascript</guid>
		<dc:date>2007-11-18T21:35:31Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>St&#233;phane Noel</dc:creator>


		<dc:subject>Javascript</dc:subject>

		<description>
&lt;p&gt;Le javascript comporte une s&#195;&#169;rie d'outil, le timer est de ceux qui pourrit la vie des internautes mais fera le bonheur de plusieurs d'entre vous. Ex&#195;&#169;cuter une action apr&#195;&#168;s un certain d&#195;&#169;lai, ex&#195;&#169;cuter une action toutes les x secondes, les usages possibles sont multiples et potentiellement envahissants. &lt;br class='autobr' /&gt; setTimeout() et clearTimeout() &lt;br class='autobr' /&gt;
Pour activer un timer est une op&#195;&#169;ration simple. &lt;br class='autobr' /&gt;
window.setTimeout(&#034;mafonction()&#034;,1000) ; &lt;br class='autobr' /&gt;
function mafonction() alert(&#034;Here i am !&#034;) ; &lt;br class='autobr' /&gt;
Ce code (&#8230;)&lt;/p&gt;


-
&lt;a href="http://arts-numeriques.codedrops.net/-Les-bases-" rel="directory"&gt;Les bases&lt;/a&gt;

/ 
&lt;a href="http://arts-numeriques.codedrops.net/+-Javascript-+" rel="tag"&gt;Javascript&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Le javascript comporte une s&#195;&#169;rie d'outil, le timer est de ceux qui pourrit la vie des internautes mais fera le bonheur de plusieurs d'entre vous. Ex&#195;&#169;cuter une action apr&#195;&#168;s un certain d&#195;&#169;lai, ex&#195;&#169;cuter une action toutes les x secondes, les usages possibles sont multiples et potentiellement envahissants.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;setTimeout() et clearTimeout()&lt;/h2&gt;
&lt;p&gt;Pour activer un timer est une op&#195;&#169;ration simple.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;window.setTimeout(&#034;mafonction()&#034;,1000); function mafonction(){ alert(&#034;Here i am !&#034;); }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ce code va appeler la fonction &lt;i&gt;mafonction()&lt;/i&gt; apr&#195;&#168;s une seconde (le temps est exprim&#195;&#169; ici en milli&#195;&#168;mes de secondes). On peut arr&#195;&#170;ter un timer avant son timeout, en utilisant la fonction clearTimeout(). Mais il faut alors &#034;nommer&#034; notre timeout, comme ceci :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;montimer=window.setTimeout(&#034;mafonction()&#034;,5000);&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ce qui permettra de le stopper comme ceci :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;window.clearTimeout(montimer);&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&#034;http://www.workplace.lescorsaires.be/exemples/timers/simpletimeout.html&#034;&gt;Voici un un exemple simple&lt;/a&gt; et &lt;a href=&#034;http://www.workplace.lescorsaires.be/exemples/timers/compteur.html&#034;&gt;un exemple plus complet ici&lt;/a&gt;. Le code est comment&#195;&#169;, pensez &#195; afficher la source.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;setInterval() et clearInterval()&lt;/h2&gt;
&lt;p&gt;La logique est la m&#195;&#170;me, sauf qu'ici on appelle une fonction &#195; intervalles r&#195;&#169;guliers.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;window.setInterval(&#034;mafonction()&#034;,1000);&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ce code appelera la fonction mafonction() toutes les secondes jusqu'&#195; ce que la page soit ferm&#195;&#169;e ou que le timer soit stopp&#195;&#169; par la fonction clearInterval(). Mais ll&#195; aussi, il est n&#195;&#169;cessaire de nommer le timer :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;montimer=window.setInterval(&#034;mafonction()&#034;,5000);&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ce qui permettra de le stopper comme ceci :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;window.clearInterval(montimer);&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Les fonctions</title>
		<link>http://arts-numeriques.codedrops.net/Les-fonctions</link>
		<guid isPermaLink="true">http://arts-numeriques.codedrops.net/Les-fonctions</guid>
		<dc:date>2007-10-25T21:09:46Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>St&#233;phane Noel</dc:creator>


		<dc:subject>Art du code</dc:subject>
		<dc:subject>Javascript</dc:subject>

		<description>&lt;p&gt;Un des concepts importants de la programmation, les fonctions sont pr&#195;&#169;sentes en javascript. Qu'est ce que c'est, comment les utiliser, c'est ici.&lt;/p&gt;

-
&lt;a href="http://arts-numeriques.codedrops.net/-Les-bases-" rel="directory"&gt;Les bases&lt;/a&gt;

/ 
&lt;a href="http://arts-numeriques.codedrops.net/+-Art-du-code-+" rel="tag"&gt;Art du code&lt;/a&gt;, 
&lt;a href="http://arts-numeriques.codedrops.net/+-Javascript-+" rel="tag"&gt;Javascript&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Un des concepts importants de la programmation, les fonctions sont pr&#195;&#169;sentes en javascript. Qu'est ce que c'est, comment les utiliser, c'est ici.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Les fonctions ont une fonction : l'&#195;&#169;conomie d'&#195;&#169;chelle. On centralise des portions de code de telle mani&#195;&#168;re &#195; pouvoir les r&#195;&#169;utiliser plusieurs fois, et donc devoir corriger &#195; un seul endroit si &#195;&#167;a merde. C'est un &#034;sous-programme&#034; en soi, qui peut &#195;&#170;tre d'une grande complexit&#195;&#169;, avec des arguments transmis, etc. Allons-y doucement.&lt;/p&gt;
&lt;p&gt;&#195;&#8225;a se passe en deux temps : on &#195;&#169;crit une fonction, puis on l'invoque.&lt;br class='autobr' /&gt;
On &#195;&#169;crit la fonction :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;script type=&#034;text/javascript&#034;&gt; function mafonction() { alert(&#034;Et hop&#034;); } &lt;/script&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La fonction commence par le nom &#034;function&#034; suivi du nom de la fonction, que vous inventez, termin&#195;&#169; par une ouverture et fermeture de parenth&#195;&#168;ses. Dans ces parenth&#195;&#168;ses on verra qu'on peut mettre des choses. On ouvre et ferme ensuite des accolades, entre lesquelles on place le code de la fonction. Ce code sera ex&#195;&#169;cut&#195;&#169; chaque fois que l'on appelle la fonction comme suit :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;a href=&#034;javascript:mafonction();&#034;&gt;Clic&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ici, vous voyez que le code javascript remplace le lien dans le code de la page. Mais on peut faire ceci aussi :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;div onClick=&#034;mafonction();&#034;&gt;waow&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Chaque fois que la fonction sera appell&#195;&#169;e, elle executera le code, ici une boite d'alerte qui contient &#034;Et hop !&#034;.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Appeller une fonction avec un argument&lt;/h2&gt;
&lt;p&gt;Mais une fonction reste statique si elle envoie le m&#195;&#170;me contenu &#195; chaque fois qu'on l'appelle. Il devient int&#195;&#169;ressant d'utiliser une fonction quand on peut lui envoyer des arguments.&lt;/p&gt;
&lt;p&gt;Un exemple simple : un questionnaire &#195; choix multiples. Trois r&#195;&#169;ponses &#195; une question, une seule des trois est juste.&lt;br class='autobr' /&gt;
Dans la page, on mettra ceci :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;h3&gt;Qui est pr&#195;&#169;sident des USA aujourd'hui&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#034;javascript:testereponse('Mais non !');&#034;&gt;Abraham Lincoln&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#034;javascript:testereponse('&#195;&#8225;a c'&#195;&#169;tait le pr&#195;&#169;c&#195;&#169;dent');&#034;&gt;Bill Clinton&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#034;javascript:testereponse('malheureusement oui...');&#034;&gt;Georges Bush&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Dans le head de la page, on va &#195;&#169;crire la fonction.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;script type=&#034;text/javascript&#034;&gt; function testereponse(lareponse) { alert(lareponse); } &lt;/script&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Vous constaterez que entre les parenth&#195;&#168;ses se trouvent un mot - lareponse - qui est r&#195;&#169;utilis&#195;&#169; dans la ligne juste apr&#195;&#168;s. C'est une variable. Elle re&#195;&#167;oit l'information provenant des r&#195;&#169;ponses potentielles par l'appel de fonction &#034;javascript:testereponse(&#034;quelquechose&#034;) ;&#034; et la stocke pour &#195;&#170;tre r&#195;&#169;utilis&#195;&#169;e. Dans notre cas, la fonction affiche simplement ce qui lui est envoy&#195;&#169; dans une boite d'alerte.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Plusieurs argument dans la fonction&lt;/h2&gt;
&lt;p&gt;Notre bout de code est amusant, mais il ne teste par r&#195;&#169;ellement le r&#195;&#169;sultat donn&#195;&#169; &#195; la r&#195;&#169;ponse : il affiche juste un bout de texte envoy&#195;&#169; par l'appel de fonction dans une boite d'alerte...&lt;br class='manualbr' /&gt;Pour faire un vrai test, avec un envoi vers une page en cas de r&#195;&#169;ussite, on va ajouter des variables pass&#195;&#169;e par la fonction.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;h3&gt;Qui est pr&#195;&#169;sident des USA aujourd'hui&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#034;javascript:testereponse('Mais non !', false);&#034;&gt;Abraham Lincoln&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#034;javascript:testereponse('&#195;&#8225;a c\'&#195;&#169;tait le pr&#195;&#169;c&#195;&#169;dent', false);&#034;&gt;Bill Clinton&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#034;javascript:testereponse('malheureusement oui...', true, 'questionsuivante.html');&#034;&gt;Georges Bush&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Trois arguments sont plac&#195;&#169;s dans le script, parfois 2 seulement. Remarquez au passage que les textes &#195; envoyer sont entour&#195;&#169;s de simples guillemets : c'est parce que l'appel &#195; la fonction se trouve lui-m&#195;&#170;me dans un double guillemets. La r&#195;&#169;ponse pour &#034;Bill Clinton&#034; a quelque chose en plus : un backslashe (\) devant le caract&#195;&#168;re de simpe guillemets. Pourquoi ? Parce la r&#195;&#169;ponse est elle-m&#195;&#170;me entre simple guillemets, et donc mettre un simple guillemet dans le texte correspond &#195; indiquer au script que la variable se cloture alors qu'on est au milieu de la phrase. Erreur de script garantie.&lt;/p&gt;
&lt;p&gt;Dans le head, on a plus de code pur plus de r&#195;&#169;sultats :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;script type=&#034;text/javascript&#034;&gt; function testereponse(lareponse,test,url) { // on pr&#195;&#169;pare la fen&#195;&#170;tre d'alerte if (test) { message =&#034;Bonne r&#195;&#169;ponse \n&#034; + lareponse; } else { message = &#034;Mauvaise reponse \n&#034; + lareponse; } // on envoie la boite d'alerte avec son message alert(message); // si il y a une valeur pour url, on clique vers elle if(url) { window.location.href=url; } } &lt;/script&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Houlala, plein de choses nouvelles :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; On r&#195;&#169;cup&#195;&#168;re trois valeurs potentielles dans 3 variables. Si &#034;url&#034; ne re&#195;&#167;oit rien, le script ne se plaint pas : simplement cette variable reste vide.&lt;/p&gt;
&lt;p&gt;On teste la variable &#034;test&#034; : dans le code su lien, elle vaut soit &#034;true&#034; soit &#034;false&#034;. True et false ne sont pas des variables, mais des valeur bol&#195;&#169;ennes. True, c'est &#034;oui&#034;, 1, quelque chose, et false est &#034;non&#034;, 0, rien.&lt;br class='autobr' /&gt;
le test if() {} else {} &#195;&#169;value ce qui se trouve entre parenth&#195;&#168;ses et si le r&#195;&#169;sultat est positif (si x==10 par exemple), alors ce qui se trouve entre les premi&#195;&#168;res accolades est ex&#195;&#169;cut&#195;&#169;, et si le r&#195;&#169;sultat est n&#195;&#169;gatif, ce qui se trouve dans les accolades apr&#195;&#168;s else sera ex&#195;&#169;cut&#195;&#169;.&lt;br class='autobr' /&gt;
Dans notre cas, on stocke dans une variable &#034;message&#034; du texte et une variable.&lt;/p&gt;
&lt;p&gt;Enfin, si quelque chose se trouve dans la variable url, l'adresse de la page sera chang&#195;&#169;e via la commande window.location.href.&lt;/p&gt;&lt;/div&gt;
		&lt;div class="hyperlien"&gt;Voir en ligne : &lt;a href="http://fr.selfhtml.org/javascript/langage/fonctions.htm" class="spip_out"&gt;Page de documentation en fran&#195;&#167;ais sur SELHTML&lt;/a&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
