Wordpress sans plugins

Au mois d’Août dernier, j’ai publié une liste de 21 plugins WordPress inutiles, mal conçus ou pas assez optimisés.

J’ai eu pas mal de retours allant de l’insulte au remerciement, et beaucoup m’ont demandé quelles alternatives je pouvais proposer.

En conséquence, je ne pouvais pas faire l’impasse sur un article avec 21 hacks pour 21 plugins WordPress inutiles. Et comme le montre le sommaire, l’article va être long…^^

Je vais me répéter à plusieurs reprises, puisqu’un des avantages de mes hacks est simple : un élément codé en dur en html sera toujours plus rapide que le même code généré en php et avec une requête en base de données. L’autre élément récurrent, c’est que cela dispense aussi de faire des mises à jour des hacks : pour information, je n’ai eu aucun bug depuis la version 2.7 de WordPress (nous en sommes aujourd’hui à WordPress 3.0.1).

Pour remplacer les plugins de statistiques

Google Analytics et WordPress

» Google Analyticator et Ultimate Google Analytics

Ces plugins servent à installer de manière automatique le code de Google Analytics sur WordPress. Mais on peut faire la même chose directement dans son thème, tout en ajoutant des paramètres supplémentaires pour un meilleur suivi de vos visiteurs.

Voici le code de base de GA, où XXX est l’identifiant de votre profil :

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXX']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>

Au passage, on peut même le compresser un peu pour un peu plus de rapidité, ce qui donne :

<script type="text/javascript">var _gaq=_gaq||[];_gaq.push(['_setAccount','UA-XXX']);_gaq.push(['_trackPageview']);(function(){var ga=document.createElement('script');ga.type='text/javascript';ga.async=true;ga.src=('https:'==document.location.protocol?'https://ssl':'http://www')+'.google-analytics.com/ga.js';var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(ga,s);})();</script>

Je pourrais faire des dizaines d’articles sur comment paramétrer et utiliser GA, mais ce n’est pas l’objectif de cet article. Je vous invite donc à lire le Guide de Google Analytics, qui sera complété au fur et à mesure. En attendant, voici quelques bases :

  • 1 seul code GA par page
  • Le code est placé en haut de page, juste avant </head>

Vous pouvez ajouter des codes supplémentaires pour affiner votre analyse. Pour suivre un évènement, vous pouvez ajouter ce code sur chacun de liens ou boutons

onclick="_gaq.push(['_trackEvent', 'categorie', 'action', valeur]);"

On peut donc classer les actions dans une catégorie, et leur attribuer une valeur. Pour les variables, rien de tel que le guide des variables personnalisées de Google Analytics. Je ferais un jour un guide pour débutant pour GA, pour bien comprendre à quoi cela sert et comment s’en servir.

L’intérêt face au plugin :

  • On peut tout tracker, contrairement aux plugins qui seront forcément limités (même pour les mieux conçus, puisque chaque site est unique)
  • Le code est en dur, et se charge donc un peu plus vite

Source : de très nombreux sites d’aides sur Analytics, et moi-même ^^

Statistiques intégrées à WordPress

» WordPress.com Stats et WP-Stats-Dashboard

Si vous cherchez à avoir une alternative à ces plugins, vous avez tord : ne les remplacez pas, tout simplement. Si vous avez mis en place Google Analytics comme expliqué précédemment, ces outils ne vous servent plus à rien, ils sont inefficaces et incomplets.

Et si vous tenez tant que ça à avoir vos statistiques visibles dans votre admin, utilisez plutôt le plugin Google Analytics Dashboard, qui ne ralentira que l’administration de WP et vous donnera quand même les statistiques de vos visites.

L’intérêt face au plugin : ils ne servent à rien et ne font que ralentir le blog vis-à-vis de Google Analytics

Pour accélérer WordPress sans plugins

Minifiez votre thème

» Wp-minify

Comme expliqué précédemment, WP-Minify va compresser vos fichiers CSS et JS. Comme d’habitude, votre thème pourrait déjà être minifié ce qui éviterait de recourir à ce plugin. La solution est simple : copier/coller le contenu de vos fichiers dans ces deux outils, et le tour est joué :

La seule chose qu’il manque, c’est de pouvoir minifier l’html généré à partir de la base de donnée (pas celui de votre thème). Je sais que W3 Total Cache le fait. Personnellement, j’utilise WP Super Cache et DB Cache Reloaded suite à mon test des plugins de cache WordPress.

L’intérêt face au plugin : plus rapide, toujours plus rapide ^^

Source : Google est ton ami pour trouver les outils dont tu as besoin

Pour ajouter manuellement un aspect social à WordPress

Boutons de partage

» AddToAny, SexyBookmarks, Sociable ou encore Bling This

Un exemple de boutons de partage sur WordPress
Un exemple de boutons de partage sur WordPress

Pour ajouter facilement des fonctions de partages sur les réseaux sociaux, utilisez tout simplement les codes suivants (il ne vous restera que la mise en page à faire) :

Partager sur Facebook

<a href="http://www.facebook.com/share.php?u=<?php the_permalink() ?>" target="blank" rel="nofollow" title="Partagez cet article sur Facebook">Partager sur facebook</a>

Partager sur Twitter

<a href="http://twitter.com/home?status=<?php the_permalink() ?>" target="blank" rel="nofollow" title="Partagez cet article sur Twitter">Partager sur Twitter</a>

Partager par email

<a href="mailto:?subject=Un%20ami%20vous%20fait%20partager%20:%20<?php the_title(); ?>&body=Découvrez%20<strong><?php the_title(); ?></strong>%20:%20<a href=<?php the_permalink() ?>><?php the_permalink() ?></a>" rel="nofollow" title="Partagez cet article par Email">Email</a>

Pour le partage par email, cela ouvre le client mail de l’utilisateur, en remplissant par défaut le titre du mail et une partie du contenu. Remplacez le passage après « subject » par votre contenu, sachant que %20 veut dire « espace ».

Partager sur BlogMeme

<a href="http://www.blogmemes.fr/post.php?url=<?php the_permalink() ?>" target="blank" rel="nofollow" title="Partagez cet article sur BlogMeme">Partager sur Blogmeme</a>

Il existe bien entendu d’autres DiggLike, mais ils fonctionnent tous de la même façon : url-digglike/?url-de-mon-article. Je vous conseille d’en mettre le moins possible, avec seulement les plus pertinents. Car à chaque fois, c’est un lien de plus (dilution de pagerank), et cela peut perdre vos visiteurs avec des fonctionnalités inutiles.

L’intérêt face au plugin :

  • Une charte graphique que l’on peut créer sur mesure (et qui sera originale)
  • On peut séparer les boutons de partage les uns des autres
  • C’est là aussi plus rapide

Source : moi-même en regardant le code source de boutons de partage quand j’en ai trouvé sur Internet

Installer Feedburner avec WordPress

» FeedBurner FeedSmith

Pourquoi utiliser un plugin qui ralentira l’administration lorsque un copier-coller fait la même chose ? Dans le fichier .htaccess situé à la racine de votre site, copiez/collez ce code en remplaçant l’adresse de votre flux Feedburner.

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC]
 RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
 RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://adresse-de-votre-flux [R=302,NC,L]
</IfModule>

L’intérêt face au plugin : un plugin de moins, c’est bien !

Source : inconnue (hack trop répandu sur la toile…)

Un bouton de RT pour WP

» TweetMeme Retweet Button

Pour avoir un bouton de RT d’un article, rien de plus simple. Il suffit de réutiliser le même code que celui donné plus haut pour le partage d’un article sur Twitter

<a href="http://twitter.com/home?status=<?php the_permalink() ?>" target="blank" rel="nofollow" title="Partagez cet article sur Twitter">Partager sur Twitter</a>

Inconvénient, vous n’avez pas le nombre de RT. Au risque d’en décevoir certains, je ne vais malheureusement pas donner le hack aujourd’hui (ce sera le seul qui manque), car je travaille dessus avec un ami pour avoir un truc tip-top (mise en cache, personnalisation et tout ce qui va avec). A suivre d’ici 2-3 semaine.

L’intérêt face au plugin : je vais encore me répéter : c’est plus rapide, et plus facilement personnalisable, mais c’est encore incomplet.

Vos derniers Tweets sur WordPress

» Twitter for WordPress

Pour afficher vos derniers tweets, c’est un poil plus compliqué. J’ai trouvé plein de solutions différentes sur Internet, mais j’ai été obligé de les mélanger pour avoir le rendu que je voulais, c’est à dire :

  • un nombre X de tweets
  • sans bugs sur les caractères spéciaux
  • avec l’heure du tweet affiché sous la forme « il y a x minutes »
  • compatibles avec php4 et php5
  • le tout mis en cache dans WordPress pendant 10 minutes.

Cela donne ce code à ajouter au fichier functions.php de votre thème. Modifiez uniquement le début avec vos paramètres :

// Mes derniers tweets
function twitterstatut() {
  ob_start();
  //paramètres
    $username = "nomducompte"; //Nom de votre compte
    $limit = "4";//nombre de tweets à afficher
    $tweetprefix = "
	<li>"; //avant chaque tweet
    $tweetsuffix = "</li>
"; //apres chaque tweet
  //Recuperation du flux
  $feed = "http://search.twitter.com/search.atom?q=from:" . $username . "&rpp=" . $limit;
    $ch = curl_init();
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_URL, $feed);
      $twitterFeed = curl_exec($ch);
      curl_close($ch);
  //nettoyage du flux
    $twitterFeed = str_replace("<", "<", $twitterFeed);
    $twitterFeed = str_replace(">", ">", $twitterFeed);
    $twitterFeed = str_replace(""", "\"", $twitterFeed);
    $twitterFeed = str_replace("&apos;", "'", $twitterFeed);
    $twitterFeed = str_replace("&", "&", $twitterFeed);
    $clean = explode("<content type=\"html\">", $twitterFeed);
    $cleandate = explode("<published>", $twitterFeed);
    $amount = count($clean) - 1;
    $amount = count($cleandate) - 1;
  //rendu du flux
    for ($i = 1; $i <= $amount; $i++) {
      $cleaner = explode("</content>", $clean[$i]);
      $cleanerbis = explode("</published>", $cleandate[$i]);
      $mydate = strtotime($cleanerbis[0]);
      $time_diff = time() - $mydate;
      if ( $time_diff > 0 )$display = sprintf( __('%s ago'), human_time_diff( $mydate ) );
      $rendu = $tweetprefix.$cleaner[0].'<span class="petit"> ['.$display.']</span>'.$tweetsuffix;
      echo $rendu;}
    return ob_get_clean();}
add_option('cachetwithtml','0','','yes');
add_option('cachetwittimer',mktime() - 10000,'','yes');
function cachetwit() {
  $time3 = mktime();
  if ( $time3 > get_option('cachetwittimer') + 600 ) {
    $myvar = twitterstatut();
    update_option('cachetwittimer', mktime());
    if ( $myvar == '') {}
    else {update_option('cachetwithtml', $myvar);}}
echo get_option('cachetwithtml');}

Le cache est mis à défaut à 10 minutes (600 secondes). Vous pouvez donc le modifier facilement (6ème ligne avant la fin). Ajoutez ensuite ce code là où vous voulez afficher vos tweets.

<?php if (function_exists('cachetwit')) {cachetwit();}?>

L’intérêt face au plugin :

  • Contrairement à tous les plugins que j’ai trouvés, le mien met en cache les données
  • Si Twitter est indisponible, il continue d’utiliser les valeurs mises en cache
  • Il affiche l’heure de tweet de manière relative
  • Aucun javascript

Source : une dizaine de sites au moins, et moi-même (j’ai bien galéré ^^). Désolé de ne pas retrouver mes sources par contre : j’avais fait ce code il y a plusieurs mois…

Pour mieux gérer votre WordPress

Mise à jour automatisée de WP

» WordPress Automatic upgrade

Je ne le dirai jamais assez : ce plugin est trop risqué, puisqu’à chaque mise à jour vous risquez de planter votre site. Donc oubliez-le.

Pour booster la mise en page et ergonomie

Ajouter un fil d’Ariane (Breadcrumb)

» Yoast BreadCrumbs ou NavXt Breadcrumb

Utilisez le nouveau hack : fil d’ariane et WordPress

Un chemin de navigation est un atout pour l’ergonomie et pour hiérarchiser l’information pour les moteurs. Le code suivant permet donc de remplacer facilement ces plugins.

chemin de navigation WordPress
Le chemin de navigation est un atout en ergonomie web

Dans votre fichier functions.php, ajoutez :

// BreadCrumb
function get_breadcrumbs() {
	global $wp_query;
	if ( is_home ()) {
    echo 'Bienvenue sur NOM-DE-VOTRE-SITE !
<ul class="breadcrumbs">';
		echo '
	<li><span id="breadhome">Nos derniers articles :</span>'; }
  else {
    echo 'Vous êtes ici :
<ul class="breadcrumbs">';
		echo '
	<li><a id="breadhome" href="'. get_settings('home') .'">'. get_bloginfo('name') .'</a>';
		if ( is_category() ){
			$catTitle = single_cat_title( "", false );
			$cat = get_cat_ID( $catTitle );
			echo " » ". get_category_parents( $cat, TRUE, " » " ) ."</li>
";}
    elseif ( is_tag() )	{
			echo " » Articles sur le Thème <span id=\"breadtitle\">» ";
      echo the_title('','', FALSE) ."</span></li>
";}
    elseif ( is_archive() && !is_category() )	{
			echo " » Archives</li>
";}
		elseif ( is_search() ) {
			echo " » Résultats de votre recherche <span id=\"breadtitle\">» ";
      echo get_search_query() ."</span></li>
";}
		elseif ( is_404() )	{
			echo " » 404 Page non trouvée</li>
";}
		elseif ( is_single() ){
			$category = get_the_category();
			$category_id = get_cat_ID( $category[0]->cat_name );
			echo ' » '. get_category_parents( $category_id, TRUE, " » " );
			echo '<span id="breadtitle">';
      echo the_title('','', FALSE) ."</span></li>
";}
		elseif ( is_page() ) {
			$post = $wp_query->get_queried_object();
			if ( $post->post_parent == 0 ){
				echo " » ".the_title('','', FALSE)."</li>
";
			} else {
				$title = the_title('','', FALSE);
				$ancestors = array_reverse( get_post_ancestors( $post->ID ) );
				array_push($ancestors, $post->ID);
				foreach ( $ancestors as $ancestor ){
					if( $ancestor != end($ancestors) ){
						echo '<a href="'. get_permalink($ancestor) .'">'. strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) ) .'</a></li>
';
					} else {
						echo ' '. strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) ) .'</li>
';}}}}
		echo "</ul>
";}}

Puis ajoutez ensuite ce code dans votre thème WordPress pour faire apparaître votre chemin de navigation :

<?php if (function_exists('get_breadcrumbs')) get_breadcrumbs();?>

Le tour est joué.

L’intérêt face au plugin :

  • Vous ne créez pas de liens vers la page elle-même (un lien qui pointe sur lui-même ne sert à rien pour l’utilisateur, ni pour les moteurs)
  • Pas de plugin à mettre à jour

Séparer commentaires et trackbaks

» Separate Comments & Pings

Par défaut, les commentaires se mélangent aux trackbacks et pings de WordPress. Un simple hack permet de résoudre le problème.

Nous allons créer deux fonctions dans le fichier functions.php de votre thème, une pour générer vos commentaires, un autre pour vos trackbacks. Commençons par les commentaires :

// Mes commentaires
function mycomment($comment, $args, $depth) {
  $GLOBALS['comment'] = $comment; ?>

	<li id="comment-<?php comment_ID() ?>">

<div class="comment-author vcard">
	<?php echo get_avatar( $comment, 40 ); ?>
</div>


<div class="comment_wrap">
        <?php printf(__('%s'), get_comment_author_link()) ?>
        <span class="comment_date">Le <?php printf(__('%1$s at %2$s'), get_comment_date(),  get_comment_time()) ?></span>
        <?php if ($comment->comment_approved == '0') : ?>
Merci pour votre commentaire.
Il est en attente de moderation.
<?php endif; ?>
        <?php comment_text() ?><a name="#comment-<?php comment_ID() ?>"></a>
</div>

</li>

<?php }

Pour les trackbacks :

// Mes trackbacks et Pings
function myping($comment, $args, $depth) {$GLOBALS['comment'] = $comment;?>

	<li id="comment-<?php comment_ID() ?>">

<div class="comment-author vcard">
      <span class="infocomment">
        <strong><?php printf(__('%s'), get_comment_author()) ?></strong>, le <?php printf(__('%1$s at %2$s'), get_comment_date(),  get_comment_time()) ?>
      </span>
      <?php $test = get_comment_author_url(); if ($test != '') {?><small><a href="<?php printf(__('%s'), get_comment_author_url())?>" title="<?php the_title(); ?>"><?php the_title(); ?> - trackback de <?php printf(__('%s'), get_comment_author()) ?></a></small>
 <?php } else {}?>
      <?php comment_text() ?>
</div>

</li>

<?php }

Pour afficher vos commentaires, ajoutez ce code dans votre fichier single.php :

<?php wp_list_comments('type=comment&callback=mycomment'); ?>

Pour afficher vos trackbacks :

<?php wp_list_comments('type=pings&callback=myping'); ?>

L'intérêt face au plugin :

  • Le plugin ne faisait qu'enlever les pings, sans donner la possibilité de les afficher ailleurs
  • Le hack permet d'avoir un lien sortant plus pertinent pour les trackbacks, le tout généré de façon automatique

Source : la base du code est sur presque tous les sites dédiés à WordPress. Je l'ai ensuite mis à ma sauce. ^^

Voir les navigateurs et OS de vos commentateurs

» Advanced User Agent Displayer

Non, non, non et non : ce plugin ne sert à rien. Donc je ne donnerais aucun hack en retour (ouh le vilain petit garnement !).

L'intérêt face au plugin :

  • Le plugin n'avait aucun intérêt, l'absence de hack est donc indispensable ^^

Ajouter une font à WordPress

» All-In-One Cufon et WP-Cufon

Ces plugins WordPress remplacent automatiquement vos textes par des polices d'écriture que vous aurez définies dans l'administration. Le souci, c'est que tout passe par un javascript qui ajoute des bouts de code en dur dans votre html. Cela pose deux soucis : c'est un peu plus lent, et le code source n'est plus vraiment propre...

La solution est un code CSS appelé font-face, qui vous permet d'inclure proprement une police d'écriture dans votre thème WordPress. Tout d'abord, vous créez la font dans le fichier style.css :

@font-face{font-family:"Nom de la font";src:url('nom-du-fichier-de-la-font.ttf')}

Puis vous l'assignez aux ids et classes désirées :

.class, #id {font-family:"Nom de la font", "autres font par défaut"}

Attention, veillez à choisir une font qui ne pèse pas trop lourd, ainsi qu'à ne pas en mettre partout pour ne par surcharger votre site.

L'intérêt face au plugin :

  • Plus rapide
  • Un code source plus propre
  • Un site plus beau (enfin, normalement ^^)

Pour bannir des plugins vraiment inutiles

WordPress multilingue

» Global Translator

Je n'ai malheureusement aucun hack à vous proposer, tout simplement car ce type de plugins devrait disparaître de la surface de la terre. Un bon référencement multilingue se fait avec du multi-domaine (1 par langue). Il faut donc des serveurs différents, situés le plus proche possible (ou dans) les pays visés, avec des noms de domaine différents (.fr, .com, .es, ...) et des contenus uniques et ciblés.

L'intérêt face au plugin :

  • des serveurs plus proches des utilisateurs, donc plus rapides
  • des sites avec des contenus propres, donc sans duplication de contenus (si possible avec des chartes graphiques différentes adaptées aux comportement de chaque pays ou langue)
  • des sites beaucoup plus simples à comprendre pour Google (car une seule langue), et donc plus facilement référencés.

Les tags sous WordPress

» WP-Cumulus

Rien de plus simple pour créer un nuage de tags sur WP. Ajoutez le code suivant là où vous voudriez le voir apparaître :

<?php wp_tag_cloud(variables); ?>

Les variables existantes sont les suivantes :

  • taxonomy : d'où récupérer les tags (par défaut, c'est sur tout le site, mais on peut cibler les mots clés d'une catégorie spécifique)
  • smallest : taille de police du plus petit tag
  • largest : taille de police du plus grand tag
  • number  : nombre de mots clés à afficher
  • separator : séparateur (par défaut, c'est un espace)
  • orderby : trier par (name pour un tri par nom et count pour un tri par nombre d'occurrences)
  • order : l'ordre de tri (ASC pour ascendant, DESC pour descendant et RAND pour aléatoire)
  • exclude/include : tags à exlure ou inclure

Il existe des paramètres supplémentaires (regardez ici : wp_tag_cloud). Ce qui donne par exemple:

<?php wp_tag_cloud( array(
    'taxonomy' => 'mycategory',
    'smallest'  => 8,
    'largest'   => 22,
    'number'    => 45,
    'separator' => '\n',
    'orderby'   => 'name',
    'order'     => 'ASC',
    'exclude'   => 5 ); ) ); ?>

L'intérêt face au plugin :

  • Beaucoup plus rapide à charger (car sans flash)
  • Il est donc aussi compatible sur tous les navigateurs
  • Vous pouvez y appliquer plus facilement votre propre feuille de style css

Source : le WordPress Codex bien entendu (en anglais)

Personnaliser le flux RSS

» RSS Footer

RSS footer est un plugin qui permet d'insérer du contenu dans votre flux RSS. Voici le code à ajouter dans votre functions.php pour faire la même chose, mais en mieux. On peut avoir ce rendu par exemple :

Flux RSS WordPress
Un exemple de ce que l'on peut faire avec le flux RSS de WordPress

Code simple :

// personnalisation du flux rss
function insertAds($content) {
global $post;
$content = 'votre contenu'
return $content;}
add_filter('the_excerpt_rss', 'insertAds');
add_filter('the_content_rss', 'insertAds');

Code plus complexe :

  • ajout d'une miniature
  • ajout d'un lien vers l'article complet
  • ajout d'un lien vers les commentaires
// personnalisation du flux rss
function insertAds($content) {
  global $post;
	$thetitle = $post->post_title;
  if(has_post_thumbnail($post->ID)) {
		$content = '
<div>' . get_the_post_thumbnail($post->ID,'thumbnail') . '</div>
' . $content.'
</strong><a href="'.get_permalink().'#comments" title="Commenter '.get_the_title().'">Commentez cet article !</a></strong>

<strong>Article original :</strong> <a href="'.get_permalink().'">'.get_the_title().'</a>.


<hr />

';}
	else {
		$content = $content.'
</strong><a href="'.get_permalink().'#comments" title="Commenter '.get_the_title().'">Commentez cet article !</a></strong>

<strong>Article original :</strong> <a href="'.get_permalink().'">'.get_the_title().'</a>.


<hr />

';}
  return $content;}
add_filter('the_excerpt_rss', 'insertAds');
add_filter('the_content_rss', 'insertAds');

L'intérêt face au plugin :

  • Plus de choses sont possibles techniquement (comme la miniature)
  • Plus rapide lors de la génération du flux RSS de WordPress
  • Toujours aucune mises à jour de plugin à faire

Conclusion

Comme la dernière fois, la conclusion est sans appel (pour ces plugins-ci du moins) :

Trop de plugins tuent les plugins.

Donc oui, il est vrai que c'est parfois un peu long à mettre en place (enfin, surtout pour trouver une solution viable), mais ca vaut le coup : un site plus rapide et ergonomique. Et quand on a des codes comme ici à copier/coller, c'est tout de suite plus rapide, non ?

PS : c'est en pondant un article de cette taille que je me dis que la charte graphique de SeoMix n'est pas du tout adaptée... :(

PS2 : chacun de ces hacks a été (ou va être) amélioré, mais je préfère faire des articles dédiés à chacun d'eux quand ce sera le cas.

PS3 : si vous ne savez pas quoi faire de votre argent, n'hésitez pas à m'en donner une ^^