<?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>Blog Pastel.Pro - Solutions Web</title>
	<atom:link href="http://blog.pastel.pro/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.pastel.pro</link>
	<description>La trousse à outils du webmasteur, en un minimum de mots</description>
	<lastBuildDate>Wed, 21 Sep 2011 05:52:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>URL rewriting avec un .htaccess &#8211; initiation par un exemple simple</title>
		<link>http://blog.pastel.pro/url-rewriting-avec-un-htaccess-initiation-par-un-exemple-simple/</link>
		<comments>http://blog.pastel.pro/url-rewriting-avec-un-htaccess-initiation-par-un-exemple-simple/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 09:41:39 +0000</pubDate>
		<dc:creator>Marc Farré</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.pastel.pro/?p=509</guid>
		<description><![CDATA[L&#39;URL rewriting est une technique incontournable pour permettre un bon r&#233;f&#233;rencement et qui permet d&#39;am&#233;liorer la lisibilit&#233; des liens vers vos pages. Exemple simple Cr&#233;ez un fichier .htaccess &#224; la racine de votre site contenant : Options +FollowSymlinks RewriteEngine on RewriteRule ^page/([_a-z0-9]*).html$&#160; index.php?param=$1 [L] Maintenant, si vous allez sur http://www.monsite.ext/page/exemple.html ce sera la page http://www.monsite.ext/index.php?param=exemple ]]></description>
			<content:encoded><![CDATA[<p>L&#39;URL rewriting est une technique incontournable pour permettre un bon r&eacute;f&eacute;rencement et qui permet d&#39;am&eacute;liorer la lisibilit&eacute; des liens vers vos pages.</p>
<h3>Exemple simple</h3>
<p>Cr&eacute;ez un fichier .htaccess &agrave; la racine de votre site contenant :</p>
<p><code>Options +FollowSymlinks<br />
	RewriteEngine on<br />
	RewriteRule ^page/([_a-z0-9]*).html$&nbsp; index.php?param=$1 [L]<br />
	</code></p>
<p>Maintenant, si vous allez sur http://www.monsite.ext/page/<strong>exemple</strong>.html ce sera la page http://www.monsite.ext/index.php?param=<strong>exemple</strong> qui sera affich&eacute;e.</p>
<h3>Pour aller plus loin</h3>
<p>Je vous conseille l&#39;excellent article de <a href="http://www.webrankinfo.com/dossiers/techniques/tutoriel-url-rewriting">Webrankinfo</a> qui expliquer clairement les diff&eacute;rentes m&eacute;thodes autoris&eacute;es.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pastel.pro/url-rewriting-avec-un-htaccess-initiation-par-un-exemple-simple/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>script PHP de sauvegarde de site internet &#8211; MySQL dump et création d&#8217;une archive ZIP des fichiers du serveur</title>
		<link>http://blog.pastel.pro/script-php-de-sauvegarde-de-site-internet-mysql-dump-et-creation-dune-archive-zip-des-fichiers-du-serveur/</link>
		<comments>http://blog.pastel.pro/script-php-de-sauvegarde-de-site-internet-mysql-dump-et-creation-dune-archive-zip-des-fichiers-du-serveur/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 09:14:29 +0000</pubDate>
		<dc:creator>Marc Farré</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.pastel.pro/?p=489</guid>
		<description><![CDATA[Ce script permet de sauvegarder tr&#232;s rapidement votre site internet. Vous allez avec votre navigateur sur la page du script PHP et celui-ci va effectuer automatiquement les actions suivantes dump de votre base de donn&#233;e MySQL cr&#233;ation d&#39;une archive de la BDD dans le r&#233;pertoire que vous aurez choisi cr&#233;ation de la liste des fichiers ]]></description>
			<content:encoded><![CDATA[<p>Ce script permet de sauvegarder tr&egrave;s rapidement votre site internet. Vous allez avec votre navigateur sur la page du script PHP et celui-ci va effectuer automatiquement les actions suivantes</p>
<ol>
<li>dump de votre base de donn&eacute;e MySQL</li>
<li>cr&eacute;ation d&#39;une archive de la BDD dans le r&eacute;pertoire que vous aurez choisi</li>
<li>cr&eacute;ation de la liste des fichiers &agrave; sauver (vous pouvez demander &agrave; sauver touts vos fichiers accessibles en FTP)</li>
<li>cr&eacute;ation d&#39;une archive ZIP de ces fichiers qui inclue l&#39;archive de la BDD pr&eacute;alablement sauv&eacute;e</li>
<li>affichage d&#39;un lien permettant de t&eacute;l&eacute;charger l&#39;archive ZIP</li>
</ol>
<p>Ce script est enti&egrave;rement fonctionnel, mais il m&eacute;riterai d&#39;&ecirc;tre am&eacute;lior&eacute; (affichage de la liste des archives, permettre de les supprimer, &#8230;).</p>
<p>N&#39;h&eacute;sitez pas &agrave; me sugg&eacute;rer des am&eacute;liorations.</p>
<h3>T&eacute;l&eacute;chargements</h3>
<p><a href="http://blog.pastel.pro/wp-content/uploads/2010/12/pastel-backup.zip">Pastel Backup v1.0<br />
	</a></p>
<h3>Utilisation</h3>
<ul>
<li>Sur votre serveur, cr&eacute;ez les r&eacute;pertoires suivants (par exemple) :
<ul>
<li>/sauvegardes</li>
<li>/sauvegardes/MySQL</li>
<li>/sauvegardes/completes</li>
</ul>
</li>
<li>V&eacute;rifiez les droits pour qu&#39;ils soient accessibles en &eacute;criture</li>
<li>T&eacute;l&eacute;chargez et d&eacute;zippez Pastel Backup</li>
<li>Ouvrez les 3 fichiers avec un &eacute;diteur en UTF-8 :
<ul>
<li>pastel-backup.php : personnalisez les variables apr&egrave;s //PARAM&Egrave;TRES</li>
<li>.htaccess : donnez le chemin de .htpasswd</li>
<li>.htpasswd : param&eacute;trez votre login et mot de passe (<a href="http://aspirine.org/htpasswd.html">g&eacute;n&eacute;ration sur ce site par exemple</a>)</li>
</ul>
</li>
<li>Uploadez ces fichiers dans /sauvegardes</li>
<li>Testez en lan&ccedil;ant le fichier /sauvegardes/pastel-backup.php !</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.pastel.pro/script-php-de-sauvegarde-de-site-internet-mysql-dump-et-creation-dune-archive-zip-des-fichiers-du-serveur/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Appliquer des attributs CSS seulement à un navigateur et/ou une version</title>
		<link>http://blog.pastel.pro/appliquer-des-attributs-css-seulement-a-un-navigateur-et-une-version/</link>
		<comments>http://blog.pastel.pro/appliquer-des-attributs-css-seulement-a-un-navigateur-et-une-version/#comments</comments>
		<pubDate>Mon, 04 Oct 2010 14:23:21 +0000</pubDate>
		<dc:creator>Marc Farré</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.pastel.pro/?p=472</guid>
		<description><![CDATA[Il existe de nombreuses possibilit&#233;s pour cibler un navigateur avec CSS : HTML &#60;!--[if IE 5.0]&#62; pour IE 5.0 &#60;![endif]--&#62; &#60;!--[if IE 5.5000]&#62; pour IE 5.5 &#60;![endif]--&#62; &#60;!--[if IE 6]&#62; pour IE 6.0 &#60;![endif]--&#62; &#60;!--[if IE 7]&#62; pour IE 7.0 &#60;![endif]--&#62; &#60;!--[if IE 8]&#62; pour IE 8.0 &#60;![endif]--&#62; &#60;!--[if gte IE 7]&#62; pour IE 7 ]]></description>
			<content:encoded><![CDATA[<p>Il existe de nombreuses possibilit&eacute;s pour cibler un navigateur avec CSS :</p>
<h4>HTML</h4>
<p><code>&lt;!--[if IE 5.0]&gt; pour IE 5.0 &lt;![endif]--&gt;<br />
	&lt;!--[if IE 5.5000]&gt; pour IE 5.5 &lt;![endif]--&gt;<br />
	&lt;!--[if IE 6]&gt; pour IE 6.0 &lt;![endif]--&gt;<br />
	&lt;!--[if IE 7]&gt; pour IE 7.0 &lt;![endif]--&gt;<br />
	&lt;!--[if IE 8]&gt; pour IE 8.0 &lt;![endif]--&gt;<br />
	&lt;!--[if gte IE 7]&gt; pour IE 7 et sup&eacute;rieur &lt;![endif]--&gt;<br />
	&lt;!--[if lt IE 7]&gt; pour IE inf&eacute;rieur &agrave; IE 7 &lt;![endif]--&gt;<br />
	&lt;!--[if lte IE 6]&gt; pour IE 5.0, IE 5.5 et IE 6.0 mais pas IE7.0 &lt;![endif]--&gt;</code></p>
<p>On peut alors charger un fichier CSS dans une de ces conditions.</p>
<p><strong>Mais &ccedil;a ne fonctionne que pour Internet Explorer.<br />
	</strong></p>
<h4>Javascript</h4>
<p>Avec jQuery, <a href="http://api.jquery.com/jQuery.browser/">la fonction jQuery.browser</a> permet de cibler un navigateur et une version.</p>
<p>Par exemple, on peut l&#39;utiliser ainsi :</p>
<p><code>if (jQuery.browser.msie &amp;&amp; parseInt(jQuery.browser.version) &lt; 7) $(&#39;body&#39;).addClass(&#39;msieLte6&#39;);<br />
	</code></p>
<p><strong>Mais <a href="http://api.jquery.com/jQuery.browser/">jQuery.browser</a> est vou&eacute; &agrave; disparaitre dans quelques ann&eacute;es.<br />
	</strong></p>
<h4>PHP</h4>
<p><strong>C&#39;est la solution la plus s&ucirc;re et qui marche avec tous les navigateurs.</strong></p>
<p>Voici le code que je met pour la balise &lt;body&gt; :</p>
<p><code>&lt;body class=&quot;&lt;?php<br />
	class Browser<br />
	{<br />
	&nbsp;&nbsp;&nbsp; private $props&nbsp;&nbsp;&nbsp; = array(&quot;Version&quot; =&gt; &quot;unknown&quot;,<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;Name&quot; =&gt; &quot;unknown&quot;,<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;Agent&quot; =&gt; &quot;unknown&quot;) ;<br />
	&nbsp;&nbsp;&nbsp; public function __Construct()<br />
	&nbsp;&nbsp;&nbsp; {<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $browsers = array(&quot;firefox&quot;, &quot;msie&quot;, &quot;opera&quot;, &quot;chrome&quot;, &quot;safari&quot;,<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;mozilla&quot;, &quot;seamonkey&quot;, &quot;konqueror&quot;, &quot;netscape&quot;,<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;gecko&quot;, &quot;navigator&quot;, &quot;mosaic&quot;, &quot;lynx&quot;, &quot;amaya&quot;,<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;omniweb&quot;, &quot;avant&quot;, &quot;camino&quot;, &quot;flock&quot;, &quot;aol&quot;);<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;Agent = strtolower($_SERVER[&#39;HTTP_USER_AGENT&#39;]);<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach($browsers as $browser)<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (preg_match(&quot;#($browser)[/ ]?([0-9.]*)#&quot;, $this-&gt;Agent, $match))<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;Name = $match[1] ;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;Version = $match[2] ;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break ;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
	&nbsp;&nbsp;&nbsp; }<br />
	&nbsp;&nbsp;&nbsp; public function __Get($name)<br />
	&nbsp;&nbsp;&nbsp; {<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;props[$name] ;<br />
	&nbsp;&nbsp;&nbsp; }<br />
	}<br />
	$browser = new Browser ;<br />
	echo &#39;browserName-&#39;.$browser-&gt;Name.&#39; browserVersion-&#39;.intval($browser-&gt;Version) ;<br />
	?&gt;&quot;&gt;<br />
	</code><br />
	<span style="font-family: monospace;">Ensuite, en CSS, je cible de cette mani&egrave;re :<br />
	</span></p>
<p><code><span style="font-family: monospace;">.</span>browserName-msie.browserVersion-6 #elementId {<br />
	&nbsp;&nbsp;&nbsp; attribut: &#39;valeur&#39;;<br />
	}<br />
	</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pastel.pro/appliquer-des-attributs-css-seulement-a-un-navigateur-et-une-version/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Comment tester un site sur la majorité des navigateurs ?</title>
		<link>http://blog.pastel.pro/comment-tester-un-site-sur-la-majorite-des-navigateurs/</link>
		<comments>http://blog.pastel.pro/comment-tester-un-site-sur-la-majorite-des-navigateurs/#comments</comments>
		<pubDate>Mon, 27 Sep 2010 14:28:31 +0000</pubDate>
		<dc:creator>Marc Farré</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://blog.pastel.pro/?p=466</guid>
		<description><![CDATA[En fonction des navigateurs, des versions de ceux-ci et du syst&#232;me d&#39;exploitation, un site peu s&#39;afficher diff&#233;remment. Donc avant publication de celui-ci, il convient de le tester dans la majorit&#233; des situations. Pour ce faire, il faut : 1- avoir un Mac Car un m&#234;me navigateur s&#39;affichera diff&#233;remment suivant le syst&#232;me d&#39;exploitation, et le Mac ]]></description>
			<content:encoded><![CDATA[<p>En fonction des navigateurs, des versions de ceux-ci et du syst&egrave;me d&#39;exploitation, un site peu s&#39;afficher diff&eacute;remment.</p>
<p>Donc avant publication de celui-ci, il convient de le tester dans la majorit&eacute; des situations.</p>
<p>Pour ce faire, il faut :</p>
<h4>1- avoir un Mac</h4>
<p>Car un m&ecirc;me navigateur s&#39;affichera diff&eacute;remment suivant le syst&egrave;me d&#39;exploitation, et le Mac OS X n&#39;est pas virtualisable &agrave; ma connaissance.</p>
<h4>2- un logiciel de virtualisation pour tester sur Linux et Windows</h4>
<p>Pour &eacute;viter d&#39;avoir plusieurs ordinateurs.</p>
<p>Par exemple, Virtualbox est gratuit et fait tr&egrave;s bien l&#39;affaire.</p>
<h4>3- avoir Windows Vista ou Seven</h4>
<p>Pour pouvoir le virtualiser et installer internet explorer 9.</p>
<h4>4- installer les principaux navigateurs avec les principales versions</h4>
<p>Aujourd&#39;hui, je teste sur :</p>
<ul>
<li>Firefox 3.0 et 3.6</li>
<li>Chrome derni&egrave;re version</li>
<li>Safari&nbsp;derni&egrave;re version</li>
<li>Opera&nbsp;derni&egrave;re version</li>
<li>Internet explorer 7, 8 et 9</li>
</ul>
<p>Et internet explorer 6 ?<br />
	J&#39;ajoute le bandeau <a href="http://www.ie6nomore.com">ie6nomore</a>&nbsp;pour expliquer que, comme facebook et beaucoup d&#39;autres, j&#39;arr&ecirc;te le support de ce navigateur obsol&egrave;te.</p>
<p>Pour tester IE 7 et 8, pas besoin de les installer : sur IE 9, il suffit d&#39;aller dans les &quot;outils de d&eacute;veloppement&quot;, et cliquer sur &quot;Mode de navigateur&quot;. Par contre, dans certains cas, il peut y avoir des diff&eacute;rences entre le mode de compatibilit&eacute; et le vrai IE7 ou 8 int&eacute;gr&eacute; avec le syst&egrave;me d&#39;exploitation (<a href="http://braincracking.org/2010/11/24/tester-fiablement-ses-navigateurs/">cf l&#39;article de jpvincent</a>). Donc je conseille de faire un ultime test sur des machines virtuelles contenant le vrai IE7 et IE8 avant de publier le site.</p>
<h4>5- tester sur les smartphones</h4>
<ul>
<li>Android : installer le SDK d&#39;Android (<a href="http://www.alsacreations.com/astuce/lire/699-emuler-google-android-emulator-mobile.html">cf tutoriel d&#39;alsacr&eacute;ation</a>).</li>
<li>Iphone : on peut installer sur Mac l&#39;Iphone simulator de l<a href="http://developer.apple.com/devcenter/ios/index.action">&#39;iOS SDK</a> qui est le seul simulateur fid&egrave;le.</li>
<li>Opera mobile : il y a le site <a href="http://www.opera.com/mobile/demo/">Opera&nbsp;mini simulator</a>, ou mieux, l&#39;<a href="http://www.opera.com/developer/tools/">opera mobile emulator</a>&nbsp;&agrave; installer sur l&#39;ordinateur.</li>
</ul>
<h4>Et sans mac ou sans installer tous ces navigateurs ?</h4>
<p>C&#39;est quand m&ecirc;me possible d&#39;avoir des captures d&#39;&eacute;cran (mais &ccedil;a ne permet pas de tester du code javascript par exemple) gr&acirc;ce &agrave; des sites internet :</p>
<ul>
<li><a href="http://browsershots.org/">BrowserShots</a></li>
<li><a href="https://browserlab.adobe.com/fr-fr/">Adobe BrowserLab</a></li>
<li><a href="http://www.browsercam.com/">BrowserCam</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.pastel.pro/comment-tester-un-site-sur-la-majorite-des-navigateurs/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Plugin jQuery d&#8217;alignement vertical sans tableau</title>
		<link>http://blog.pastel.pro/plugin-jquery-d-alignement-vertical-sans-tableau/</link>
		<comments>http://blog.pastel.pro/plugin-jquery-d-alignement-vertical-sans-tableau/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 09:28:45 +0000</pubDate>
		<dc:creator>Marc Farré</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.pastel.pro/?p=458</guid>
		<description><![CDATA[Il existe de nombreuses solutions sur le net pour compenser avec jQuery l&#39;absence d&#39;attribut CSS quand on n&#39;utilise pas de tableau, mais toutes celles que j&#39;ai trouv&#233; on un bug dans certaines conditions : position: absolute risque de faire sortir le texte du cadre, margin-top fait descendre aussi le conteneur parent, probl&#232;me avec le padding ]]></description>
			<content:encoded><![CDATA[<p>Il existe de nombreuses solutions sur le net pour compenser avec jQuery l&#39;absence d&#39;attribut CSS quand on n&#39;utilise pas de tableau, mais toutes celles que j&#39;ai trouv&eacute; on un bug dans certaines conditions : position: absolute risque de faire sortir le texte du cadre, margin-top fait descendre aussi le conteneur parent, probl&egrave;me avec le padding dans certaines configurations css, &#8230;</p>
<p>D&#39;o&ugrave; pastel-vAlign, que j&#39;ai test&eacute; dans de tr&egrave;s nombreuses situations.</p>
<h4>Le code du plugin jQuery</h4>
<p><code>&nbsp;&nbsp;&nbsp; $.fn.vAlign = function() {<br />
	&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return this.each(function(i){<br />
	&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $(this).children().wrapAll(&#39;&lt;div class=&quot;pastel-vAlign&quot; style=&quot;position:relative; margin: 0; padding: 0;&quot;&gt;&lt;/div&gt;&#39;);<br />
	&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var jWrap = $(this).children(&#39;div.pastel-vAlign&#39;);<br />
	&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var ph = $(this).innerHeight();<br />
	&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var dh = jWrap.height();<br />
	&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var mh = Math.round((ph - dh) / 2);<br />
	&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; jWrap.css(&#39;top&#39;, mh);<br />
	&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; });<br />
	&nbsp;&nbsp;&nbsp; };</code></p>
<h4>Utilisation</h4>
<p><code>$(&#39;#element&#39;).vAlign();<br />
	</code></p>
<p><code>#element doit avoir la hauteur de la zone dans laquelle on veut centrer l&#39;&eacute;l&eacute;ment enfant qui est dedans. L&#39;&eacute;l&eacute;ment enfant, lui, ne doit pas avoir de hauteur d&eacute;finie.<br />
	</code></p>
<p><code>Donc le css doit &ecirc;tre du type :</code></p>
<p><code>#element {height: 100px}</code></p>
<p><code>et pas &quot;#element * </code><code>{height: 100px}&quot; </code><code>par exemple</code></p>
<h4>Demo</h4>
<p><a href="http://blog.pastel.pro/demos/pastel-valign/">Voir la d&eacute;mo de pastel-vAlign<br />
	</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pastel.pro/plugin-jquery-d-alignement-vertical-sans-tableau/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Frameworks open source pour développer des applications fonctionnelles sur plusieurs os de smartphones (iphones, android, &#8230;)</title>
		<link>http://blog.pastel.pro/frameworks-open-source-pour-developper-des-applications-fonctionnelles-sur-plusieurs-os-de-smartphones-iphones-android/</link>
		<comments>http://blog.pastel.pro/frameworks-open-source-pour-developper-des-applications-fonctionnelles-sur-plusieurs-os-de-smartphones-iphones-android/#comments</comments>
		<pubDate>Sat, 21 Aug 2010 09:39:48 +0000</pubDate>
		<dc:creator>Marc Farré</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mobiles - Smartphones]]></category>

		<guid isPermaLink="false">http://blog.pastel.pro/?p=399</guid>
		<description><![CDATA[Cr&#233;er une appli pour smartphones compatible pour toutes les plateformes, sans avoir &#224; apprendre le langage sp&#233;cifique pour l&#39;OS, c&#39;est le r&#234;ve du d&#233;veloppeur&#8230; Mais &#231;a devient de plus en plus possible pour des petites applications simples gr&#226;ce aux nombreux frameworks disponibles. Ces applis sont d&#233;velopp&#233;es avec des langages destin&#233;s au web (de plus en ]]></description>
			<content:encoded><![CDATA[<p>Cr&eacute;er une appli pour smartphones compatible pour toutes les plateformes, sans avoir &agrave; apprendre le langage sp&eacute;cifique pour l&#39;OS, c&#39;est le r&ecirc;ve du d&eacute;veloppeur&#8230;</p>
<p>Mais &ccedil;a devient de plus en plus possible pour des petites applications simples gr&acirc;ce aux nombreux frameworks disponibles. Ces applis sont d&eacute;velopp&eacute;es avec des langages destin&eacute;s au web (de plus en plus, html5 et javascript), mais fonctionnent offline.</p>
<p>Ces applications n&#39;auront jamais la puissance d&#39;une application native et les performances seront toujours en de&ccedil;&agrave;, mais &ccedil;a peut &ecirc;tre tr&egrave;s pratique dans de nombreuses situations.</p>
<p>J&#39;ai s&eacute;lectionn&eacute; 3 frameworks qui sont, je pense, les plus aboutis aujourd&#39;hui.</p>
<h4>Tableau comparatif</h4>
<table border="1" cellpadding="1" cellspacing="1" style="width: 550px;">
<tbody>
<tr>
<td bgcolor="#000000"><strong>Produit<br />
				</strong></td>
<td bgcolor="#000000"><strong><a href="http://www.phonegap.com/">PhoneGap<br />
				</a></strong></td>
<td bgcolor="#000000"><strong><a href="http://www.appcelerator.com/">Titanium (Appcelerator)<br />
				</a></strong></td>
<td bgcolor="#000000"><strong><a href="http://rhomobile.com/products/rhodes/">Rhodes (Rhomobile)<br />
				</a></strong></td>
</tr>
<tr>
<td bgcolor="#000000"><strong>Licence<br />
				</strong></td>
<td>Open-source (MIT License)</td>
<td>Open-source (Apache Public v2.0)</td>
<td>Open-source (MIT License)</td>
</tr>
<tr>
<td bgcolor="#000000"><strong>Prix<br />
				</strong></td>
<td>Gratuit</td>
<td>Gratuit / $199 / $499</td>
<td>Gratuit / $1000</td>
</tr>
<tr>
<td bgcolor="#000000"><strong>Smartphones<br />
				</strong></td>
<td>iPhone, Android, BlackBerry, Symbian, Palm</td>
<td>iPhone, Android</td>
<td>iPhone, BlackBerry, Windows Mobile, Symbian et Android</td>
</tr>
<tr>
<td bgcolor="#000000"><strong>Languages<br />
				</strong></td>
<td>HTML, JavaScript, CSS</td>
<td>HTML, JavaScript, CSS</td>
<td>HTML, Ruby</td>
</tr>
<tr>
<td bgcolor="#000000"><strong>Apparence native<br />
				</strong></td>
<td>non</td>
<td>oui</td>
<td>oui</td>
</tr>
<tr>
<td bgcolor="#000000"><strong>D&eacute;ploiement<br />
				</strong></td>
<td>manuel</td>
<td>manuel</td>
<td>RhoSync</td>
</tr>
</tbody>
</table>
<h4><a href="http://www.phonegap.com/">PhoneGap</a></h4>
<p><a href="http://www.phonegap.com/"><img alt="PhoneGap screenshot" class="alignnone size-full wp-image-428" height="355" src="http://blog.pastel.pro/wp-content/uploads/2010/08/phonegap.jpg" title="phonegap" width="505" /></a></p>
<p>Tableau des fonctionnalit&eacute;s des smartphones actuellement pris en charge :</p>
<p><span style="font-size: 10px;"><span style="background-color: rgb(255, 0, 0);">rouge</span> : pas possible pour cet appareil<br />
	<span style="background-color: rgb(255, 255, 0);">jaune</span> : en cours de d&eacute;velloppement<br />
	<span style="background-color: rgb(0, 255, 0);">vert</span> : fonctionnel</span></p>
<table border="1" cellpadding="0" cellspacing="0" class="noPaddingTable">
<tbody>
<tr>
<td>&nbsp;</td>
<td>iPhone</td>
<td>Android</td>
<td>Blackberry<br />
				(OS 4.5)</td>
<td>Symbian</td>
<td>Windows<br />
				Mobile</td>
<td>
<p>Palm</p>
</td>
</tr>
<tr>
<td>Geolocation</td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
</tr>
<tr>
<td>Accelerometer</td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(211, 211, 211);">OS 4.7</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);">HTC&nbsp;only&nbsp;</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
</tr>
<tr>
<td>Camera</td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
</tr>
<tr>
<td>Vibration</td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
</tr>
<tr>
<td>Contacts API</td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(255, 0, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
</tr>
<tr>
<td>SQLite&nbsp;Functionality</td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ff0000" style="background-color: rgb(255, 0, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ff0000" style="background-color: rgb(255, 0, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
</tr>
<tr>
<td>XMPP&nbsp;API</td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
</tr>
<tr>
<td>File system IO</td>
<td bgcolor="#ffff00" style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ff0000" style="background-color: rgb(255, 0, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);">Read only</span></td>
</tr>
<tr>
<td>Gesture / Multitouch</td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);">Android 2.0</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
</tr>
<tr>
<td>SMS&nbsp;API</td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
</tr>
<tr>
<td>Telephone API</td>
<td bgcolor="#ffff00" style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
</tr>
<tr>
<td>Copy / Paste</td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
</tr>
<tr>
<td>Sounds (Play)</td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
</tr>
<tr>
<td>Sounds (Record)</td>
<td bgcolor="#ffff00" style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ff0000" style="background-color: rgb(255, 0, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
</tr>
<tr>
<td>Bluetooth</td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ff0000" style="background-color: rgb(255, 0, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
</tr>
<tr>
<td>Wifi Adhoc connection</td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ff0000" style="background-color: rgb(255, 0, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ff0000" style="background-color: rgb(255, 0, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
</tr>
<tr>
<td>Maps</td>
<td bgcolor="#33ff00" style="background-color: rgb(51, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
</tr>
<tr>
<td>Orientation change</td>
<td bgcolor="#33ff00" style="background-color: rgb(51, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(255, 255, 255);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
</tr>
<tr>
<td>Network availability</td>
<td bgcolor="#ffff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
</tr>
<tr>
<td>Magnetometer</td>
<td bgcolor="#ffff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);">&nbsp;3GS only</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ff0000" style="background-color: rgb(255, 0, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td>
<p><span style="color: rgb(0, 0, 0);"><br />
					</span></p>
</td>
</tr>
<tr>
<td>Storage</td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#ffff00" style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td bgcolor="#00ff00" style="background-color: rgb(0, 255, 0);"><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td><span style="color: rgb(0, 0, 0);"><br />
				</span></td>
<td>
<p><span style="color: rgb(0, 0, 0);"><br />
					</span></p>
</td>
</tr>
</tbody>
</table>
<p><cite>Source : <a href="http://wiki.phonegap.com/Roadmap">http://wiki.phonegap.com/Roadmap</a></cite></p>
<p>PhoneGap a &eacute;t&eacute; &quot;con&ccedil;u pour dispara&icirc;tre&quot;. En effet les APIs de PhonePap sont identiques aux API de HTML5 qui ne sont pas forc&eacute;ment encore impl&eacute;ment&eacute;es dans les navigateurs mobiles.</p>
<p>Les applications ressemblent un peu &agrave; des pages web et PhoneGap est un peu apparent&eacute; &agrave; un navigateur.</p>
<p>Le projet <a href="http://jquerymobile.com/">jQuery Mobile</a> sera compatible avec PhoneGap, ce qui permettra d&#39;utiliser la puissance de jQuery en plus.</p>
<h4><a href="http://www.appcelerator.com/">Titanium (Appcelerator)</a></h4>
<p><a href="http://www.appcelerator.com/"><img alt="Titanium screenshot" class="alignnone size-full wp-image-429" height="295" src="http://blog.pastel.pro/wp-content/uploads/2010/08/titanium.jpg" title="titanium" width="505" /></a></p>
<p>Fonctionnalit&eacute;s support&eacute;es : g&eacute;olocation, accel&eacute;rometre, vibration, son (enregistrement et playback), camera, SQLite, multitouch, copier/coller, t&eacute;l&eacute;phone, fichiers locaux incluant les contacts et les photos.</p>
<p>Les applis faites avec Titanium sont compil&eacute;es pour l&#39;OS de destination. Elles paraissent donc plus natives que celles d&eacute;velopp&eacute;es avec PhoneGap et sont moins gourmandes en ressources.</p>
<p>Contrairement &agrave; PhoneGap, Titanium expose directement les API natives du smartphone en JavaScript. Il faut donc s&rsquo;attendre &agrave; des diff&eacute;rences plus importantes entre les diff&eacute;rentes plateformes, PhoneGap proposant des API plus g&eacute;n&eacute;riques et communes &agrave; l&rsquo;ensemble des plateformes. Mais dans tous les cas il y a autant de projets que de cibles techniques.</p>
<h4><a href="http://rhomobile.com/products/rhodes/">Rhodes (Rhomobile</a>)</h4>
<p><a href="http://rhomobile.com/products/rhodes/"><img alt="Rhodes screenshot" class="alignnone size-full wp-image-427" height="284" src="http://blog.pastel.pro/wp-content/uploads/2010/08/rhodes.jpg" title="rhodes" width="505" /></a></p>
<p>Tableau des fonctionnalit&eacute;s des smartphones actuellement pris en charge :</p>
<p><a href="http://blog.pastel.pro/wp-content/uploads/2010/08/rhode.gif"><img alt="Rhodes capabilities" class="alignnone size-full wp-image-425" height="326" src="http://blog.pastel.pro/wp-content/uploads/2010/08/rhode.gif" title="rhode" width="514" /></a></p>
<p>A la diff&eacute;rence de ces derniers le navigateur local est utilis&eacute; et c&rsquo;est le code Ruby ou Java (et non JavaScript) qui permet d&rsquo;acc&eacute;der aux fonctionnalit&eacute;s natives de l&rsquo;appareil.</p>
<p>Ce sont de vraies applications natives ayant donc acc&egrave;s aux fonctionnalit&eacute;s telles le GPS, PIM contacts et camera.</p>
<h4>Conclusion</h4>
<p>Le choix du framework d&eacute;pendra entre autres :</p>
<ul>
<li>de vos habitudes de programmation (javascript pour PhoneGap et Titanium, Ruby pour Rhodes)</li>
<li>de l&#39;importance d&#39;avoir une application qui paraisse native (pour PhoneGap, ce n&#39;est pas le cas)</li>
<li>des OS que vous voulez toucher (par ex, Windows mobile n&#39;est pas encore g&eacute;r&eacute; par PhoneGap et Titanium)</li>
</ul>
<p>Je n&#39;ai pas parl&eacute; de <a href="http://www.sencha.com/products/touch/">Sencha Touch</a> (HTML5, CSS3 et JS) qui est tr&egrave;s prometteur aussi, car il ne permet pas de faire une application native : &ccedil;a reste une application web. Par contre, il peut &ecirc;tre utiliser en tant que framework javascript dans une appli PhoneGap ou Titanium par exemple.</p>
<p>Pour une appli n&eacute;cessitant des ressources importantes comme la 3D, le framework ne sera pas adapt&eacute;.</p>
<h4>Sources</h4>
<ul>
<li><a href="http://surgeworksmobile.com/iphone/mobile-apps-cross-platform-development-challenge-phonegap-vs-titanium-vs-rhodes">surgeworksmobile.com<br />
		</a></li>
<li><a href="http://www.infoworld.com/d/mobilize/iphone-development-tools-work-way-you-do-309">infoworld.com<br />
		</a></li>
<li><a href="http://mashable.com/2010/08/11/cross-platform-mobile-development-tools/">mashable.com<br />
		</a></li>
<li><a href="http://stackoverflow.com/questions/1482586/comparison-between-corona-phonegap-titanium">stackoverflow.com<br />
		</a></li>
<li><a href="http://jonathanstark.com/blog/2010/04/05/phonegap-vs-titanium-mobile-et-al/">jonathanstark.com<br />
		</a></li>
<li><a href="http://blog.ippon.fr/2010/05/27/mutualisation-des-developpements-mobiles-partie-2-client-natif/">blog.ippon.fr<br />
		</a></li>
<li><a href="http://tag4.us/web-development/comparison-app-inventor-droiddraw-rhomobile-phonegap-appcelerator-webview-and-aml/">tag4.us<br />
		</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.pastel.pro/frameworks-open-source-pour-developper-des-applications-fonctionnelles-sur-plusieurs-os-de-smartphones-iphones-android/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Pastel Whois – script de whois en ajax à intégrer dans votre site web</title>
		<link>http://blog.pastel.pro/pastel-whois-script-de-whois-en-ajax-a-integrer-dans-votre-site-web/</link>
		<comments>http://blog.pastel.pro/pastel-whois-script-de-whois-en-ajax-a-integrer-dans-votre-site-web/#comments</comments>
		<pubDate>Sun, 08 Aug 2010 20:36:46 +0000</pubDate>
		<dc:creator>Marc Farré</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Mobiles - Smartphones]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.pastel.pro/?p=383</guid>
		<description><![CDATA[Principe Ce script permet d&#39;int&#233;grer dans votre site internet un moteur de recherche de noms de domaine libres ou pas. R&#233;alis&#233; en ajax, il &#233;vite de recharger la page &#224; chaque recherche. Affichage du whois pour les noms de domaines non disponibles. Possibilit&#233; de rechercher jusqu&#39;&#224; 35 extensions &#224; la fois, dont les fran&#231;aises. Ces ]]></description>
			<content:encoded><![CDATA[<h4>Principe</h4>
<p>Ce script permet d&#39;int&eacute;grer dans votre site internet un moteur de recherche de noms de domaine libres ou pas.</p>
<p>R&eacute;alis&eacute; en ajax, il &eacute;vite de recharger la page &agrave; chaque recherche.</p>
<p>Affichage du whois pour les noms de domaines non disponibles.</p>
<p>Possibilit&eacute; de rechercher jusqu&#39;&agrave; 35 extensions &agrave; la fois, dont les fran&ccedil;aises. Ces extensions sont d&eacute;finies dans le fichier whois-server-list.php, donc vous pouvez en modifier la liste.</p>
<p>Le script est gratuit, et libre &agrave; vous de vous le customiser. N&#39;h&eacute;sitez pas &agrave; poster ici vos &eacute;ventuelles contributions.</p>
<h4>Exemple d&#39;int&eacute;gration</h4>
<p><a href="http://whois.pastel.pro">whois.pastel.pro</a> et <a href="http://www.pastel.pro">www.pastel.pro</a></p>
<p><a href="http://whois.pastel.pro"><img alt="whois.pastel.pro" class="alignnone size-full wp-image-389" height="225" src="http://blog.pastel.pro/wp-content/uploads/2010/08/whois.pastel.pro_.gif" title="whois.pastel.pro" width="550" /></a></p>
<h4>T&eacute;l&eacute;chargement</h4>
<p><a href="http://blog.pastel.pro/wp-content/uploads/2010/08/pastelwhois-v1.2.zip">Pastel Whois version 1.2</a></p>
<h4>Utilisation</h4>
<p>T&eacute;l&eacute;chargez, d&eacute;compressez et uploadez sur votre serveur.</p>
<p>Le fichier index.php est utilisable directement pour comprendre le fonctionnement.</p>
<p>N&#39;h&eacute;sitez pas &agrave; poster pour me demander ce que vous ne comprenez pas.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pastel.pro/pastel-whois-script-de-whois-en-ajax-a-integrer-dans-votre-site-web/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Tutoriel : Créer une page facebook pour son entreprise et faire sa promotion</title>
		<link>http://blog.pastel.pro/tutoriel-creer-une-page-facebook-pour-son-entreprise-et-faire-sa-promotion/</link>
		<comments>http://blog.pastel.pro/tutoriel-creer-une-page-facebook-pour-son-entreprise-et-faire-sa-promotion/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 08:11:55 +0000</pubDate>
		<dc:creator>Marc Farré</dc:creator>
				<category><![CDATA[Référencement]]></category>

		<guid isPermaLink="false">http://blog.pastel.pro/?p=350</guid>
		<description><![CDATA[Il existe de nombreuses pages web expliquant comment cr&#233;er sa page Facebook professionnelle, mais je n&#39;en ai trouv&#233; aucune qui permette d&#39;y arriver sans bidouiller, d&#39;o&#249; ce post illustr&#233; qui explique pas &#224; pas comment cr&#233;er sa page entreprise et personnaliser sa page d&#39;accueil avec du HTML. Le principe Vous avez d&#233;j&#224; un profil (qui ]]></description>
			<content:encoded><![CDATA[<p>Il existe de nombreuses pages web expliquant comment cr&eacute;er sa page Facebook professionnelle, mais je n&#39;en ai trouv&eacute; aucune qui permette d&#39;y arriver sans bidouiller, d&#39;o&ugrave; ce post illustr&eacute; qui explique pas &agrave; pas comment cr&eacute;er sa page entreprise et personnaliser sa page d&#39;accueil avec du HTML.</p>
<h4>Le principe</h4>
<p>Vous avez d&eacute;j&agrave; un profil (qui correspond &agrave; une personne physique) et vous cr&eacute;ez une page pro &agrave; partir de ce profil qui sera administrateur de cette page. Vous pourrez rajouter des profils qui seront administrateurs apr&egrave;s.</p>
<p>Remarque : Si vous avez d&eacute;j&agrave; fait votre page pro sur un profil perso et que vous avez d&eacute;j&agrave; des fans, suivez <a href="http://www.webrankinfo.com/dossiers/reseaux-sociaux/convertir-profil-facebook-en-page#utm_source=WebRankInfo&amp;utm_medium=email&amp;utm_campaign=newsletter-12-04-2011&amp;utm_content=newsletter-actualites">ce tuto</a> pour le convertir en pro.</p>
<h4>Le tutoriel</h4>
<h5>Cr&eacute;ation de la page</h5>
<ol>
<li>Connectez-vous &agrave; votre profil Facebook</li>
<li>Allez &agrave; la <a href="http://www.facebook.com/#!/pages/create.php">page facebook permettant de cr&eacute;er votre page pro (ici)</a></li>
<li>S&eacute;lectionnez l&#39;entreprise locale correspondant &agrave; votre activit&eacute;<a href="http://blog.pastel.pro/wp-content/uploads/2010/07/fb1.gif"><br />
		<img align="textTop" alt="" class="alignnone size-full wp-image-351" height="457" src="http://blog.pastel.pro/wp-content/uploads/2010/07/fb1.gif" title="fb1" width="471" /></a></li>
<li>Vous vous retrouvez sur votre page.</li>
</ol>
<h5>Remarques</h5>
<ul>
<li>En mode admin, votre page peut &ecirc;tre &quot;affich&eacute;e&quot; ou &quot;modifi&eacute;e&quot; : 2 &eacute;tats dans lesquels nous basculeront successivement dans la suite des explications gr&acirc;ce aux liens &quot;Modifier : Page&quot; et &quot;&lt;- Afficher la Page&quot;.</li>
<li>Si vous ne savez plus comment acc&eacute;der &agrave; votre page, cliquez sur &quot;compte&quot; (en haut &agrave; droite) -&gt; &quot;G&eacute;rer les Pages&quot; -&gt; &quot;Aller &agrave; la page&quot;<a href="http://blog.pastel.pro/wp-content/uploads/2010/07/fb3.gif"><br />
		<img alt="" class="alignnone size-full wp-image-359" height="363" src="http://blog.pastel.pro/wp-content/uploads/2010/07/fb3.gif" title="fb3" width="550" /></a></li>
</ul>
<h5>Cr&eacute;ation d&#39;une page d&#39;accueil personnalis&eacute;e en HTML</h5>
<p>MISE &Agrave; JOUR : <a href="http://web.developpez.com/actu/30237/Facebook-abandonne-le-FBML-pour-iFrame-et-ouvre-les-portes-de-la-plate-forme-au-HTML-au-CSS-et-au-JavaScript/">FBML est en train d&#39;&ecirc;tre abandonn&eacute; au profit de iframe</a></p>
<ol>
<li>dans &quot;modifier page&quot; -&gt; &quot;Applications&quot; -&gt; &quot;Static FBML&quot; (tout en bas) : cliquer sur &quot;Ajouter l&#39;application&quot;<a href="http://blog.pastel.pro/wp-content/uploads/2010/07/fb4.gif"><br />
		</a><a href="http://blog.pastel.pro/wp-content/uploads/2010/07/Static-FBML.jpg"><img alt="Static-FBML" class="alignnone size-full wp-image-506" height="101" src="http://blog.pastel.pro/wp-content/uploads/2010/07/Static-FBML.jpg" title="Static-FBML" width="612" /></a></li>
<li>Puis &quot;Acc&eacute;der &agrave; l&#39;application&quot;&nbsp;<a href="http://blog.pastel.pro/wp-content/uploads/2010/07/Static-FBML-access.jpg"> <br />
		<img alt="" class="alignnone size-full wp-image-507" height="88" src="http://blog.pastel.pro/wp-content/uploads/2010/07/Static-FBML-access.jpg" title="Static-FBML-access" width="555" /></a><br />
		et rentrer ici le titre et le code HTML/CSS de la page</li>
<li>dans &quot;&lt;- Afficher la Page&quot;, r&eacute;organiser les onglets : en cliquant sur l&#39;ic&ocirc;ne en forme de crayon pour en supprimer et en les glissant pour changer l&#39;ordre (on ne peut pas d&eacute;placer &quot;Mur&quot; et &quot;Infos&quot;).<br />
		<a href="http://blog.pastel.pro/wp-content/uploads/2010/07/fb7.gif"><img alt="" class="alignnone size-full wp-image-364" height="109" src="http://blog.pastel.pro/wp-content/uploads/2010/07/fb7.gif" title="fb7" width="573" /></a></li>
</ol>
<p>Remarque (17/12/2010) : il n&#39;est malheureusement plus possible de d&eacute;finir l&#39;onglet qui va s&#39;afficher par d&eacute;faut : on arrive toujours sur le mur.</p>
<h5>Ajouter des administrateurs</h5>
<p>Dans &quot;Modifier : Page&quot; -&gt; &quot;G&eacute;rer les administrateurs&quot; : ajouter l&#39;adresse mail d&#39;un profil facebook</p>
<h4>La promotion de la page</h4>
<p>Votre but : avoir un maximum de fan. C&#39;est d&#39;autant plus int&eacute;ressant que sur la page du profil public de chaque fan est affich&eacute; un lien en dur vers votre page facebook (s&#39;il ne l&#39;a pas rendu priv&eacute;).</p>
<h5>Avoir un contenu int&eacute;ressant et vivant</h5>
<ul>
<li>Cr&eacute;er des &eacute;v&eacute;nements Facebook pour communiquer sur vos promotions en cours, &#8230;</li>
<li>Faire des pubs Facebook cibl&eacute;es (&quot;Social Ads&quot; &#8211; payant)</li>
<li>Ajouter des sondages, concours, &#8230; pour faire participer les gens</li>
</ul>
<h5>Installer un bouton &quot;j&#39;aime&quot; sur son site ou blog</h5>
<p>Utilisez les <a href="http://developers.facebook.com/docs/share">codes fournis par facebook</a>.</p>
<p>Ou suivez le <a href="http://goopple.fr/2010/04/29/facebook-comment-installer-un-bouton-jaime-like-sur-un-blog-wordpress">tutoriel de goopple</a> : simplement, au niveau du code &quot;connect.facebook.net/en_US/all.js&quot; qui est &agrave; mettre apr&egrave;s le &lt;body&gt;, il faut remplacer en_US par fr_FR</p>
<h5>Avoir une URL simplifi&eacute;e</h5>
<p>Quelque soit le nombre de fans, vous pouvez avoir une adresse simplifi&eacute;e :</p>
<ol>
<li>allez sur <a href="http://www.facebook.com/username/">cette page</a></li>
<li>cliquez sur &quot;D&eacute;finissez un nom d&#39;utilisateur pour vos Pages.&quot;</li>
</ol>
<h4>Exemples de pages Facebook pour sa soci&eacute;t&eacute;</h4>
<h5><a href="http://www.facebook.com/pages/PastelPro/118417558206152">La page de pastel.pro<br />
	</a></h5>
<p><a href="http://www.facebook.com/pages/PastelPro/118417558206152"><img alt="" class="alignnone size-full wp-image-377" height="405" src="http://blog.pastel.pro/wp-content/uploads/2010/07/pastel.pro-facebook.jpg" title="pastel.pro-facebook" width="550" /></a></p>
<h5><a href="http://facebookshowcase.net">Le site facebookshowcase.net qui permet de donner des id&eacute;es<br />
	</a></h5>
<p><a href="http://blog.pastel.pro/wp-content/uploads/2010/07/fb9.jpg"><img alt="" class="alignnone size-full wp-image-366" height="351" src="http://blog.pastel.pro/wp-content/uploads/2010/07/fb9.jpg" title="fb9" width="550" /></a><a href="http://facebookshowcase.net"><br />
	</a></p>
<h4>Sources</h4>
<ul>
<li><a href="http://www.hyperarts.com/blog/tutorial-facebook-pages-with-static-fbml-application/">hyperarts.com</a></li>
<li><a href="http://lorrainesiew.wordpress.com/2009/07/04/facebook-pages-introduction-to-fbml/"> lorrainesiew.wordpress.com</a></li>
<li>fr.insidefacebook.com : <a href="http://fr.insidefacebook.com/2009/07/20/10-choses-que-vous-devez-savoir-sur-les-pages-facebook/">cette page</a> et <a href="http://fr.insidefacebook.com/2009/01/28/10-choses-a-faire-absolument-pour-promouvoir-efficacement-votre-marque-sur-facebook/">celle-ci</a></li>
<li><a href="http://moderateur.blog.regionsjob.com/index.php/post/Comment-cr%C3%A9er-une-page-fan-sur-Facebook">blog.regionsjob.com</a></li>
<li><a href="http://www.devblog.fr/2010/11/04/onglet-facebook-personnalise-et-conditionnel/">devblog.fr<br />
		</a></li>
<li><a href="http://facebook-france.com/facebook-pousse-accidentellement-nouvelle-mise-en-page-la-page-comptes-et-supprime-les-onglets-landing">facebook france<br />
		</a></li>
<li>et surtout mon exp&eacute;rience !</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.pastel.pro/tutoriel-creer-une-page-facebook-pour-son-entreprise-et-faire-sa-promotion/feed/</wfw:commentRss>
		<slash:comments>58</slash:comments>
		</item>
		<item>
		<title>Intégrer une vidéo dans un site web, compatible ie, firefox, safari, chrome, opera, iphone, ipad, android, &#8230;</title>
		<link>http://blog.pastel.pro/integrer-une-video-dans-un-site-web-compatible-ie-firefox-safari-chrome-opera-iphone-ipad-android/</link>
		<comments>http://blog.pastel.pro/integrer-une-video-dans-un-site-web-compatible-ie-firefox-safari-chrome-opera-iphone-ipad-android/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 08:29:35 +0000</pubDate>
		<dc:creator>Marc Farré</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://blog.pastel.pro/?p=310</guid>
		<description><![CDATA[Comment afficher une vid&#233;o sur une page internet en combinant les technologies HTML5 avec la balise &#60;video&#62; et flash pour les navigateurs non compatibles ? Avec un code HTML qui affiche les liens vers 3 formats de fichiers vid&#233;o dans cet ordre : HTML5 MP4 HTML5 WebM HTML5 OGG Flash MP4 (pas besoin de FLV ]]></description>
			<content:encoded><![CDATA[<h4>Comment afficher une vid&eacute;o sur une page internet en combinant les technologies HTML5 avec la balise &lt;video&gt; et flash pour les navigateurs non compatibles ?</h4>
<p>Avec un code HTML qui affiche les liens vers 3 formats de fichiers vid&eacute;o dans cet ordre :</p>
<ol>
<li>HTML5 MP4</li>
<li>HTML5 WebM</li>
<li>HTML5 OGG</li>
<li>Flash MP4 (pas besoin de FLV depuis la version 9 rev 3 de flash)</li>
</ol>
<p>Le navigateur sautera le format qu&#39;il ne connait pas jusqu&#39;&agrave; trouver celui qu&#39;il sait lire.</p>
<p>Un script javascript permettra d&#39;afficher les boutons de contr&ocirc;le (plein &eacute;cran, &#8230;).</p>
<h4>M&eacute;thode :</h4>
<ol>
<li><strong>Encoder la video</strong> dans ces 3 formats : MP4, WebM (VP8) et Theora (Ogg/Ogv) avec le <a href="http://www.mirovideoconverter.com">logiciel gratuit et open source mirovideoconverter</a> (mac et windows).</li>
<li><strong>Faire une capture de la vid&eacute;o</strong> au format png, de la m&ecirc;me taille que la vid&eacute;o.</li>
<li><strong>T&eacute;l&eacute;charger le <a href="http://videojs.com/">script gratuit et open source videojs</a></strong> et le d&eacute;compresser.</li>
<li><strong>&Eacute;diter le fichier demo.html</strong> pour remplacer les fichiers &quot;oceans-clip&quot; par vos liens (attentions &agrave; changer .ogg par .ogv) et adaptez les &quot;width&quot; et &quot;height&quot; &agrave; ceux de votre vid&eacute;o.</li>
<li>Charger les vid&eacute;os sur un serveur performant comme <a href="https://s3.amazonaws.com/">amazon s3</a> par ex.</li>
</ol>
<p><a href="http://www.mirovideoconverter.com/"><img alt="" class="alignnone size-full wp-image-319" height="445" src="http://blog.pastel.pro/wp-content/uploads/2010/07/miro.png" title="miro" width="365" /></a></p>
<p><a href="http://videojs.com/"><img alt="" class="size-full wp-image-314" height="356" src="http://blog.pastel.pro/wp-content/uploads/2010/07/videojs.png" title="videojs" width="333" /></a></p>
<h4><a href="http://blog.pastel.pro/demos/video-integration/">D&eacute;mo</a></h4>
<p><a href="http://blog.pastel.pro/demos/video-integration/"><img alt="" class="alignnone size-full wp-image-323" height="325" src="http://blog.pastel.pro/wp-content/uploads/2010/07/video-demo.jpg" title="video-demo" width="570" /></a></p>
<h4>Sources</h4>
<p>Expliquent tr&egrave;s bien le fonctionnement et donnent des d&eacute;tails qui peuvent &ecirc;tre utiles &#8211; Anglais :</p>
<ul>
<li><a href="http://camendesign.com/code/video_for_everybody">camendesign.com</a></li>
<li><a href="http://www.webmonkey.com/2010/05/embed-videos-in-your-web-pages-using-html5/">webmonkey.com<br />
		</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.pastel.pro/integrer-une-video-dans-un-site-web-compatible-ie-firefox-safari-chrome-opera-iphone-ipad-android/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Un formulaire de recherche avec css et jquery</title>
		<link>http://blog.pastel.pro/un-formulaire-de-recherche-avec-css-et-jquery/</link>
		<comments>http://blog.pastel.pro/un-formulaire-de-recherche-avec-css-et-jquery/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 08:24:23 +0000</pubDate>
		<dc:creator>Marc Farré</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.pastel.pro/?p=296</guid>
		<description><![CDATA[Voir la d&#233;mo T&#233;l&#233;charger Le script jQuery permet : de conserver le style du hover (ici fond bleu d&#233;grad&#233;) une fois qu&#39;on a pris le focus, m&#234;me si la souris n&#39;est plus au-dessus et de la lib&#233;rer quand on perd le focus d&#39;effacer la valeur &#34;Chercher &#8230;&#34; quand on prend le focus, et de le ]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.pastel.pro/demos/search-form/"><img alt="" class="alignnone size-full wp-image-297" height="119" src="http://blog.pastel.pro/wp-content/uploads/2010/07/rechercher.png" title="rechercher" width="550" /></a><big><a href="http://blog.pastel.pro/demos/search-form/"><br />
	</a></big></p>
<p><big><a href="http://blog.pastel.pro/demos/search-form/">Voir la d&eacute;mo<br />
	</a></big></p>
<p><a href="http://blog.pastel.pro/wp-content/uploads/2010/07/form.zip"><big>T&eacute;l&eacute;charger</big></a></p>
<p>Le script jQuery permet :</p>
<ul>
<li>de conserver le style du hover (ici fond bleu d&eacute;grad&eacute;) une fois qu&#39;on a pris le focus, m&ecirc;me si la souris n&#39;est plus au-dessus et de la lib&eacute;rer quand on perd le focus</li>
<li>d&#39;effacer la valeur &quot;Chercher &#8230;&quot; quand on prend le focus, et de le r&eacute;afficher si l&#39;utilisateur a laiss&eacute; le champ vide</li>
</ul>
<p><cite><a href="http://line25.com/tutorials/how-to-enhance-your-form-input-fields-with-jquery">Source remani&eacute;e<br />
	</a></cite></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pastel.pro/un-formulaire-de-recherche-avec-css-et-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

