<?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>Wibeset</title>
	<atom:link href="http://wibeset.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://wibeset.com</link>
	<description>Building websites</description>
	<lastBuildDate>Fri, 26 Feb 2010 02:52:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Envoyer des courriels en SMTP via Gmail avec PHPMailer</title>
		<link>http://wibeset.com/envoyer-des-courriels-en-smtp-via-gmail-avec-phpmailer/</link>
		<comments>http://wibeset.com/envoyer-des-courriels-en-smtp-via-gmail-avec-phpmailer/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 02:48:19 +0000</pubDate>
		<dc:creator>Dominic</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://wibeset.com/?p=338</guid>
		<description><![CDATA[Après avoir passé à Google Apps, j&#8217;ai cherché comment envoyer des courriels en SMTP via Gmail à partir d&#8217;un script PHP. Voici la solution avec PHPMailer: 

require_once "class.phpmailer.php";

$mailer = new PHPMailer();

$mailer->IsSMTP();  // telling the class to use SMTP
$mailer->Username = "username"; // gmail username
$mailer->Password = "password"; // gmail password
$mailer->Host = "smtp.gmail.com"; // SMTP server
$mailer->Port = [...]]]></description>
			<content:encoded><![CDATA[<p>Après avoir passé à Google Apps, j&#8217;ai cherché comment envoyer des courriels en SMTP via Gmail à partir d&#8217;un script PHP. Voici la solution avec <a href="http://phpmailer.worxware.com/">PHPMailer</a>: </p>
<pre name="code" class="php">
require_once "class.phpmailer.php";

$mailer = new PHPMailer();

$mailer->IsSMTP();  // telling the class to use SMTP
$mailer->Username = "username"; // gmail username
$mailer->Password = "password"; // gmail password
$mailer->Host = "smtp.gmail.com"; // SMTP server
$mailer->Port = 465;
$mailer->SMTPSecure = 'ssl';
$mailer->SMTPAuth = true;

$mailer->FromName = "From";
$mailer->From = "from@example.com";
$mailer->AddAddress("to@example.com");

$mailer->Subject  = "My SMTP message with Gmail";
$mailer->Body     = "Hello world!";
$mailer->WordWrap = 50;

if (!$mailer->Send()) {
    echo 'Message was not sent.';
    echo 'Mailer error: ' . $mailer->ErrorInfo;
} else {
    echo 'Message has been sent.';
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://wibeset.com/envoyer-des-courriels-en-smtp-via-gmail-avec-phpmailer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Colorisation de Subversion</title>
		<link>http://wibeset.com/colorisation-de-subversion/</link>
		<comments>http://wibeset.com/colorisation-de-subversion/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 00:55:28 +0000</pubDate>
		<dc:creator>Dominic</dc:creator>
				<category><![CDATA[Outil]]></category>

		<guid isPermaLink="false">http://wibeset.com/?p=283</guid>
		<description><![CDATA[Ajouter de la couleur à Subversion grâce au script bash de jmlacroix.
Copiez la fonction dans votre bash (~/.bashrc sous Ubuntu) et le tour est joué. Pour désactiver la couleur, il suffit simplement d&#8217;ajouter &#8211;nocol à votre commande svn.
]]></description>
			<content:encoded><![CDATA[<p>Ajouter de la couleur à Subversion grâce au <a href="http://github.com/jmlacroix/svn-color">script bash</a> de <a href="http://twitter.com/jmlacroix">jmlacroix</a>.</p>
<p>Copiez la fonction dans votre bash (~/.bashrc sous Ubuntu) et le tour est joué. Pour désactiver la couleur, il suffit simplement d&#8217;ajouter <em>&#8211;nocol</em> à votre commande <em>svn</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://wibeset.com/colorisation-de-subversion/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Optimisations de base</title>
		<link>http://wibeset.com/optimisations-de-base/</link>
		<comments>http://wibeset.com/optimisations-de-base/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 01:24:23 +0000</pubDate>
		<dc:creator>Dominic</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[optimisation]]></category>

		<guid isPermaLink="false">http://wibeset.com/?p=223</guid>
		<description><![CDATA[Il n&#8217;y a pas de problème de performance tant qu&#8217;il n&#8217;y a pas de problème de performance. Néanmoins, lorsque je développe un nouveau site, il y a toujours quelques trucs de base que je fais.
Je conseille fortement l&#8217;installation de l&#8217;extension Yslow sous Firefox. Cette extension analyse votre page et vous suggère des façons d&#8217;améliorer les [...]]]></description>
			<content:encoded><![CDATA[<p>Il n&#8217;y a pas de problème de performance tant qu&#8217;il n&#8217;y a pas de problème de performance. Néanmoins, lorsque je développe un nouveau site, il y a toujours quelques trucs de base que je fais.</p>
<p>Je conseille fortement l&#8217;installation de l&#8217;extension <a href="http://developer.yahoo.com/yslow/">Yslow</a> sous Firefox. Cette extension analyse votre page et vous suggère des façons d&#8217;améliorer les performances de celle-ci basé sur <a href="http://developer.yahoo.com/performance/rules.html">certaines règles de base</a>. Vous y retrouverez les suggestions ci-dessous&#8230;</p>
<h2>1. Ajouter une date d&#8217;expiration aux fichiers statiques</h2>
<p>En ajoutant une date d&#8217;expiration dans le futur à vos fichier statiques (css, js, png, gif, jpg), cela évite aux navigateurs de retélécharger chaque fichier inutilement à chaque page vue. Ce code doit être ajouté dans un .htaccess.</p>
<pre name="code" class="php">
  &lt;FilesMatch "\.(js|css|gif|jpg|png)$"&gt;
     ExpiresActive On
     ExpiresDefault "access plus 10 years"
  &lt;/FilesMatch&gt;
</pre>
<p>L&#8217;effet de bord est que si vous modifiez un de vos fichiers statiques, la modification ne sera pas pris en compte par le navigateur ayant déjà celui en cache. La solution est de simplement ajouter une version dans le url du fichier&#8230;</p>
<h3>Fonction pour ajouter automatiquement une version</h3>
<p>Vous pouvez toujours gérer manuellement le versionning ou encore, écrire une fonction qui génère une url avec version à partir de la date de modification du fichier. </p>
<pre name="code" class="php">
/**
  * Return file url with version
  *
  * @param string $filename
  * @return string file url with version
  *
  */
function version($filename) {

  // Get file's version
  $version = filemtime(ABSPATH.$filename);

  return APP_URL.$filename."?v=".$version;

} // version()
</pre>
<p><em>n.b: <strong>ABSPATH</strong> correspond à la racine de votre projet et <strong>APP_URL</strong> correspond au URL de votre projet à la racine aussi.</em></p>
<pre name="code" class="xml">
<img src="http://example.com/public/img/logo.gif?v=1234567890" />
</pre>
<h2>2. Compresser le contenu</h2>
<p>En compressant votre contenu avec Gzip, vous devriez réduire de 20% à 30% la taille des fichiers, donc moins de bandwith et plus rapide à télécharger par vos utilisateurs.</p>
<p>Assurez-vous que le module deflate soit actif sous Apache&#8230; Dans un terminal, effectuez la commande suivante:</p>
<pre name="code" class="php">
a2enmod deflate
</pre>
<p>Et redémarrer Apache&#8230;</p>
<pre name="code" class="php">
/etc/init.d/apache2 restart
</pre>
<p>Si vous êtes sur un hébergeur payant tel que MediaTemple ou iWeb, ce module est assurément actif. Par la suite, via un .htaccess, ajoutez les lignes suivantes:</p>
<pre name="code" class="php">
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</pre>
<h2>3. Compresser vos fichiers CSS</h2>
<p>Encore une fois, plus les fichiers sont petit, mieux c&#8217;est. Je m&#8217;assure toujours de compresser les fichiers CSS de base de mes projets. À l&#8217;aide d&#8217;un script shell, j&#8217;enlève toutes les espaces inutiles et je réduis les styles sur une seule ligne.</p>
<p>Dans un script shell&#8230;</p>
<pre name="code" class="php">
cat $1 | sed -e 's/^[ \t]*//g; s/[ \t]*$//g; s/\([:{;,]\) /\1/g; s/ {/{/g; s/\/\*.*\*\///g; /^$/d' | sed -e :a -e '$!N; s/\n\(.\)/\1/; ta' > $2
</pre>
<p>Et maintenant, éxécutez la commande suivante:</p>
<pre name="code" class="php">
$> ./minify-css in.css out.css
</pre>
<p>Vous devriez normalement réduire vos fichier CSS de 10 à 15%.</p>
<h2>4. Compresser vos fichiers javascript</h2>
<p>Il existe plusieurs compresseur javascript. J&#8217;aime bien <a href="http://github.com/rgrove/jsmin-php/">JSMin</a> de Douglas Crockford. </p>
<pre name="code" class="php">
require 'jsmin.php';
echo JSMin::minify(file_get_contents('main.js'));
</pre>
<p>Lorsqu&#8217;il y a plus de 1 fichier javascript dans une page, le plus possible, tentez de les compresser en un seul fichier. Moins de requêtes sur votre serveur, plus de performance.</p>
]]></content:encoded>
			<wfw:commentRss>http://wibeset.com/optimisations-de-base/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ligues.ca, la gestion de ligues sportives rendue facile</title>
		<link>http://wibeset.com/ligues-ca-la-gestion-de-ligues-sportives-rendue-facile/</link>
		<comments>http://wibeset.com/ligues-ca-la-gestion-de-ligues-sportives-rendue-facile/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 23:08:28 +0000</pubDate>
		<dc:creator>Wibeset</dc:creator>
				<category><![CDATA[Ligues.ca]]></category>
		<category><![CDATA[Projet]]></category>

		<guid isPermaLink="false">http://wibeset.com/?p=129</guid>
		<description><![CDATA[Il y a quelques jours, j&#8217;ai lancé mon dernier projet: http://ligues.ca.
Ligues.ca est un gestionnaire de ligues sportives. Pour le moment, seulement les ligues de hockey peuvent être ajouté mais au cours des prochains mois s&#8217;ajouteront baseball, soccer, football, tennis, badminton, etc. Mon but premier est d&#8217;offrir un outil facile à utiliser.
Ce projet est sans aucun [...]]]></description>
			<content:encoded><![CDATA[<p>Il y a quelques jours, j&#8217;ai lancé mon dernier projet: <a title="Ligues.ca" href="http://ligues.ca">http://ligues.ca</a>.</p>
<p>Ligues.ca est un gestionnaire de ligues sportives. Pour le moment, seulement les ligues de hockey peuvent être ajouté mais au cours des prochains mois s&#8217;ajouteront baseball, soccer, football, tennis, badminton, etc. Mon but premier est d&#8217;offrir un outil facile à utiliser.</p>
<p>Ce projet est sans aucun doute le plus gros jusqu&#8217;à présent. L&#8217;idée à germé il y a 7 ans environ après avoir développé <a title="PoolChampion" href="http://poolchampion.com">PoolChampion</a>, un défunt gestionnaire de pool de hockey qui renaîtra certainement un jour. C&#8217;est en décembre 2008 que j&#8217;ai commencé à travailler activement sur le projet. Je ne sais pas combien d&#8217;heures j&#8217;y ai travaillé mais je peux dire que j&#8217;y ai passé plusieurs soirées et fin de semaines :).</p>
<p>Contrairement à mes autres projets, Ligues.ca se veut beaucoup plus sérieux (sans vouloir dire que les autres n&#8217;étaient pas sérieux &#8211; disons plus léger). C&#8217;est le début de quelque chose&#8230;</p>
<p>Le site: <a title="Ligues.ca" href="http://ligues.ca">http://ligues.ca</a></p>
<p>Le blogue: <a title="Le blogue de Ligues.ca" href="http://blog.ligues.ca">http://blog.ligues.ca</a></p>
<p>Le Twitter: <a title="Le Twitter de Ligues.ca" href="http://twitter.com/liguesca">http://twitter.com/liguesca</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wibeset.com/ligues-ca-la-gestion-de-ligues-sportives-rendue-facile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plugin jQuery: fieldSelection</title>
		<link>http://wibeset.com/plugin-jquery-fieldselection/</link>
		<comments>http://wibeset.com/plugin-jquery-fieldselection/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 18:02:21 +0000</pubDate>
		<dc:creator>Wibeset</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://wibeset.com/?p=124</guid>
		<description><![CDATA[Le plugin fieldSelection permet d&#8217;obtenir du texte sélectionné et de la replacer. Très léger et très pratique lorsque vous développer votre propre Rich Text Editor.
]]></description>
			<content:encoded><![CDATA[<p>Le plugin <a href="http://cfsilence.com/blog/client/index.cfm/2009/7/31/RetrieveReplace-Selected-Text-With-jQuery">fieldSelection</a> permet d&#8217;obtenir du texte sélectionné et de la replacer. Très léger et très pratique lorsque vous développer votre propre Rich Text Editor.</p>
]]></content:encoded>
			<wfw:commentRss>http://wibeset.com/plugin-jquery-fieldselection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Total Wireframe &#8211; Une banque de modèle pour le prototyping&#8230;</title>
		<link>http://wibeset.com/total-wireframe-une-banque-de-modele-pour-le-prototyping/</link>
		<comments>http://wibeset.com/total-wireframe-une-banque-de-modele-pour-le-prototyping/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 17:53:01 +0000</pubDate>
		<dc:creator>Wibeset</dc:creator>
				<category><![CDATA[Découvertes]]></category>

		<guid isPermaLink="false">http://wibeset.com/?p=122</guid>
		<description><![CDATA[Total Wireframe est une shop de components pour l&#8217;outil de prototypage Axure. Vous y trouverez plein de modèle pour vos prototypes comme la boîte de Facebook Connect, Google maps, un player Vimeo, un player Youtube, etc.
Alors si vous prototypez sur Axure, allez tout de suite sur Total Wireframe. :)
Oh, et pour les Twitteux de ce [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.totalwireframe.com/">Total Wireframe</a> est une shop de components pour l&#8217;outil de prototypage Axure. Vous y trouverez plein de modèle pour vos prototypes comme la boîte de Facebook Connect, Google maps, un player Vimeo, un player Youtube, etc.</p>
<p>Alors si vous prototypez sur Axure, allez tout de suite sur <a href="http://www.totalwireframe.com/">Total Wireframe</a>. :)</p>
<p>Oh, et pour les Twitteux de ce monde, suivez Total Wireframe sur @<a href="http://twitter.com/totalwireframe">totalwireframe</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://wibeset.com/total-wireframe-une-banque-de-modele-pour-le-prototyping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Du mouvement&#8230;</title>
		<link>http://wibeset.com/du-mouvement/</link>
		<comments>http://wibeset.com/du-mouvement/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 18:12:16 +0000</pubDate>
		<dc:creator>Wibeset</dc:creator>
				<category><![CDATA[Non-classé]]></category>

		<guid isPermaLink="false">http://wibeset.com/?p=120</guid>
		<description><![CDATA[À partir d&#8217;aujourd&#8217;hui, http://wibe7.tv devient http://tv.wibeset.com et http://propulse.ca devient http://propulse.wibeset.com.
]]></description>
			<content:encoded><![CDATA[<p>À partir d&#8217;aujourd&#8217;hui, <a href="http://wibe7.tv">http://wibe7.tv</a> devient <a href="http://tv.wibeset.com">http://tv.wibeset.com</a> et <a href="http://propulse.ca">http://propulse.ca</a> devient <a href="http://propulse.wibeset.com">http://propulse.wibeset.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://wibeset.com/du-mouvement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Client PHP5 pour Twitter</title>
		<link>http://wibeset.com/client-php5-pour-twitter/</link>
		<comments>http://wibeset.com/client-php5-pour-twitter/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 22:35:21 +0000</pubDate>
		<dc:creator>Wibeset</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://wibeset.com/?p=113</guid>
		<description><![CDATA[Mini client PHP5 pour mettre à jour votre statut sur Twitter:

&#60;?php

/**
 * Twitter client
 *
 * @see Twitter
 * @see Twitter API documentation
 *
 */

class twitter {

  protected $url = "http://twitter.com/";

  /**
   * cURL instance
   */
  protected $ch = null;

  /**
   * Authentication
   [...]]]></description>
			<content:encoded><![CDATA[<p>Mini client PHP5 pour mettre à jour votre statut sur Twitter:</p>
<pre name="code" class="php">
&lt;?php

/**
 * Twitter client
 *
 * @see <a href="http://twitter.com/">Twitter</a>
 * @see <a href="http://apiwiki.twitter.com/REST+API+Documentation">Twitter API documentation</a>
 *
 */

class twitter {

  protected $url = "http://twitter.com/";

  /**
   * cURL instance
   */
  protected $ch = null;

  /**
   * Authentication
   */
  protected $username = '';
  protected $password = '';
  protected $authentication = '';

  /**
   * Constructor
   */
  public function __construct() {
    $this-&gt;ch = curl_init();
    curl_setopt($this-&gt;ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($this-&gt;ch, CURLOPT_HEADER, 0);
    curl_setopt($this-&gt;ch, CURLOPT_VERBOSE, 0);
  } // __construct()

  /**
   * Destructor
   */
  public function __destruct() {
    curl_close($this-&gt;ch);
  } // __destruct()

 /**
   * Set user authentication
   *
   * @param username (string)
   * @param password (string)
   *
   */
  public function set_authentication($username, $password) {

    $this-&gt;username = $username;
    $this-&gt;password = $password;
    $this-&gt;authentication = $this-&gt;username.':'.$this-&gt;password;

  } // set_authentication()

  /**
   * Update the authenticating user's status
   * Authentication must be setted.
   *
   * @param status_text (string) new user's status
   *
   */
  public function update($status_text) {

    curl_setopt($this-&gt;ch, CURLOPT_URL, $this-&gt;url."statuses/update.json");
    curl_setopt($this-&gt;ch, CURLOPT_USERPWD, $this-&gt;authentication);
    curl_setopt($this-&gt;ch, CURLOPT_POST, 1);
    curl_setopt($this-&gt;ch, CURLOPT_POSTFIELDS, array('status' =&gt; $status_text));

    $result = curl_exec($this-&gt;ch);

    return json_decode($result, true);

  } // update()

} // twitter
</pre>
<p>Demo:</p>
<pre name="code" class="php">
 $twitter = new twitter();
  $twitter-&gt;set_authentication('username', 'password');
  $twitter-&gt;update('hello from my new php5 client :)');
</pre>
<p>Pré-requis: cURL enabled et PHP >= 5.2.0</p>
]]></content:encoded>
			<wfw:commentRss>http://wibeset.com/client-php5-pour-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Highlighter son code dans un billet&#8230;</title>
		<link>http://wibeset.com/highlighter-son-code-dans-un-billet/</link>
		<comments>http://wibeset.com/highlighter-son-code-dans-un-billet/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 02:04:58 +0000</pubDate>
		<dc:creator>Wibeset</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://wibeset.com/?p=100</guid>
		<description><![CDATA[J&#8217;ai découvert récemment un petit plugin JavaScript vraiment cool qui permet d&#8217;highlighter du code. D&#8217;ailleurs, je l&#8217;ai utilisé pour la première fois dans le billet &#8220;Obtenir un permalink en JavaScript&#8220;.
Ce plugin supporte les langages suivant: C++, PHP, Javascript, CSS, C#, Delphi, Java, Python, Ruby, Sql, VB et XML/HTML.
Google Syntax Highlighter
Un court aperçu Php:

  &#60;?php

 [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai découvert récemment un <a title="Google Syntax Highlighter" href="http://code.google.com/p/syntaxhighlighter/">petit plugin JavaScrip</a>t vraiment cool qui permet d&#8217;highlighter du code. D&#8217;ailleurs, je l&#8217;ai utilisé pour la première fois dans le billet &#8220;<a title="Obtenir un permalink en JavaScript" href="http://wibeset.com/obtenir-un-permalink-en-javascript/">Obtenir un permalink en JavaScript</a>&#8220;.</p>
<p>Ce plugin supporte les langages suivant: C++, PHP, Javascript, CSS, C#, Delphi, Java, Python, Ruby, Sql, VB et XML/HTML.</p>
<p><a title="Google Syntax Highlighter" href="http://code.google.com/p/syntaxhighlighter/">Google Syntax Highlighter</a></p>
<p>Un court aperçu Php:</p>
<pre name="code" class="Php">
  &lt;?php

  // Best PHP script I ever made ;)
  echo 'Hello world!';
</pre>
]]></content:encoded>
			<wfw:commentRss>http://wibeset.com/highlighter-son-code-dans-un-billet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Obtenir un permalink en JavaScript</title>
		<link>http://wibeset.com/obtenir-un-permalink-en-javascript/</link>
		<comments>http://wibeset.com/obtenir-un-permalink-en-javascript/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 01:49:43 +0000</pubDate>
		<dc:creator>Wibeset</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://wibeset.com/?p=96</guid>
		<description><![CDATA[La fonction to_permalink() est une simple fonction JavaScript qui vous permettra de transformer une string en permalink.

/**
 * Return string as permalink
 */
function to_permalink(str) {

  // remove accent
  str = str.replace(/[?&#124; âä]/gi,"a");
  str = str.replace(/[éèêë]/gi,"e");
  str = str.replace(/[îï]/gi,"i");
  str = str.replace(/[ôö]/gi,"o");
  str = str.replace(/[ùûü]/gi,"u");

  // remove special chars
 [...]]]></description>
			<content:encoded><![CDATA[<p>La fonction <strong>to_permalink()</strong> est une simple fonction JavaScript qui vous permettra de transformer une string en permalink.</p>
<pre name="code" class="JScript">
/**
 * Return string as permalink
 */
function to_permalink(str) {

  // remove accent
  str = str.replace(/[?| âä]/gi,"a");
  str = str.replace(/[éèêë]/gi,"e");
  str = str.replace(/[îï]/gi,"i");
  str = str.replace(/[ôö]/gi,"o");
  str = str.replace(/[ùûü]/gi,"u");

  // remove special chars
  str = str.replace(/[^a-z0-9_]/gim, "_").replace(/[_+]/gi, "_");

  return str;
}
</pre>
<p>Un exemple&#8230;</p>
<pre name="code" class="JScript">

  var str = "Je suis le titre d'un article époustouflant!";

  // Retournera le permalink 'Je_suis_le_titre_dun_article_epoustouflant'
  var permalink = to_permalink(str);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://wibeset.com/obtenir-un-permalink-en-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
