<?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>petites merveilles du web</title>
	<atom:link href="http://www.petitesmerveillesduweb.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.petitesmerveillesduweb.com</link>
	<description>Tout sur les technologies du développement WEB!</description>
	<lastBuildDate>Wed, 16 May 2012 16:00:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Bootstrap &#8211; Trousse à outil pour vous aider à développer rapidement</title>
		<link>http://www.petitesmerveillesduweb.com/bootstrap-trousse-a-outil-pour-vous-aider-a-developper-rapidement/</link>
		<comments>http://www.petitesmerveillesduweb.com/bootstrap-trousse-a-outil-pour-vous-aider-a-developper-rapidement/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 18:10:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[librairie]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[kickstart]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.petitesmerveillesduweb.com/?p=472</guid>
		<description><![CDATA[Vous arrive-t-il de vouloir partir un projet web de zéro et que vous n&#8217;êtes pas capable d&#8217;aller où vous voulez à cause de l&#8217;interface et de passer plus de temps sur le CSS que sur la logique de votre application? C&#8217;est un ami qui m&#8217;a fait découvrir cet outil: Bootstrap.  Développé par Twitter, celui-ci vous <a href="http://www.petitesmerveillesduweb.com/bootstrap-trousse-a-outil-pour-vous-aider-a-developper-rapidement/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Vous arrive-t-il de vouloir partir un projet web de zéro et que vous n&#8217;êtes pas capable d&#8217;aller où vous voulez à cause de l&#8217;interface et de passer plus de temps sur le CSS que sur la logique de votre application?</p>
<p>C&#8217;est <a title="Twitter" href="https://twitter.com/#!/alainpilon" target="_blank">un ami </a>qui m&#8217;a fait découvrir cet outil: <a title="Bootstrap" href="http://twitter.github.com/bootstrap/" target="_blank">Bootstrap</a>.  Développé par Twitter, celui-ci vous permet d&#8217;utiliser leur propre CSS afin de se concentrer sur ce qui compte réellement. Cet outil vous donnera un petit coup de main lors de votre développement.</p>
<h3>Fonctionnalités</h3>
<ul>
<li>Grid</li>
<li>Layout</li>
<li>Table</li>
<li>Formulaire</li>
<li>Navigation</li>
<li>Alerts</li>
<li>Etc.</li>
</ul>
<p>Je vous invite donc d&#8217;aller faire un tour sur leur site afin de voir toutes leurs options. <a title="Bootstrap" href="http://twitter.github.com/bootstrap/" target="_blank">Bootstrap </a>vient de passer en version 1.3 et la communauté semble particulière active.</p>
<p>Lien : <a title="Bootstrap" href="http://twitter.github.com/bootstrap/" target="_blank">http://twitter.github.com/bootstrap/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.petitesmerveillesduweb.com/bootstrap-trousse-a-outil-pour-vous-aider-a-developper-rapidement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress &#8211; Développement plugin sous Windows 7 + SVN</title>
		<link>http://www.petitesmerveillesduweb.com/wordpress-developpement-plugin-sous-windows-7-svn/</link>
		<comments>http://www.petitesmerveillesduweb.com/wordpress-developpement-plugin-sous-windows-7-svn/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 14:14:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[outil]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress 3.0+]]></category>
		<category><![CDATA[astuces]]></category>
		<category><![CDATA[lien symbolique]]></category>
		<category><![CDATA[mklink]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[windows7]]></category>

		<guid isPermaLink="false">http://www.petitesmerveillesduweb.com/?p=450</guid>
		<description><![CDATA[Voici ma problématique : lorsque je développe un plugin pour WordPress et que je veux mettre mes mises à jour sur le SVN, je crée deux environnements de test. Le premier est l&#8217;installation d&#8217;un WordPress vierge. Mon plugin se trouve dans C:wampwwwwordpress_testwp-contentpluginsMONPLUGIN Le deuxième est mon SVN qui contient mon plugin: C:wampwwwpluginWPMONPLUGINtrunk Je teste donc <a href="http://www.petitesmerveillesduweb.com/wordpress-developpement-plugin-sous-windows-7-svn/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Voici ma problématique : lorsque je développe un <em>plugin</em> pour WordPress et que je veux mettre mes mises à jour sur le SVN, je crée deux environnements de test.</p>
<ol>
<li>Le premier est l&#8217;installation d&#8217;un WordPress vierge. Mon <em>plugin</em> se trouve dans C:wampwwwwordpress_testwp-contentpluginsMONPLUGIN</li>
<li>Le deuxième est mon SVN qui contient mon <em>plugin</em>: C:wampwwwpluginWPMONPLUGINtrunk</li>
</ol>
<p>Je teste donc mon <em>plugin</em> dans le premier environnement. Lorsque j&#8217;ai terminé, je déplace les fichiers vers le 2e environnement. Ensuite, je fais un <em>commit</em> sur le SVN de WordPress.  Cette méthode peut générer des problèmes. Je me suis donc demandé si c&#8217;était possible de faire un lien symbolique comme sous UNIX. C&#8217;est alors que je suis tombé sur la commande DOS &#8220;mklink&#8221; que je ne connaissais pas. Voici la façon dont je l&#8217;emploi :</p>
<ol>
<li>Ouvrez <em>Command Prompt</em> de W7. Cliquez sur le Menu Démarré et tapez &#8220;cmd&#8221; dans l&#8217;espace de recherche .</li>
<li>Effectuez un clique droit sur l&#8217;application &#8220;cmd.exe&#8221; et exécutez-le en mode &#8220;Administrateur&#8221;</li>
<li>Rendez-vous dans votre dossier <em>plugin</em> de WordPress. Pour ma part, c&#8217;est : <strong>cd C:wampwwwwordpress_testwp-contentplugins</strong></li>
<li>Créez le lien symbolique: <strong>mklink /D MONPLUGIN C:wampwwwpluginWPMONPLUGINtrunk</strong></li>
</ol>
<p>Voilà, c&#8217;est tout! Si vous faites la commande DOS &#8220;dir&#8221;, vous verrez votre dossier avec un attribut &#8220;SYMLINKD&#8221; ce qui signifie que ce dossier est en fait un lien vers votre <em>plugin</em>. Le dossier est alors reconnu par WordPress comme un <em>plugin.</em> À partir de ce moment, lorsque vous ferez une modification, vous n&#8217;aurez plus à copier/coller vos fichiers dans le dossier SVN pour faire le <em>commit</em>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petitesmerveillesduweb.com/wordpress-developpement-plugin-sous-windows-7-svn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Codeigniter &#8211; Comment gérer plusieurs environnements, première partie</title>
		<link>http://www.petitesmerveillesduweb.com/codeigniter-comment-gerer-plusieurs-environnements-premiere-partie/</link>
		<comments>http://www.petitesmerveillesduweb.com/codeigniter-comment-gerer-plusieurs-environnements-premiere-partie/#comments</comments>
		<pubDate>Mon, 23 May 2011 03:03:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[framework]]></category>
		<category><![CDATA[librairie]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[tutoriel]]></category>
		<category><![CDATA[codeigniter]]></category>

		<guid isPermaLink="false">http://www.petitesmerveillesduweb.com/?p=434</guid>
		<description><![CDATA[Dans cette première partie, nous nous pencherons sur une technique permettant la gestion de trois environnements de déploiements. Developement Testing (QA) Production La majorité des développeurs ne font pas usage de ces trois environnements dans leurs projets et, pourtant, la technique proposée ici peut permettre d’éviter bien des gaffes. Voici comment, dans mes projets, j’arrive <a href="http://www.petitesmerveillesduweb.com/codeigniter-comment-gerer-plusieurs-environnements-premiere-partie/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dans cette première partie, nous nous pencherons sur une technique permettant la gestion de trois environnements de déploiements.</p>
<ol>
<li><em>Developement</em></li>
<li><em>Testing</em> (<em>QA</em>)</li>
<li><em>Production</em></li>
</ol>
<p>La majorité des développeurs ne font pas usage de ces trois environnements dans leurs projets et, pourtant, la technique proposée ici peut permettre d’éviter bien des gaffes. Voici comment, dans mes projets, j’arrive à gérer mes trois environnements de développement.</p>
<p>Ultérieurement, je vous présenterai la suite de ce premier tutoriel. Nous utiliserons alors un outil de déploiement qui vous permettra de mettre à jour, comme il se doit, vos environnements.</p>
<p>Pour ce tutorial, j’utilise la version 2.0.2 de <em>codeigniter</em>.</p>
<p>Tout d’abord, sélectionner votre fichier <em>index.php</em>. Dans ce dernier, nous définirons, selon vos besoins, la variable <em>ENVIRONMENT</em>. Précédant le début du fichier, ajoutez ce code :</p>
<pre class="brush: php; title: ; notranslate">
switch($_SERVER['SERVER_NAME']) {
case 'www.openbottle.dev': // C’est votre serveur localhost
define('ENVIRONMENT', 'development');
break;
case 'openbottle.mywebsitedev.com': // Votre serveur permettant de presenter à votre client votre projet.
define('ENVIRONMENT', 'testing');
break;
case 'www.openbottle.com': // Votre serveur final
define('ENVIRONMENT', 'production');
break;
}
</pre>
<p>Après avoir défini la variable d’environnement, éditez le fichier de <em>/config/config.php</em>. Dans ce dernier, nous définirons la variable globale <em>base_url</em> qui préviendra l’apparition de certains problèmes lors de vos déploiements. Encore une fois, précédant le début du fichier, ajoutez ce code :</p>
<pre class="brush: php; title: ; notranslate">
$config['base_url'] = '';
switch(ENVIRONMENT) {
case 'development':
$config['base_url']    = 'http://www.openbottle.dev/';
break;
case 'testing':
$config['base_url'] = 'http://openbottle.mywebsitedev.com/';
break;
case 'production':
$config['base_url'] = 'http://www.openbottle.com/';

break;
}
</pre>
<p>Enfin, il faut définir chacune des bases de données pour chacun des environnements. Nous remplacerons donc la <em>ligne 41</em> :</p>
<p><em>$active_group = ‘default’ ;</em></p>
<p>par</p>
<p><em>$active_group = ENVIRONMENT;</em></p>
<p>Par après, remplacez tous les ‘<em>default</em>’ par ‘<em>development</em>’. Puis, après la <em>ligne 58</em>, ajoutez vos 2 autres environnements :</p>
<p>&nbsp;</p>
<pre class="brush: php; title: ; notranslate">
/* TEST - QA */
$db['testing']['hostname'] = 'localhost';
$db['testing']['username'] = 'root';
$db['testing']['password'] = 'modepasse';
$db['testing']['database'] = 'openbottle';
$db['testing']['dbdriver'] = 'mysql';
$db['testing']['dbprefix'] = '';
$db['testing']['pconnect'] = TRUE;
$db['testing']['db_debug'] = TRUE;
$db['testing']['cache_on'] = FALSE;
$db['testing']['cachedir'] = '';
$db['testing']['char_set'] = 'utf8';
$db['testing']['dbcollat'] = 'utf8_general_ci';
$db['testing']['swap_pre'] = '';
$db['testing']['autoinit'] = TRUE;
$db['testing']['stricton'] = FALSE;

/* PRODUCTION */
$db['production']['hostname'] = 'localhost';
$db['production']['username'] = 'root';
$db['production']['password'] = 'motdepasse';
$db['production']['database'] = 'openbottle';
$db['production']['dbdriver'] = 'mysql';
$db['production']['dbprefix'] = '';
$db['production']['pconnect'] = TRUE;
$db['production']['db_debug'] = TRUE;
$db['production']['cache_on'] = FALSE;
$db['production']['cachedir'] = '';
$db['production']['char_set'] = 'utf8';
$db['production']['dbcollat'] = 'utf8_general_ci';
$db['production']['swap_pre'] = '';
$db['production']['autoinit'] = TRUE;
$db['production']['stricton'] = FALSE;
&lt;span style=&quot;font-weight: normal;&quot;&gt;</pre>
<p></span></pre>
<p>Voilà ! Cela devrait vous aider à gérer de manière plus efficace vos environnements de développement. Dans la seconde partie de ce tutoriel, nous utiliserons l’outil <a href="http://www.phing.info/">Phing</a>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petitesmerveillesduweb.com/codeigniter-comment-gerer-plusieurs-environnements-premiere-partie/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress – Créer un plugin #2 &#8211; widget</title>
		<link>http://www.petitesmerveillesduweb.com/wordpress-creer-un-plugin-2-widget/</link>
		<comments>http://www.petitesmerveillesduweb.com/wordpress-creer-un-plugin-2-widget/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 02:42:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[outil]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[tutoriel]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress 3.0+]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://www.petitesmerveillesduweb.com/?p=380</guid>
		<description><![CDATA[Pour la deuxième partie du tutoriel, nous allons nous attarder sur la création d&#8217;un widget à même le plugin. 1. Utilisation du widget L’utilisation du widget est très pratique quand nous désirons offrir une certaine flexibilité à l’administrateur lors du déplacement ou de la modification d&#8217;une zone du gabarit. En ce qui nous concerne, le <a href="http://www.petitesmerveillesduweb.com/wordpress-creer-un-plugin-2-widget/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pour la deuxième partie du tutoriel, nous allons nous attarder sur la création d&#8217;un widget à même le plugin.</p>
<h2>1. Utilisation du widget</h2>
<p>L’utilisation du widget est très pratique quand nous désirons offrir une certaine flexibilité à l’administrateur lors du déplacement ou de la modification d&#8217;une zone du gabarit. En ce qui nous concerne, le widget est pertinent pour changer l’ID de l’utilisateur Facebook sans avoir à passer par le code source.</p>
<h2>2. Création du widget</h2>
<p>Tout d’abord, pour que le plugin puisse fonctionner, nous devons créer une classe étendue de « WP_Widget ». À l’intérieur de celle-ci, nous trouverons quatre fonctions.</p>
<p>Voici le squelette du widget :</p>
<pre class="brush: php; title: ; notranslate">
class My_Widget extends WP_Widget {
	function My_Widget() {
		// widget actual processes
	}

	function form($instance) {
		// outputs the options form on admin
	}

	function update($new_instance, $old_instance) {
		// processes widget options to be saved
	}

	function widget($args, $instance) {
		// outputs the content of the widget
	}

}
</pre>
<p>Commençons par créer notre classe ainsi que notre constructeur. Notez que le premier paramètre du constructeur (fp-widget) sera utilisé pour récupérer les valeurs du formulaire.</p>
<pre class="brush: php; title: ; notranslate">
class PublishFeed extends WP_Widget {
	function PublishFeed() {
		// Constructeur
		$this-&amp;gt;WP_Widget(&amp;#039;fp-widget&amp;#039;, __(&amp;#039;FacebookPublish&amp;#039;, &amp;#039;wp-facebook-publish&amp;#039;));
</pre>
<p>Affichez ensuite le formulaire du widget. Dans notre exemple, nous pouvons identifier deux champs : facebook_id et facebook_limit.</p>
<pre class="brush: php; title: ; notranslate">
/** @see WP_Widget::form */
function form($instance) {
	$facebook_id = esc_attr($instance[&amp;#039;facebook_id&amp;#039;]);
	$facebook_limit = esc_attr($instance[&amp;#039;facebook_limit&amp;#039;]);
?&amp;gt;
    &amp;lt;p&amp;gt;&amp;lt;label for=&amp;quot;&amp;lt;?php echo $this-&amp;gt;get_field_id(&amp;#039;facebook_id&amp;#039;); ?&amp;gt;&amp;quot;&amp;gt;&amp;lt;?php _e(&amp;#039;Facebook User ID:&amp;#039;); ?&amp;gt; &amp;lt;input class=&amp;quot;widefat&amp;quot; id=&amp;quot;&amp;lt;?php echo $this-&amp;gt;get_field_id(&amp;#039;facebook_id&amp;#039;); ?&amp;gt;&amp;quot; name=&amp;quot;&amp;lt;?php echo $this-&amp;gt;get_field_name(&amp;#039;facebook_id&amp;#039;); ?&amp;gt;&amp;quot; type=&amp;quot;text&amp;quot; value=&amp;quot;&amp;lt;?php echo $facebook_id; ?&amp;gt;&amp;quot; /&amp;gt;&amp;lt;/label&amp;gt;&amp;lt;/p&amp;gt;

    &amp;lt;p&amp;gt;&amp;lt;label for=&amp;quot;&amp;lt;?php echo $this-&amp;gt;get_field_id(&amp;#039;facebook_limit&amp;#039;); ?&amp;gt;&amp;quot;&amp;gt;&amp;lt;?php _e(&amp;#039;Limit:&amp;#039;); ?&amp;gt; &amp;lt;input class=&amp;quot;widefat&amp;quot; id=&amp;quot;&amp;lt;?php echo $this-&amp;gt;get_field_id(&amp;#039;facebook_limit&amp;#039;); ?&amp;gt;&amp;quot; name=&amp;quot;&amp;lt;?php echo $this-&amp;gt;get_field_name(&amp;#039;facebook_limit&amp;#039;); ?&amp;gt;&amp;quot; type=&amp;quot;text&amp;quot; value=&amp;quot;&amp;lt;?php echo $facebook_limit; ?&amp;gt;&amp;quot; /&amp;gt;&amp;lt;/label&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;?php
}
</pre>
<p>Dans le même ordre d&#8217;idées, notez que la fonction update permettra de mettre à jour les éléments du widget.</p>
<pre class="brush: php; title: ; notranslate">
/** @see WP_Widget::update */
function update($new_instance, $old_instance) {
	$instance = $old_instance;
	$instance[&amp;#039;facebook_id&amp;#039;] = strip_tags($new_instance[&amp;#039;facebook_id&amp;#039;]);
	$instance[&amp;#039;facebook_limit&amp;#039;] = strip_tags($new_instance[&amp;#039;facebook_limit&amp;#039;]);
	return $instance;
}
[/codesyntax]

Dans un dernier temps, cette fonction permet d'afficher le widget.

[codesyntax lang=&quot;php&quot;]
/** @see WP_Widget::widget */
function widget($args, $instance) {
	extract( $args );
	$facebook_id = $instance[&amp;#039;facebook_id&amp;#039;];
	$facebook_limit = $instance[&amp;#039;facebook_limit&amp;#039;];
	publish_feed($facebook_id, $facebook_limit);
}
</pre>
<p><strong>Modification de publish_feed</strong></p>
<p>Nous utiliserons la fonction publish_feed() que nous avons créée dans le <a title="Wordpress - Créer un plugin #1" href="http://www.petitesmerveillesduweb.com/wordpress-creer-un-plugin-1/" target="_self">premier tutoriel</a>. Cependant, nous devrons la modifier un brin. En effet, nous remplacerons :</p>
<pre class="brush: php; title: ; notranslate">
function publish_feed() {
	$facebook_id = ‘votreIDFacebook’;
	$limit = 3; //Nb de news afficher
	$URL_FINAL = $URL_GRAPH. $facebook_id. ‘/?limit=’.$limit;
</pre>
<p>par :</p>
<pre class="brush: php; title: ; notranslate">
function publish_feed($facebook_id, $facebook_limit) {
	$fbpublish = $facebook_id;
	$fplimit = $facebook_limit;
	$fplimit = empty($fplimit)?&amp;#039;&amp;#039;:&amp;#039;?limit=&amp;#039;.$fplimit;
	$URL_GRAPH = $URL_GRAPH.$fbuserid.&amp;#039;/&amp;#039;.$fplimit&lt;
</pre>
<div id="_mcePaste">Pour que le tout fonctionne, il est impératif de ne pas oublier d’ajouter le bout de code suivant après votre classe widget ce qui vous permettra alors de l&#8217;enregistrer :</div>
<pre class="brush: php; title: ; notranslate">
### Function: Init WP-FacebookPublish Widget
add_action(&amp;#039;widgets_init&amp;#039;, &amp;#039;widget_facebookpublish_init&amp;#039;);
function widget_facebookpublish_init() {
	register_widget(&amp;#039;PublishFeed’);
}
</pre>
<div id="_mcePaste">Version complète :</div>
<div>
<pre class="brush: php; title: ; notranslate">
function publish_feed($facebook_id, $facebook_limit) {
	$fbpublish = $facebook_id;
	$fplimit = $facebook_limit;
	$fplimit = empty($fplimit)?&amp;#039;&amp;#039;:&amp;#039;?limit=&amp;#039;.$fplimit;

	// Construction de l&amp;#039;URL
	$URL_GRAPH = $URL_GRAPH.$fbuserid.&amp;#039;/&amp;#039;.$fplimit

	// Récupérer le JSON et le mettre dans une variable sinon retourne false
	$response = file_get_contents($URL_FINAL);

	if($response != FALSE) {
        // Lecture JSON
    	$obj = json_decode($response, true); // Decode le JSON
        	if(count($obj[&amp;#039;data&amp;#039;]) &amp;gt; 0) {
			echo &amp;#039;&amp;lt;ul&amp;gt;&amp;#039;;
			foreach ($obj[&amp;#039;data&amp;#039;] as $key =&amp;gt; $value) { // Boucle sur data
				$date = $value[&amp;#039;created_time&amp;#039;];
				$message = $value[&amp;#039;message&amp;#039;];
				echo &amp;#039;&amp;lt;li&amp;gt;&amp;lt;span class=&amp;quot;message&amp;quot;&amp;gt;&amp;#039; . $message . &amp;#039;&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;date&amp;quot;&amp;gt; (&amp;#039; . $date . &amp;#039;)&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;&amp;#039;;
			}
			echo &amp;#039;&amp;lt;/ul&amp;gt;&amp;#039;;
		} else {
		echo &amp;#039;No feed&amp;#039;;
		}
	}
}

class PublishFeed extends WP_Widget {
	function PublishFeed() {
		// Constructeur
		$this-&amp;gt;WP_Widget(&amp;#039;fp-widget&amp;#039;, __(&amp;#039;FacebookPublish&amp;#039;, &amp;#039;wp-facebook-publish&amp;#039;));
	}
	/** @see WP_Widget::form */
	function form($instance) {
		$facebook_id = esc_attr($instance[&amp;#039;facebook_id&amp;#039;]);
		$facebook_limit = esc_attr($instance[&amp;#039;facebook_limit&amp;#039;]);
	?&amp;gt;
	    &amp;lt;p&amp;gt;&amp;lt;label for=&amp;quot;&amp;lt;?php echo $this-&amp;gt;get_field_id(&amp;#039;facebook_id&amp;#039;); ?&amp;gt;&amp;quot;&amp;gt;&amp;lt;?php _e(&amp;#039;Facebook User ID:&amp;#039;); ?&amp;gt; &amp;lt;input class=&amp;quot;widefat&amp;quot; id=&amp;quot;&amp;lt;?php echo $this-&amp;gt;get_field_id(&amp;#039;facebook_id&amp;#039;); ?&amp;gt;&amp;quot; name=&amp;quot;&amp;lt;?php echo $this-&amp;gt;get_field_name(&amp;#039;facebook_id&amp;#039;); ?&amp;gt;&amp;quot; type=&amp;quot;text&amp;quot; value=&amp;quot;&amp;lt;?php echo $facebook_id; ?&amp;gt;&amp;quot; /&amp;gt;&amp;lt;/label&amp;gt;&amp;lt;/p&amp;gt;

	    &amp;lt;p&amp;gt;&amp;lt;label for=&amp;quot;&amp;lt;?php echo $this-&amp;gt;get_field_id(&amp;#039;facebook_limit&amp;#039;); ?&amp;gt;&amp;quot;&amp;gt;&amp;lt;?php _e(&amp;#039;Limit:&amp;#039;); ?&amp;gt; &amp;lt;input class=&amp;quot;widefat&amp;quot; id=&amp;quot;&amp;lt;?php echo $this-&amp;gt;get_field_id(&amp;#039;facebook_limit&amp;#039;); ?&amp;gt;&amp;quot; name=&amp;quot;&amp;lt;?php echo $this-&amp;gt;get_field_name(&amp;#039;facebook_limit&amp;#039;); ?&amp;gt;&amp;quot; type=&amp;quot;text&amp;quot; value=&amp;quot;&amp;lt;?php echo $facebook_limit; ?&amp;gt;&amp;quot; /&amp;gt;&amp;lt;/label&amp;gt;&amp;lt;/p&amp;gt;
	&amp;lt;?php
	}
	/** @see WP_Widget::update */
	function update($new_instance, $old_instance) {
		$instance = $old_instance;
		$instance[&amp;#039;facebook_id&amp;#039;] = strip_tags($new_instance[&amp;#039;facebook_id&amp;#039;]);
		$instance[&amp;#039;facebook_limit&amp;#039;] = strip_tags($new_instance[&amp;#039;facebook_limit&amp;#039;]);
		return $instance;
	}

	/** @see WP_Widget::widget */
	function widget($args, $instance) {
		extract( $args );
		$facebook_id = $instance[&amp;#039;facebook_id&amp;#039;];
		$facebook_limit = $instance[&amp;#039;facebook_limit&amp;#039;];
		publish_feed($facebook_id, $facebook_limit);
	}
}
</pre>
</div>
<div id="_mcePaste">Voilà! N&#8217;hésitez pas de vous manifester si vous avez des questions.</div>
<div>Lien : <a title="Documentation officiel widget" href="http://codex.wordpress.org/Widgets_API" target="_self">http://codex.wordpress.org/Widgets_API</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.petitesmerveillesduweb.com/wordpress-creer-un-plugin-2-widget/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress – Afficher dans une page tous les articles d’une catégorie v2</title>
		<link>http://www.petitesmerveillesduweb.com/wordpress-afficher-dans-une-page-tous-les-articles-dune-categorie-v2/</link>
		<comments>http://www.petitesmerveillesduweb.com/wordpress-afficher-dans-une-page-tous-les-articles-dune-categorie-v2/#comments</comments>
		<pubDate>Fri, 03 Dec 2010 20:45:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[tutoriel]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[articles]]></category>
		<category><![CDATA[catégorie]]></category>
		<category><![CDATA[gabarit]]></category>
		<category><![CDATA[get_posts]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://www.petitesmerveillesduweb.com/?p=366</guid>
		<description><![CDATA[J&#8217;avais fait précédemment un article sur le même sujet, mais cet article n&#8217;expliquait pas réellement LA bonne façon de le faire. Voici la nouvelle méthode : Dans votre dossier thème par défaut, ajoutez un fichier qui sera votre gabarit. (ex : listfruit-page.php) Dans le tout début de ce fichier ajouter un commentaire qui permettra d&#8217;identifier votre gabarit <a href="http://www.petitesmerveillesduweb.com/wordpress-afficher-dans-une-page-tous-les-articles-dune-categorie-v2/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>J&#8217;avais fait précédemment un article sur le même sujet, mais cet article n&#8217;expliquait pas réellement LA bonne façon de le faire.</p>
<p>Voici la nouvelle méthode :</p>
<ol>
<li>Dans votre dossier thème par défaut, ajoutez un fichier qui sera votre gabarit. (ex : listfruit-page.php)</li>
<li>Dans le tout début de ce fichier ajouter un commentaire qui permettra d&#8217;identifier votre gabarit dans l&#8217;interface administrateur de WordPress :
<pre class="brush: php; title: ; notranslate">
&lt;?php
/*
 *
 * Template Name: ListeFruit-page
 */
</pre>
</li>
<li>Créez une page dans l&#8217;interface administrateur de WordPress. Donnez-lui un titre qui reflète ce que vous voulez lister. (ex : Liste des fruits)</li>
<li>Dans la colonne de droite, il y a une boite &#8220;Page Attributes&#8221; et dans cette boite, vous avez un menu déroulant vous permettant de sélectionner votre gabarit (ListeFruit-page) .</li>
<li>Maintenant que vous avez lié votre page à votre gabarit, ouvrez votre fichier &#8220;listfruit-page.php&#8221; et rentrez ceci :
<pre class="brush: php; title: ; notranslate">
&lt;?php
/*
 *
 * Template Name: ListeFruit-page
 */

 get_header(); // Inclut votre header
 global $post;

 the_title('&lt;h1&gt;','&lt;/h1&gt;')

?&gt;
&lt;h2&gt;Liste de mes fruits&lt;h2&gt;

&lt;?php
 // Récupère les articles d'une catégorie X
 // showposts: nombre d'article affiché
 // cat: l'id de la catégorie
 query_posts( 'showposts=5&amp;cat=3&amp;order=DESC&amp;orderby=date' );
 if (have_posts()) :
 while (have_posts()) : the_post();
 ?&gt;
	&lt;p&gt;
		&lt;a href=&quot;&lt;?php the_permalink() ?&gt;&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link to &lt;?php the_title_attribute(); ?&gt;&quot;&gt;&lt;?php the_title('&lt;h2&gt;','&lt;/h2&gt;'); ?&gt;&lt;/a&gt;
		&lt;p&gt;&lt;?php the_excerpt(); // ou the_content(); ?&gt;&lt;/p&gt;
	&lt;/p&gt;
&lt;?php endwhile; ?&gt;
&lt;?php endif; ?&gt;

&lt;?php get_footer(); ?&gt;
</pre>
</li>
</ol>
<p>Avec cette méthode, plus personne ne vous prendra pour un débutant <img src='http://www.petitesmerveillesduweb.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><em>7 février 2011</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.petitesmerveillesduweb.com/wordpress-afficher-dans-une-page-tous-les-articles-dune-categorie-v2/feed/</wfw:commentRss>
		<slash:comments>40</slash:comments>
		</item>
		<item>
		<title>WordPress &#8211; Créer un plugin #1</title>
		<link>http://www.petitesmerveillesduweb.com/wordpress-creer-un-plugin-1/</link>
		<comments>http://www.petitesmerveillesduweb.com/wordpress-creer-un-plugin-1/#comments</comments>
		<pubDate>Thu, 02 Dec 2010 02:17:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.petitesmerveillesduweb.com/?p=309</guid>
		<description><![CDATA[La création d&#8217;extension WordPress ne demande pas beaucoup d’expérience, il suffit de savoir ce qu’on veut faire précisément. Pour vous expliquer le mieux possible comment faire une extension WordPress, nous allons créer une extension permettant d’afficher votre « Wall » de votre Facebook grâce au ID unique de votre compte. 1. Comment commencer ? Tout <a href="http://www.petitesmerveillesduweb.com/wordpress-creer-un-plugin-1/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>La création d&#8217;extension WordPress ne demande pas beaucoup d’expérience, il suffit de savoir ce qu’on veut faire précisément.</p>
<p>Pour vous expliquer le mieux possible comment faire une extension WordPress, nous allons créer une extension permettant d’afficher votre « Wall » de votre Facebook grâce au ID unique de votre compte.</p>
<div id="attachment_341" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.petitesmerveillesduweb.com/wp-content/uploads/2010/12/idfacebook.jpg"><img class="size-medium wp-image-341" title="Le id se trouve dans l'URL" src="http://www.petitesmerveillesduweb.com/wp-content/uploads/2010/12/idfacebook-300x218.jpg" alt="Facebook ID URL" width="300" height="218" /></a><p class="wp-caption-text">Le ID se trouve dans l&#39;URL</p></div>
<h2>1. Comment commencer ?</h2>
<p>Tout d’abord, que voulons-nous faire? Une extension qui nous permettrait d’afficher notre « Wall » Facebook dans notre colonne de droite de notre site. Ensuite, il faut voir comment nous procèderons pour aller chercher le contenu&#8230; Vous êtes chanceux, voici le lien :</p>
<p><a href="http://developers.facebook.com/docs/api">http://developers.facebook.com/docs/api</a></p>
<p>et c&#8217;est avec cette URL que nous pourrons faire ce que nous voulons :</p>
<p>http://graph.facebook.com/ID_FACEBOOK/feed.</p>
<p>Nous utiliserons donc cette adresse pour recueillir les informations. Prenez note qu’il faut que l’utilisateur Facebook donne un accès public de son «Wall». Si vous voulez restreint l’accès, vous devrez utiliser les « access token ».</p>
<p>Vous remarquerez que l’URL vous retourne la liste de vos « news » sous format JSON. Bon maintenant, donnons-lui un nom&#8230; Que diriez-vous de <em>FacebookFeeder</em><strong>.</strong></p>
<p>Voilà, nous pouvons commencer à coder !</p>
<h2>2. Structure des fichiers</h2>
<p>Lorsque vous faites une extension WordPress, celui-ci doit se trouver dans le dossier « /wp-content/plugins/facebookfeeder ». Le premier fichier que vous devez créer dans ce dossier est facebookfeeder.php. Pour respecter le standard de WordPress, il est fortement conseillé de garder le nom du fichier pareil que le nom du dossier, ceci doit aussi transparaitre dans votre code.</p>
<p>Premièrement, vous devez respecter le début du fichier. Ce standard que nous mettons au début du fichier est très important pour l’affichage de votre extension dans la section administration des plugins et/ou si vous comptez le mettre sur le portail d&#8217;extension de WordPress. Pour plus d’information, aller sur le site officiel : <a href="http://codex.wordpress.org/Writing_a_Plugin" target="_blank">http://codex.wordpress.org/Writing_a_Plugin</a></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
/*
    Plugin Name: Facebookfeeder
    Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
    Description: Publish feed of facebook wall… Your Description
    Version: 0.1
    Author: Votre Nom
    License: GPL2
*/

/*  Copyright 2010  Thomas Fortier  (email : thomas.fortier@gmail.com)

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License, version 2, as
    published by the Free Software Foundation.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/
</pre>
<p>Je vous conseil personnellement de commencer à faire le cœur de votre plug-in et d’ensuite de s’occuper des interfaces administrateur/widget.</p>
<p>Commençons par créer une fonction qui récupère le l’URL, qui lit le fichier JSON et qui affiche les informations voulues.</p>
<pre class="brush: php; title: ; notranslate">
function publish_feed() {
	$URL_GRAPH = &quot;http://graph.facebook.com/&quot;;
	$facebook_id = '100001072408211'; // Votre ID Facebook
	$limit = 2; //Nb de news afficher

	// Construction de l'URL
	$URL_FINAL = $URL_GRAPH. $facebook_id. '/feed/?limit='.$limit;

	// Récupérer le JSON et le mettre dans une variable sinon retourne false
	$response = file_get_contents($URL_FINAL);

	if($response != FALSE) {
        // Lecture JSON
    	$obj = json_decode($response, true); // Decode le JSON
        	if(count($obj['data']) &gt; 0) {
			echo '&lt;ul&gt;';
			foreach ($obj['data'] as $key =&gt; $value) { // Boucle sur data
				$date = $value['created_time'];
				$message = $value['message'];
				echo '&lt;li&gt;&lt;span class=&quot;message&quot;&gt;' . $message . '&lt;/span&gt; &lt;span class=&quot;date&quot;&gt; (' . $date . ')&lt;/span&gt;&lt;/li&gt;';
			}
			echo '&lt;/ul&gt;';
		} else {
		echo 'No feed';
		}
	}
}
</pre>
<p>Wow! Vous venez de créer votre premier plug-in. Par contre, il n’est pas possible de l’utiliser encore. Rendez-vous dans la section plugin de votre administration WordPress. Trouver le nom de votre extension (<em>Facebookfeeder</em>) et cliquer sur « Activate ».</p>
<div id="attachment_354" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.petitesmerveillesduweb.com/wp-content/uploads/2010/12/fb_plugin_active.png"><img class="size-medium wp-image-354" title="FacebookFeeder active" src="http://www.petitesmerveillesduweb.com/wp-content/uploads/2010/12/fb_plugin_active-300x85.png" alt="Activez votre plugin" width="300" height="85" /></a><p class="wp-caption-text">Activez votre plugin</p></div>
<p>À partir de ce moment, il vous est possible d’aller dans votre thème et d’ajouter <em>&lt;?php plubish_feed() ?&gt;</em> à l’endroit voulu.</p>
<p>[Suite: <a title="Création d'un widget" href="http://www.petitesmerveillesduweb.com/wordpress-creer-un-plugin-2-widget/" target="_self">Création d'un widget</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petitesmerveillesduweb.com/wordpress-creer-un-plugin-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zen Coding &#8211; Programmer rapidement en HTML, XML, XSL</title>
		<link>http://www.petitesmerveillesduweb.com/zen-coding-programmer-rapidement-en-html-xml-xsl/</link>
		<comments>http://www.petitesmerveillesduweb.com/zen-coding-programmer-rapidement-en-html-xml-xsl/#comments</comments>
		<pubDate>Mon, 18 Oct 2010 19:31:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[outil]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[tutoriel]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[fast coding]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[phpstorm]]></category>
		<category><![CDATA[tricks]]></category>
		<category><![CDATA[xsl]]></category>
		<category><![CDATA[zencoding]]></category>

		<guid isPermaLink="false">http://www.petitesmerveillesduweb.com/?p=274</guid>
		<description><![CDATA[Dans un billet précédent, je vous parlais de PHPStorm, un IDE pour PHP extrêmement bien fait. Et bien, il y avait une autre fonctionnalité que je ne connaissais pas qui était implémentée au sein de PHPStorm. Zen coding, vous connaissez? Moi, je ne connaissais pas et je suis très heureux de l&#8217;avoir découvert. Zen Coding <a href="http://www.petitesmerveillesduweb.com/zen-coding-programmer-rapidement-en-html-xml-xsl/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dans un billet précédent, je vous parlais de PHPStorm, un IDE pour PHP extrêmement bien fait. Et bien, il y avait une autre fonctionnalité que je ne connaissais pas qui était implémentée au sein de PHPStorm. Zen coding, vous connaissez? Moi, je ne connaissais pas et je suis très heureux de l&#8217;avoir découvert.</p>
<p>Zen Coding permet d&#8217;écrire ceci :</p>
<p>[codesyntax lang="html4strict"]</p>
<pre>&lt;div id="content"&gt;
    &lt;ul&gt;
        &lt;li&gt;&lt;/li&gt;
        &lt;li&gt;&lt;/li&gt;
        &lt;li&gt;&lt;/li&gt;
    &lt;/ul&gt;
&lt;/div&gt;</pre>
<p>[/codesyntax]</p>
<p>avec cette simple ligne :</p>
<p><strong>div#content.page&gt;ul.listPost&gt;li*3</strong></p>
<p>ou si vous voulez faire une liste incrémentée, comme ceci:</p>
<p>[codesyntax lang="html4strict"]</p>
<pre>&lt;p class="name-1"&gt;&lt;/p&gt;
&lt;p class="name-2"&gt;&lt;/p&gt;
&lt;p class="name-3"&gt;&lt;/p&gt;</pre>
<p>[/codesyntax]</p>
<p>il suffit de faire cela:</p>
<p><strong>p.name-$*3</strong></p>
<p>Bon, voici une <a href="http://code.google.com/p/zen-coding/wiki/ZenHTMLSelectorsEn" target="_blank">liste d&#8217;exemple</a>.</p>
<p>Lien officiel: <a href="http://code.google.com/p/zen-coding/" target="_blank">http://code.google.com/p/zen-coding/</a></p>
<p>Amusez-vous bien!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petitesmerveillesduweb.com/zen-coding-programmer-rapidement-en-html-xml-xsl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress &#8211; Plugin Handbook &#8211; Avoir une liste des articles préférés</title>
		<link>http://www.petitesmerveillesduweb.com/wordpress-plugin-handbook-avoir-une-liste-des-articles-preferes/</link>
		<comments>http://www.petitesmerveillesduweb.com/wordpress-plugin-handbook-avoir-une-liste-des-articles-preferes/#comments</comments>
		<pubDate>Fri, 08 Oct 2010 20:08:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[handbook]]></category>
		<category><![CDATA[plugin wordpress]]></category>
		<category><![CDATA[wp-handbook]]></category>

		<guid isPermaLink="false">http://www.petitesmerveillesduweb.com/?p=280</guid>
		<description><![CDATA[Je viens de finir une extension pour WordPress permettant de se faire une liste d&#8217;articles pour l&#8217;utilisateur et d&#8217;ensuite générer un PDF. L&#8217;extension se nomme WP_Handbook. En gros, l&#8217;utilisateur lit votre article et lui donne la possibilité d&#8217;ajouter cet article dans son &#8220;booklet&#8221;(ou favoris). Ensuite, l&#8217;utilisateur a le choix de générer un PDF avec tous <a href="http://www.petitesmerveillesduweb.com/wordpress-plugin-handbook-avoir-une-liste-des-articles-preferes/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Je viens de finir une extension pour WordPress permettant de se faire une liste d&#8217;articles pour l&#8217;utilisateur et d&#8217;ensuite générer un PDF.</p>
<p>L&#8217;extension se nomme <a href="http://wordpress.org/extend/plugins/wp-handbook/">WP_Handbook</a>.</p>
<p>En gros, l&#8217;utilisateur lit votre article et lui donne la possibilité d&#8217;ajouter cet article dans son &#8220;booklet&#8221;(ou favoris). Ensuite, l&#8217;utilisateur a le choix de générer un PDF avec tous les articles précédemment ajoutés, d&#8217;attribuer un titre et une image. La liste des articles est stockée dans la session utilisateur, ce qui évite à l&#8217;utilisateur d&#8217;avoir un compte.</p>
<p>N&#8217;hésitez pas de me laisser vos commentaires pour que je puisse améliorer l&#8217;extension.</p>
<p><a href="http://wordpress.org/extend/plugins/wp-handbook/">http://wordpress.org/extend/plugins/wp-handbook/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.petitesmerveillesduweb.com/wordpress-plugin-handbook-avoir-une-liste-des-articles-preferes/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Utiliser n&#8217;importe quel font avec Font Squirrel</title>
		<link>http://www.petitesmerveillesduweb.com/utiliser-nimporte-quel-font-avec-font-squirrel-2/</link>
		<comments>http://www.petitesmerveillesduweb.com/utiliser-nimporte-quel-font-avec-font-squirrel-2/#comments</comments>
		<pubDate>Fri, 17 Sep 2010 00:32:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.petitesmerveillesduweb.com/?p=259</guid>
		<description><![CDATA[J&#8217;utilisais récemment un outil nommé Cufon pour générer des fonts compatibles pour le web. Cependant, cet outil occasionnait certains problèmes lorsque venait le temps de l&#8217;utiliser de différente façons avec le CSS. En effet, il générait quelques fois des espaces superflus&#8230; Cette déception fut rapidement oubliée lorsque j&#8217;ai découvert Font Squirrel. Tout d&#8217;abord, les bugs que <a href="http://www.petitesmerveillesduweb.com/utiliser-nimporte-quel-font-avec-font-squirrel-2/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>J&#8217;utilisais récemment un outil nommé <a href="http://cufon.shoqolate.com/generate/" target="_blank">Cufon</a> pour générer des fonts compatibles pour le web. Cependant, cet outil occasionnait certains problèmes lorsque venait le temps de l&#8217;utiliser de différente façons avec le CSS. En effet, il générait quelques fois des espaces superflus&#8230;</p>
<p>Cette déception fut rapidement oubliée lorsque j&#8217;ai découvert <strong><a href="http://www.fontsquirrel.com/" target="_blank">Font Squirrel</a></strong>. Tout d&#8217;abord, les bugs que j&#8217;avais expérimentés avec Cufon ne se reproduisait pas dans Font Squirrel! Ensuite, contrairement à Cufon, il est possible de sélectionner le texte généré et cela parce que Font Squirrel utilise @font-face.</p>
<p>Finalement, la force de Font Squirrel réside dans son <a href="http://www.fontsquirrel.com/fontface/generator" target="_blank"><strong>outil de conversion</strong></a>. Il ne vous suffira que d&#8217;ajouter les fonts que vous possédez, de choisir le mode EASY ou EXPERT(EASY suffit 90% du temps) et d&#8217;accepter les ententes légales.</p>
<p>Après avoir téléchargé le <em>package</em>, vous devrez insérer <em>stylesheet.css</em> à votre page. Il ne vous reste plus qu&#8217;à utiliser la nouvelle font dans votre CSS:</p>
<p>[cci]h3 {font-family: &#8216;NouvelleFont&#8217;}[/cci]</p>
<p><em>N.B.</em>: En mode EASY, le générateur prend vos fonts et les convertit en format EOT (pour Internet Explorer), SVG (Chrome, Safari, iPhone et iPad), WOFF (FireFox 3.6+) et TrueType.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petitesmerveillesduweb.com/utiliser-nimporte-quel-font-avec-font-squirrel-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Outil de développement PHP &#8211; PhpStorm</title>
		<link>http://www.petitesmerveillesduweb.com/outil-de-developpement-php-phpstorm/</link>
		<comments>http://www.petitesmerveillesduweb.com/outil-de-developpement-php-phpstorm/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 00:28:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IDE]]></category>
		<category><![CDATA[outil]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.petitesmerveillesduweb.com/?p=252</guid>
		<description><![CDATA[Si vous cherchez un outil de développement PHP performant, je vous conseil PhpStorm. Après avoir utilisé NotePad++, E-TextEditor, Eclipse, j&#8217;avais toujours le même problème. J&#8217;étais incapable d’utiliser convenablement mon gestionnaire de version et mon FTP. Les avantages que j&#8217;ai notés avec l&#8217;utilisation de PhpStorm : l&#8217;intégration de Subversion, Git et CVS de base; la facilité avec <a href="http://www.petitesmerveillesduweb.com/outil-de-developpement-php-phpstorm/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Si vous cherchez un outil de développement PHP performant, je vous conseil <a href="http://www.jetbrains.com/phpstorm/" target="_blank"><em><strong>PhpStorm</strong></em></a>.</p>
<p>Après avoir utilisé <a href="http://notepad-plus-plus.org/" target="_blank">NotePad++</a>, <a href="http://www.e-texteditor.com/" target="_blank">E-TextEditor</a>, <a href="http://www.eclipse.org/downloads/packages/eclipse-php-developers/heliosr" target="_blank">Eclipse</a>, j&#8217;avais toujours le même problème. J&#8217;étais incapable d’utiliser convenablement mon gestionnaire de version et mon FTP.</p>
<p>Les avantages que j&#8217;ai notés avec l&#8217;utilisation de PhpStorm :</p>
<ul>
<li>l&#8217;intégration de Subversion, Git et CVS de base;</li>
<li>la facilité avec laquelle on peut faire des commits, c&#8217;est-à-dire grâce à un raccourci clavier: CTRL-K;</li>
<li>la possibilité de synchroniser mes fichiers avec le FTP au moment de la sauvegarde;</li>
<li>la facilité avec laquelle on peut migrer un projet existant dans PhpStorm, d&#8217;activer le gestionnaire de version et le FTP;</li>
<li>le <em>refactor</em>;</li>
<li>les nombreux raccourcis clavier.</li>
</ul>
<p>Les désavantages :</p>
<ul>
<li>Il est payant : 99$ pour une licence personnelle et 199$ pour une licence commerciale. Par contre, il existe une <a href="http://www.jetbrains.com/phpstorm/buy/index.jsp" target="_blank">version étudiante</a> gratuite permettant d&#8217;essayer la version complète de PhpStorm;</li>
<li>Une interface un peu lente. Heureusement, la version 2.0 qui promet un regain de vitesse arrive très prochainement.</li>
</ul>
<p>Vous, quel est votre outil de développement préféré et pourquoi?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petitesmerveillesduweb.com/outil-de-developpement-php-phpstorm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

