WordPress hack : dernières activités Betaseries

Comme promis voici le code PHP permettant d’afficher vos dernières activités sur Betaseries.

Ca devrait pouvoir s’installer sur tout type de bloc où vous avez accès au code source, cependant il vous faut la version 5 de PHP.
Pour wordpress, il vous suffit d’éditer le fichier « sidebar.php » de votre thème actuel et de rajouter le code qui suit tout en haut de celui-ci.

<?php
function betaserie_type_action($string) {
	$explodedString = explode (" ", $string);
 
	if (in_array ("ajout&eacute;", $explodedString))	return "add";
	elseif (in_array ("regarder", $explodedString))	return "watch";
	else	return "archive";
}
 
function betaseries_parse_urls($string) {
	return preg_replace ("/\/planning\//", "http://betaseries.com/planning/", $string);
}
 
function betaseries_parse_feed() {
	$pseudo = "koskoz";
	$feed = "http://www.betaseries.com/rss/timeline/$pseudo";
 
	$dom = new DomDocument();
	$dom->load($feed);
	$titleList = $dom->getElementsByTagName("content");
 
	$imgUrl = get_bloginfo('template_url') . '/images/betaseries/';
 
	foreach ($titleList as $title) {
		echo '<p style="margin: 0 0 10px 0;">';
		echo '<img src="' . $imgUrl . betaserie_type_action ($title->nodeValue) . '.png">';
		echo betaseries_parse_urls ($title->nodeValue);
		echo '</p>';
	}
}
?>

Je compte bien entendu transformer ce hack en widget dans les jours à venir.

Pour l’utiliser, il suffit de modifier le pseudo dans la dernière fonction et de l’appeler tout bêtement :
<?php betaseries_parse_feed(); ?>

Nouveau bloc : « Dernières séries » et ajout de JavaScript

Si vous lisez cet article vous aurez forcément remarqué quelques modifications dans la sidebar.
En effet, celle-ci se voit adjoindre un nouveau bloc nommé « Dernières séries » qui affiche mes dernières actions réalisées sur Betaseries.

Suivant le même principe que le module twitter, ce feed est parsé non pas via SimpleXML mais en utilisant DomXML à cause d’un problème de CDATA avec SimpleXML (qui aurait pu se résoudre à un simple cast…).

Pour éviter de trop charger cette sidebar, le bloc apparait de base replié, il vous suffit de cliquer sur le titre de celui-ci pour le dérouler.
Le bloc de twitter subit l’effet inverse, en étant déplié mais repliable.

Il m’a juste fallut quelques lignes de JavaScript grâce à MooTools.

Dès que je trouve un endroit approprié pour héberger les sources, je les distribue.

C’est les vacances…

Depuis 11h30 ce matin, je suis officiellement en vacances. Seulement 6 semaines après les vacances de Noël alors qu’il nous aura fallut attendre 3 mois entre la rentré fin septembre et nos premières vacances.

Celles-ci ont déjà un gout amer, tout d’abord parce que ce sont mes dernières vacances avant celles d’été (et encore, si je ne trouve pas de boulot) et ensuite parce que j’ai un peu de travail à faire…

Nouveau module : Derniers Tweets

Je tweet beaucoup plus que je ne blog, c’est un fait. Ce blog est plus lu que mon tweeter, c’est un autre fait.
Il m’est dont venu l’idée d’afficher mes derniers tweets ici, de manière à ce que les personnes qui ne me suivent pas sur tweeter soient quand même au fait de mes dernières activités.

J’ai tout d’abord succinctement cherché un widget pour réaliser cette tâche, mais problème, je n’ai pas gérer les widgets dans mon thème. N’ayant pas envie de le modifier pour le moment (oui, il me reste toujours la recherche à implémenter), je me suis tourné du côté des « hacks », c’est à dire des modifications du code déjà existant.
Après un rapide coup d’œil, pas grand chose me plaisait, j’ai donc préféré coder le module moi même.

Rien de bien compliqué ici, tout le code modifié se trouve dans le fichier « sidebar.php » et se base sur les feeds rss fournis par tweeter.
En gros, je récupère les 3 derniers tweets de mon feed, puis les parse à l’aide de SimpleXML, une librairie PHP incluse dans la version 5.
Une fois le feed parsé, il me faut parser les urls et les HashTags (#) ainsi que la date qui a un format assez particulier, puis c’est fini !

Je mettrai en ligne sous peu le code.

Vous aurez peut-être besoin de recharger votre cache (Ctrl + F5) pour appliquer la nouvelle CSS.