<?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>DevBlog</title>
	<atom:link href="http://www.devblog.fr/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.devblog.fr</link>
	<description>Blog dédié aux langages web. Scripts et ressources pour webmaster.</description>
	<lastBuildDate>Thu, 29 Jul 2010 10:38:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Carrousel automatique avec JQuery</title>
		<link>http://www.devblog.fr/2010/07/27/carrousel-automatique-avec-jquery/</link>
		<comments>http://www.devblog.fr/2010/07/27/carrousel-automatique-avec-jquery/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 16:05:27 +0000</pubDate>
		<dc:creator>Virginie</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[carrousel]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.devblog.fr/?p=272</guid>
		<description><![CDATA[Petit script de carrousel horizontal, avec défilement automatique, et témoins lumineux pour vous à quelle &#8220;page&#8221; du carroussel on est.
Très facile à customiser.
Voir la démo : carrousel automatique
1. Les inclusions

Inclure JQuery
Inclure carrousel.js
Inclure carrousel.css

2. Le html

&#60;!-- la classe doit être carrousel, l&#039;id est celui que vous voulez --&#62;
&#60;div class=&#34;carrousel&#34; id=&#34;mon-carrousel&#34;&#62;
&#60;!-- div obligatoire --&#62;
&#60;div class=&#34;interieur-carroussel&#34;&#62;
&#60;!-- div obligatoire [...]]]></description>
			<content:encoded><![CDATA[<p>Petit script de carrousel horizontal, avec défilement automatique, et témoins lumineux pour vous à quelle &#8220;page&#8221; du carroussel on est.<br />
Très facile à customiser.</p>
<p>Voir la démo : <a href="http://www.devblog.fr/demo/carrousel-automatique/">carrousel automatique</a><span id="more-272"></span></p>
<h2>1. Les inclusions</h2>
<ul>
<li>Inclure JQuery</li>
<li>Inclure <a href="http://www.devblog.fr/demo/carrousel-automatique/carrousel.js">carrousel.js</a></li>
<li>Inclure <a href="http://www.devblog.fr/demo/carrousel-automatique/carrousel.css">carrousel.css</a></li>
</ul>
<h2>2. Le html</h2>
<pre class="brush: html">
&lt;!-- la classe doit être carrousel, l&#039;id est celui que vous voulez --&gt;
&lt;div class=&quot;carrousel&quot; id=&quot;mon-carrousel&quot;&gt;
&lt;!-- div obligatoire --&gt;
&lt;div class=&quot;interieur-carroussel&quot;&gt;
&lt;!-- div obligatoire --&gt;
&lt;div class=&quot;items&quot;&gt;
&lt;!-- chaque élément doit être dans un div class item --&gt;
&lt;div class=&quot;item&quot;&gt;
&lt;img src=&quot;images/1.png&quot; alt=&quot;&quot; /&gt;
&lt;/div&gt;
&lt;div class=&quot;item&quot;&gt;
&lt;img src=&quot;images/6.png&quot; alt=&quot;&quot; /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- div obligatoire (placement des témoins) --&gt;
&lt;div class=&quot;temoins&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
</pre>
<h2>3. Personnalisation</h2>
<p>La feuille de style carrousel.css contient déjà tout ce qui est générique pour styler votre carrousel. Vous n’avez plus qu’à ajouter dans votre feuille de style les éléments de largeur et de hauteur propre à votre carrousel, en utilisant l’indentifiant de votre caroussel.</p>
<p>Voici les éléments que vous devez obligatoirement styler : (les nombres sont des exemples)</p>
<pre class="brush: css">
#mon-carrousel{
width:531px; /* la largeur totale du carrousel */
height:373px;	/* la hauteur totale du carrousel (prévoir la place pour le div.temoins) */
}

#mon-carrousel .interieur-carrousel
{
margin-left:0px; /* décalage entre le début du caroussel et l&#039;endroit où disparaissent les images */
margin-top:0px; /* décalage par rapport à en haut du carrousel */
width: 533px; /* la largeur de l&#039;interieur = (largeur d&#039;un item + margin right d&#039;un item)*(nombres d&#039;item étant apparants en même
temps) */
height:331px;	/* la hauteur d&#039;un item */
}

#mon-carrousel .item{
width:259px;	/* la largeur d&#039;un item */
margin-right:13px; /* son espacement éventuel par rapport à l&#039;item suivant */
height:331px; /* la hauteur d&#039;un item */
}
</pre>
<h2>4. Appeler le carrousel</h2>
<p>Dans un script externe ou dans carroussel.js, mettre</p>
<pre class="brush: javascript">
$(window).load(
function(){
carrousel(&#039;mon-carrousel&#039;,272,2,3000,1000,&#039;left&#039;,&#039;images/on.png&#039;,&#039;images/off.png&#039;);
}
);
</pre>
<p>La fonction carrousel prend comme arguments :</p>
<ul>
<li>l’id du carrousel à animer</li>
<li>la largeur à déplacer (largeur d’un item+son margin éventuel)</li>
<li>le nombre d’éléments par &#8220;page&#8221; (nombre d&#8217;éléments qui se déplacent à chaque itération)</li>
<li>la vitesse de déplacement (’slow’,&#8217;normal’,&#8217;fast’, ou un nombre de milli-secondes)</li>
<li>le temps de pause entre chaque itération (en milli-secondes)</li>
<li>le sens de départ du carrousel (laisser left)</li>
<li>le chemin de l&#8217;image représentant le témoin de page allumé</li>
<li>le chemin de l&#8217;image représentant le témoin de page éteint</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.devblog.fr/2010/07/27/carrousel-automatique-avec-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Equivalent marquee en javascript avec JQuery</title>
		<link>http://www.devblog.fr/2010/07/21/equivalent-marquee-en-javascript-avec-jquery/</link>
		<comments>http://www.devblog.fr/2010/07/21/equivalent-marquee-en-javascript-avec-jquery/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 11:09:23 +0000</pubDate>
		<dc:creator>Virginie</dc:creator>
				<category><![CDATA[Non classé]]></category>

		<guid isPermaLink="false">http://www.devblog.fr/?p=260</guid>
		<description><![CDATA[Pour faire défiler un texte en XHTML, le W3C n&#8217;autorise pas la balise marquee (ce qui est assez logique sémentiquement : faire défiler un texte relève de la forme et non du fond).
Voici un petit script JS qui permet de faire défiler un texte de droite à gauche.

Code HTML :


&#60;div id=&#039;marquee-wrapper&#039;&#62;
&#60;span id=&#039;marquee&#039;&#62;
Mon texte à faire [...]]]></description>
			<content:encoded><![CDATA[<p>Pour faire défiler un texte en XHTML, le W3C n&#8217;autorise pas la balise marquee (ce qui est assez logique sémentiquement : faire défiler un texte relève de la forme et non du fond).</p>
<p>Voici un petit script JS qui permet de faire défiler un texte de droite à gauche.</p>
<p><span id="more-260"></span></p>
<h2>Code HTML :</h2>
<pre class="brush: html">

&lt;div id=&#039;marquee-wrapper&#039;&gt;
&lt;span id=&#039;marquee&#039;&gt;
Mon texte à faire défiler
&lt;/span&gt;
&lt;/div&gt;
</pre>
<h2>Code CSS :</h2>
<pre class="brush: css">
#marquee-wrapper
{
position:relative;
width:100%;
overflow:hidden;
height:100%;
}

#marquee
{
position:absolute;
top:0px;
left:0px;
white-space : nowrap;
}
</pre>
<h2>Et le code JS :</h2>
<h3>La fonction JS :</h3>
<pre class="brush: js">
function marquee(idWrapper,idMarquee,vitesse)
/*
* idWrapper : l&#039;identifiant du div autour du span contenant le texte à faire défiler
*	idMarquee : l&#039;identifiant du span autour du texte
*	vitesse : nombre de millisecondes entre chaque déplacement de 1px
*/
{
var oIdWrapper=$(&#039;#&#039;+idWrapper);
var oIdMarquee=$(&#039;#&#039;+idMarquee);

var width=oIdMarquee.width();
var width2=oIdWrapper.width();

id_inst=setTimeout(function() {marquee(idWrapper,idMarquee,vitesse)},vitesse);

var l=parseInt(oIdMarquee.css(&#039;left&#039;));
oIdMarquee.css({left:(l-1)+&#039;px&#039;});

if((-parseInt(oIdMarquee.css(&#039;left&#039;)))&gt;=(width))
{
oIdMarquee.css({left:(width2)+&#039;px&#039;});
}
}
</pre>
<h3>L&#8217;appel de la fonction :</h3>
<pre class="brush: js">
$(window).load(
function(){
marquee(&#039;marquee-wrapper&#039;,&#039;marquee&#039;,10);
}
);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.devblog.fr/2010/07/21/equivalent-marquee-en-javascript-avec-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wordpress 3 bientôt disponible</title>
		<link>http://www.devblog.fr/2010/05/28/wordpress-3-bientot-disponible/</link>
		<comments>http://www.devblog.fr/2010/05/28/wordpress-3-bientot-disponible/#comments</comments>
		<pubDate>Fri, 28 May 2010 09:43:37 +0000</pubDate>
		<dc:creator>Benoit</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[wordpress 3]]></category>
		<category><![CDATA[wordpress 3.0]]></category>

		<guid isPermaLink="false">http://www.devblog.fr/2010/05/28/wordpress-3-bientot-disponible/</guid>
		<description><![CDATA[Wordpress 3.0 est disponible depuis aujourd&#8217;hui (28 mai) en &#8220;Release Candidate 1&#8243;. C&#8217;est la dernière étape avant le lancement officiel d&#8217;une version finale.
Une nouvelle mouture du plus célèbre outil de création de blog très attendue. Avec notamment une gestion avancée des menus et la possibilité de créer des &#8220;types&#8221; de contenus pour aller plus loin [...]]]></description>
			<content:encoded><![CDATA[<p>Wordpress 3.0 est disponible depuis aujourd&#8217;hui (28 mai) en &#8220;Release Candidate 1&#8243;. C&#8217;est la dernière étape avant le lancement officiel d&#8217;une version finale.<br />
Une nouvelle mouture du plus célèbre outil de création de blog très attendue. Avec notamment une gestion avancée des menus et la possibilité de créer des &#8220;types&#8221; de contenus pour aller plus loin que la simple création de pages ou d&#8217;articles.  Wordpress bientôt meilleur CMS du monde libre ? Probablement.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devblog.fr/2010/05/28/wordpress-3-bientot-disponible/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Améliorer les performances de Wordpress avec &#8220;Quick Cache&#8221;</title>
		<link>http://www.devblog.fr/2010/05/25/ameliorer-les-performances-de-wordpress-avec-quick-cache/</link>
		<comments>http://www.devblog.fr/2010/05/25/ameliorer-les-performances-de-wordpress-avec-quick-cache/#comments</comments>
		<pubDate>Tue, 25 May 2010 13:30:15 +0000</pubDate>
		<dc:creator>Benoit</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.devblog.fr/?p=255</guid>
		<description><![CDATA[J&#8217;ai longtemps cherché et enfin trouvé un plugin de cache performant pour Wordpress.
Le principe est simple : générer des fichiers &#8220;statiques&#8221; qui seront servis aux visiteurs afin d&#8217;économiser le serveur. Notamment en évitant de surcharger inutilement le serveur MySQL et soulager le CPU en évitant un recours systématique à PHP.
Quick Cache puisque c&#8217;est son nom, [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai longtemps cherché et enfin trouvé un plugin de cache performant pour Wordpress.</p>
<p>Le principe est simple : générer des fichiers &#8220;statiques&#8221; qui seront servis aux visiteurs afin d&#8217;économiser le serveur. Notamment en évitant de surcharger inutilement le serveur MySQL et soulager le CPU en évitant un recours systématique à PHP.</p>
<p><a href="http://wordpress.org/extend/plugins/quick-cache/">Quick Cache</a> puisque c&#8217;est son nom, s&#8217;installe sans problème et dispose d&#8217;un back-office très bien fait. Avec à la clé une mise en place très simple : activer simplement la fonction de cache (première option proposée), et des performances au rendez-vous. Incontournable pour tout ceux qui veulent améliorer les performances de leur site Wordpress.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devblog.fr/2010/05/25/ameliorer-les-performances-de-wordpress-avec-quick-cache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mettre en ligne un site Wordpress</title>
		<link>http://www.devblog.fr/2010/05/03/mettre-en-ligne-un-site-wordpress/</link>
		<comments>http://www.devblog.fr/2010/05/03/mettre-en-ligne-un-site-wordpress/#comments</comments>
		<pubDate>Mon, 03 May 2010 09:21:15 +0000</pubDate>
		<dc:creator>Virginie</dc:creator>
				<category><![CDATA[Non classé]]></category>

		<guid isPermaLink="false">http://www.devblog.fr/?p=249</guid>
		<description><![CDATA[Wordpress stocke à différents endroits en base de données l&#8217;url du site. Ce qui peut être problématique lorsqu&#8217;on met en ligne un site développé en local.
Voici les requêtes à lancer sur la base de données pour changer l&#8217;url du site :

update `wp_posts` set post_content=replace(post_content,&#039;ancien.dev&#039;,&#039;www.nouveau.com&#039;);
update `wp_posts` set guid=replace(guid,&#039;ancien.dev&#039;,&#039;www.nouveau.com&#039;);
update `wp_options` set option_value=replace(option_value,&#039;ancien.dev&#039;,&#039;www.nouveau.com&#039;);
update `wp_links` set link_url=replace(link_url,&#039;ancien.dev&#039;,&#039;www.nouveau.com&#039;);
update `wp_links` set [...]]]></description>
			<content:encoded><![CDATA[<p>Wordpress stocke à différents endroits en base de données l&#8217;url du site. Ce qui peut être problématique lorsqu&#8217;on met en ligne un site développé en local.<span id="more-249"></span></p>
<p>Voici les requêtes à lancer sur la base de données pour changer l&#8217;url du site :</p>
<pre class="brush: sql">
update `wp_posts` set post_content=replace(post_content,&#039;ancien.dev&#039;,&#039;www.nouveau.com&#039;);
update `wp_posts` set guid=replace(guid,&#039;ancien.dev&#039;,&#039;www.nouveau.com&#039;);
update `wp_options` set option_value=replace(option_value,&#039;ancien.dev&#039;,&#039;www.nouveau.com&#039;);
update `wp_links` set link_url=replace(link_url,&#039;ancien.dev&#039;,&#039;www.nouveau.com&#039;);
update `wp_links` set link_image=replace(link_image,&#039;ancien.dev&#039;,&#039;www.nouveau.com&#039;);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.devblog.fr/2010/05/03/mettre-en-ligne-un-site-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Internet Explorer 6 sur Mac</title>
		<link>http://www.devblog.fr/2010/02/04/internet-explorer-6-sur-mac/</link>
		<comments>http://www.devblog.fr/2010/02/04/internet-explorer-6-sur-mac/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 13:04:42 +0000</pubDate>
		<dc:creator>Virginie</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://www.devblog.fr/?p=246</guid>
		<description><![CDATA[Installer Internet Explorer 6, 7, et 8 sur Mac OS X, sans passer par Bootcamp ou des logiciels payants et lourds comme Fusion ou Parallels, c&#8217;est possible gràce à Wine :
http://wiki.winehq.org/MacOSX/Installing
Tout simplement génial.
]]></description>
			<content:encoded><![CDATA[<p>Installer Internet Explorer 6, 7, et 8 sur Mac OS X, sans passer par Bootcamp ou des logiciels payants et lourds comme Fusion ou Parallels, c&#8217;est possible gràce à Wine :</p>
<p><a href="http://wiki.winehq.org/MacOSX/Installing">http://wiki.winehq.org/MacOSX/Installing</a></p>
<p>Tout simplement génial.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devblog.fr/2010/02/04/internet-explorer-6-sur-mac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Créer une miniature en php sans rogner</title>
		<link>http://www.devblog.fr/2010/01/29/creer-une-miniature-en-php-sans-rogner/</link>
		<comments>http://www.devblog.fr/2010/01/29/creer-une-miniature-en-php-sans-rogner/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 15:48:13 +0000</pubDate>
		<dc:creator>Virginie</dc:creator>
				<category><![CDATA[Non classé]]></category>

		<guid isPermaLink="false">http://www.devblog.fr/?p=239</guid>
		<description><![CDATA[But : créer une miniature à partir d’une image, avec une largeur et une hauteur fixes, sans agrandir l’image (pour ne pas avoir une miniature de mauvaise qualité) si elle est plus petite que la taille de la miniature souhaitée.
Ne pas rogner l&#8217;image, la centrer en hauteur et en largeur et remplir l&#8217;espace vide avec [...]]]></description>
			<content:encoded><![CDATA[<p>But : créer une miniature à partir d’une image, avec une largeur et une hauteur fixes, sans agrandir l’image (pour ne pas avoir une miniature de mauvaise qualité) si elle est plus petite que la taille de la miniature souhaitée.<br />
Ne pas rogner l&#8217;image, la centrer en hauteur et en largeur et remplir l&#8217;espace vide avec une couleur de fond.<span id="more-239"></span><br />
(Pour redimensionner une image en rognant les côtés trop longs, voir cet article <a href="http://www.devblog.fr/2010/01/12/creer-une-miniature-en-php/">miniature php</a>)<br />
On a 3 cas possibles :</p>
<p><a href="http://www.devblog.fr/wp-content/uploads/2010/01/miniature2.jpg"><img class="alignnone size-full wp-image-241" title="miniature2" src="http://www.devblog.fr/wp-content/uploads/2010/01/miniature2.jpg" alt="" width="314" height="252" /></a><br />
Dans tous les cas, on commence par remplir le fond de la bonne couleur.<br />
Cas n°1 : L’image est plus petite en hauteur et en largeur : on recopie l&#8217;image telle quelle, sans la redimensionner, on la centre en hauteur et en largeur<br />
Cas n°2 : L’image sort du cadre et est proportionnement trop grande en largeur : on redimensionne pour avoir la bonne largeur et la centre en hauteur<br />
Cas n°3 : L’image sort du cadre et est proportionnement trop grande en hauteur : on redimensionne pour avoir la bonne hauteur et on centre en largeur</p>
<pre class="brush: php">
function creerMiniature($chemin,$W,$H,$color=array(0,0,0))
/*
*	$chemin : chemin de l&#039;image
*	$W : largeur de la miniature
*	$H : hauteur de la miniature
*	$color : couleur du fond, tableau(r,g,b)
*/
{

$chemin2=substr($chemin,0,strrpos($chemin,&#039;.&#039;)).&#039;_mini.jpg&#039;;

$img_src_resource=imagecreatefromjpeg($chemin);
$img_dst_resource = imagecreatetruecolor($W, $H);
$color=imagecolorallocate($img_dst_resource,$color[0],$color[1],$color[2]);
imagefill($img_dst_resource,0,0,$color);

list( $w, $h ) = getimagesize($chemin);

//L’image est plus petite en hauteur et en largeur :
//On recopie l&#039;image telle quelle, sans la redimensionner, on la centre en hauteur et en largeur
if(($w&lt;=$W) and ($h&lt;=$H))
{
imagecopyresampled($img_dst_resource,$img_src_resource,((int)(($W-$w)/2)),((int)(($H-$h)/2)),0,0,$w,$h,$w,$h);
imagejpeg( $img_dst_resource, $chemin2,100);
}

//Cas n°2 : L’image sort du cadre et est proportionnement trop grande en largeur
//On redimentionne pour avoir la bonne largeur et la centre en hauteur
if((($w&gt;$W) or ($h&gt;$H)) and (($w/$h)&gt;($W/$H)))
{
$new_w=$W;
$new_h=($h*$new_w)/$w;
imagecopyresampled($img_dst_resource,$img_src_resource,0,((int)(($H-$new_h)/2)),0,0,$new_w,$new_h,$w,$h);
imagejpeg( $img_dst_resource, $chemin2,100);
}

//Cas n°3 : L’image sort du cadre et est proportionnement trop grande en hauteur :
//On redimentionne pour avoir la bonne hauteur et on centre en largeur
if((($w&gt;$W) or ($h&gt;$H)) and (($w/$h)&lt;=($W/$H)))
{
$new_h=$H;
$new_w=($w*$new_h)/$h;
imagecopyresampled($img_dst_resource,$img_src_resource,((int)(($W-$new_w)/2)),0,0,0,$new_w,$new_h,$w,$h);
imagejpeg( $img_dst_resource, $chemin2,100);
}

}
</pre>
<p>Exemple :</p>
<pre class="brush: php">
creerMiniature(&#039;img/1.jpg&#039;,120,60,array(255,255,255));
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.devblog.fr/2010/01/29/creer-une-miniature-en-php-sans-rogner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Carrousel horizontal avec JQuery</title>
		<link>http://www.devblog.fr/2010/01/26/carrousel-horizontal-avec-jquery/</link>
		<comments>http://www.devblog.fr/2010/01/26/carrousel-horizontal-avec-jquery/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 17:49:53 +0000</pubDate>
		<dc:creator>Virginie</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[carrousel]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.devblog.fr/?p=228</guid>
		<description><![CDATA[Un caroussel horizontal qui peut faire défiler des images ou du html.
Plusieurs carrousels possibles sur la même page.
Très facile à customiser.

Voir la démo : carrousels horizontaux
1. Les inclusions
- Inclure JQuery
- Inclure carrousel.js
- Inclure carrousel.css
2. Le html

&#60;!-- la classe doit être carrousel, l&#039;id est celui que vous voulez --&#62;
&#60;div class=&#34;carrousel&#34; id=&#34;mon-carrousel&#34;&#62;

	&#60;!-- flèche pour la navigation --&#62;
	&#60;a [...]]]></description>
			<content:encoded><![CDATA[<p>Un caroussel horizontal qui peut faire défiler des images ou du html.<br />
Plusieurs carrousels possibles sur la même page.<br />
Très facile à customiser.<br />
<span id="more-228"></span></p>
<h3>Voir la démo :<a href="http://devblog.fr/demo/carrousel-horizontal/"> carrousels horizontaux</a></h3>
<h3>1. Les inclusions</h3>
<p>- Inclure JQuery<br />
- Inclure <a href="http://devblog.fr/demo/carrousel-horizontal/carrousel.js">carrousel.js</a><br />
- Inclure <a href="http://devblog.fr/demo/carrousel-horizontal/carrousel.css">carrousel.css</a></p>
<h3>2. Le html</h3>
<pre class="brush: html">
&lt;!-- la classe doit être carrousel, l&#039;id est celui que vous voulez --&gt;
&lt;div class=&quot;carrousel&quot; id=&quot;mon-carrousel&quot;&gt;

	&lt;!-- flèche pour la navigation --&gt;
	&lt;a href=&quot;#&quot; class=&quot;prev&quot;&gt;&amp;lt;&lt;/a&gt;

		&lt;!-- div obligatoire --&gt;
		&lt;div class=&quot;interieur-carrousel&quot;&gt;

			&lt;!-- div obligatoire --&gt;
			&lt;div class=&quot;items&quot;&gt;

				&lt;!-- chaque élément doit être dans un div class item --&gt;
				&lt;div class=&quot;item&quot;&gt;
					Du html, ça peut être du texte, une image...
				&lt;/div&gt;

				&lt;div class=&quot;item&quot;&gt;
					Autre séquence html, ça peut être du texte, une image...
				&lt;/div&gt;

			&lt;/div&gt;

		&lt;/div&gt;
		&lt;a href=&quot;#&quot; class=&quot;next&quot;&gt;&amp;gt;&lt;/a&gt;
	&lt;/div&gt;
&lt;/div&gt;
</pre>
<h3>3. Personnalisation</h3>
<p>La feuille de style carrousel.css contient déjà tout ce qui est générique pour styler votre carrousel. Vous n&#8217;avez plus qu&#8217;à ajouter dans votre feuille de style les éléments de largeur et de hauteur propre à votre carrousel, en utilisant l&#8217;indentifiant de votre caroussel.</p>
<p>Voici les éléments que vous devez obligatoirement styler : (les nombres sont des exemples)</p>
<pre class="brush: css">
#mon-carrousel{
	width:350px; /* la largeur totale du carrousel */
	height:190px;	/* la hauteur totale du carrousel */
}
#mon-carrousel .next
{
	right:15px; /* le positionnement de la flèche &quot;suivant&quot; par rapport à en haut à droite */
	top:90px;
}
#mon-carrousel .prev
{
	left:15px; /* le positionnement de la flèche &quot;précédente&quot; par rapport à en haut à gauche */
	top:90px;
}

#mon-carrousel .interieur-carrousel
{
	margin-left:70px; /* décalage entre le début du caroussel et l&#039;endroit où disparaissent les images */
	margin-top:17px; /* décalage par rapport à en haut du carrousel */
	width: 630px; /* la largeur de l&#039;interieur = (largeur d&#039;un item + margin right d&#039;un item)*(nombres d&#039;item étant apparants en même temps) */
	height:150px;	/* la hauteur d&#039;un item */
}

#mon-carrousel .item{
	width:200px;	/* la largeur d&#039;un item */
	margin-right:10px; /* son espacement éventuel par rapport à l&#039;item suivant */
}
</pre>
<p>Vous pouvez évidement styler d&#8217;avantage, mettre des background, etc. !</p>
<h3>4. Appeler le carrousel</h3>
<p>Dans un script externe ou dans carroussel.js, mettre</p>
<pre class="brush: javascript">
$(document).ready(

	function(){
		carrousel(&#039;mon-carrousel&#039;,560,1,3000);
	}
);
</pre>
<p>La fonction carrousel prend comme arguments :<br />
- l&#8217;id du carrousel à animer<br />
- la largeur à déplacer (largeur d&#8217;un item+son margin éventuel)<br />
- le nombre d&#8217;éléments étant apparents en même temps<br />
- la vitesse de déplacement (&#8217;slow&#8217;,'normal&#8217;,'fast&#8217;, ou un nombre de millisecondes)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devblog.fr/2010/01/26/carrousel-horizontal-avec-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utiliser Propel avec Symfony 1.4</title>
		<link>http://www.devblog.fr/2010/01/15/utiliser-propel-avec-symfony-1-4/</link>
		<comments>http://www.devblog.fr/2010/01/15/utiliser-propel-avec-symfony-1-4/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 14:01:29 +0000</pubDate>
		<dc:creator>Virginie</dc:creator>
				<category><![CDATA[Non classé]]></category>

		<guid isPermaLink="false">http://www.devblog.fr/?p=216</guid>
		<description><![CDATA[Après avoir téléchargé le sandbox de la version 1.4 de Symfony, impossible de générer mon modèle avec Propel : Task &#8220;propel-build-model&#8221; is not defined.
En faisant php symphony list, je constate que les directives pour doctrines sont accessibles, mais rien pour propel.
Pour résoudre ce problème : dans /config/ProjectConfiguration.class.php, faire en sorte que la fonction setup() soit [...]]]></description>
			<content:encoded><![CDATA[<p>Après avoir téléchargé le sandbox de la version 1.4 de Symfony, impossible de générer mon modèle avec Propel : <em>Task &#8220;propel-build-model&#8221; is not defined</em>.</p>
<p><span id="more-216"></span>En faisant <em>php symphony list</em>, je constate que les directives pour doctrines sont accessibles, mais rien pour propel.</p>
<p>Pour résoudre ce problème : dans /config/ProjectConfiguration.class.php, faire en sorte que la fonction setup() soit ainsi :</p>
<pre class="brush: php">
public function setup()
{
//enlever l&#039;activation de Doctrine, mettre à la place
$this-&gt;enablePlugins(&#039;sfPropelPlugin&#039;);
}
</pre>
<p>Mon fichier schema.yml doit être à la racine de /config, sinon, cela fait l&#8217;erreur suivante :  <em>You must create a schema.yml or schema.xml file.</em></p>
<p>Ensuite j&#8217;avais l&#8217;erreur : <em>lib/vendor/symfony/lib/plugins/sfPropelPlugin/lib/vendor/propel-generator/build.xml:48:16: Missing configuration file.<br />
<span style="font-style: normal;">Cette erreur se résout en créant un fichier propel.ini dans /config.</span></em></p>
<p>Ensuite, j&#8217;avais l&#8217;erreur suivante : <em>build-propel.xml:461:22: Execution of the target buildfile failed. Aborting.</em></p>
<p>Pour résoudre cette erreur, il faut mettre dans propel.ini les lignes suivantes (et uniquement les lignes suivantes) :</p>
<pre class="brush: text">

propel.targetPackage       = lib.model

propel.packageObjectModel  = true

propel.project             = monprojet

propel.database            = mysql

propel.database.driver     = mysql

propel.database.url        = mysql:dbname=mabase;host=localhost

propel.database.creole.url = ${propel.database.url}

propel.database.user       = root

propel.database.password   = pass

propel.database.encoding   = utf8
</pre>
<p>J&#8217;ai enfin pu générer mon modèle : <em>php symfony propel:build &#8211;model</em></p>
<p><em><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.devblog.fr/2010/01/15/utiliser-propel-avec-symfony-1-4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Créer une miniature en php</title>
		<link>http://www.devblog.fr/2010/01/12/creer-une-miniature-en-php/</link>
		<comments>http://www.devblog.fr/2010/01/12/creer-une-miniature-en-php/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 09:56:15 +0000</pubDate>
		<dc:creator>Virginie</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[miniature]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.devblog.fr/?p=208</guid>
		<description><![CDATA[But : créer une miniature à partir d&#8217;une image, avec une largeur et une hauteur maximum, sans agrandir l&#8217;image (pour ne pas avoir une miniature de mauvaise qualité) si elle est plus petite que la taille de la miniature souhaitée.
(Pour la méthode où on diminue l&#8217;image jusqu&#8217;à ce qu&#8217;elle rentre complètement dans nos dimensions et [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">But : créer une miniature à partir d&#8217;une image, avec une largeur et une hauteur maximum, sans agrandir l&#8217;image (pour ne pas avoir une miniature de mauvaise qualité) si elle est plus petite que la taille de la miniature souhaitée.<span id="more-208"></span></div>
<p>(Pour la méthode où on diminue l&#8217;image jusqu&#8217;à ce qu&#8217;elle rentre complètement dans nos dimensions et où on remplit les espaces vides avec une couleur de fonc, cf <a href="http://www.devblog.fr/2010/01/29/creer-une-miniature-en-php-sans-rogner/">créer une miniature sans rogner</a>)</p>
<div id="_mcePaste">
On a 5 cas possibles :</div>
<div><img class="alignnone size-full wp-image-209" title="miniature" src="http://www.devblog.fr/wp-content/uploads/2010/01/miniature.jpg" alt="" width="314" height="252" /></div>
<div id="_mcePaste">Cas n°1 : L&#8217;image est plus petite en hauteur et en largeur : on la recopie telle quelle, sans la redimentionner.</div>
<div id="_mcePaste">Cas n°2 : L&#8217;image dépasse en hauteur mais est trop petite en largeur : on coupe ce qui dépasse en hauteur</div>
<div id="_mcePaste">Cas n°3 : L&#8217;image dépasse en largeur mais est trop petite en hauteur : on coupe ce qui dépasse en largeur</div>
<div id="_mcePaste">Cas n°4 : L&#8217;image dépasse en largeur et en hauteur et est proportionnement trop grande en largeur : on redimentionne pour avoir la bonne hauteur et on coupe ce qui dépasse en largeur</div>
<div id="_mcePaste">Cas n°5 : L&#8217;image dépasse en largeur et en hauteur et est proportionnement trop grande en hauteur : on redimentionne pour avoir la bonne largeur et on coupe ce qui dépasse en hauteur</div>
<div></div>
<div>
<pre class="brush: php">

function creerMiniature($chemin,$H,$W)

{

$chemin2=substr($chemin,0,strrpos($chemin,&#039;.&#039;)).&#039;_mini.jpg&#039;;

$img_src_resource=imagecreatefromjpeg($chemin);

list( $w, $h ) = getimagesize($chemin);

//Cas n°1 : L&#039;image est plus petite en hauteur et en largeur : on la recopie telle quelle

if(($w&lt;=$W) and ($h&lt;=$H))

{

$img_dst_resource = imagecreatetruecolor($w, $h);

imagecopyresampled($img_dst_resource,$img_src_resource,0,0,0,0,$w,$h,$w,$h);

imagejpeg( $img_dst_resource, $chemin2,100);

}

//Cas n°2 : L&#039;image dépasse en hauteur mais est trop petite en largeur :

// On coupe ce qui dépasse en hauteur

if(($w&lt;=$W) and ($h&gt;$H))

{

$img_dst_resource = imagecreatetruecolor($w, $H);

imagecopyresampled($img_dst_resource,$img_src_resource,0,0,0,0,$w,$H,$w,$H);

imagejpeg( $img_dst_resource, $chemin2,100);

}

//Cas n°3 : L&#039;image dépasse en largeur mais est trop petite en hauteur :

// On coupe ce qui dépasse en largeur

if(($w&gt;$W) and ($h&lt;=$H))

{

$img_dst_resource = imagecreatetruecolor($W, $h);

imagecopyresampled($img_dst_resource,$img_src_resource,0,0,0,0,$W,$h,$W,$h);

imagejpeg( $img_dst_resource, $chemin2,100);

}

//Cas n°4 : L&#039;image dépasse en largeur et en hauteur et est proportionnement trop grande en largeur

// On redimentionne pour avoir la bonne hauteur et on coupe ce qui dépasse en largeur

if(($w&gt;$W) and ($h&gt;$H) and (($w/$h)&gt;($W/$H)))

{

$img_dst_resource = imagecreatetruecolor($W, $H);

imagecopyresampled($img_dst_resource,$img_src_resource,0,0,0,0,$W,$H,$W*$h/$H,$h);

imagejpeg( $img_dst_resource, $chemin2,100);

}

//Cas n°5 : L&#039;image dépasse en largeur et en hauteur et est proportionnement trop grande en hauteur

// On redimentionne pour avoir la bonne largeur et on coupe ce qui dépasse en hauteur

if(($w&gt;$W) and ($h&gt;$H) and (($w/$h)&lt;=($W/$H)))

{

$img_dst_resource = imagecreatetruecolor($W, $H);

imagecopyresampled($img_dst_resource,$img_src_resource,0,0,0,0,$W,$H,$w,$w*$H/$W);

imagejpeg( $img_dst_resource, $chemin2,100);

}

}
</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.devblog.fr/2010/01/12/creer-une-miniature-en-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
