Source : Moblog de Marin
Author Archives: vinch
Templates PHP et Smarty pour créer des flux RSS 2.0
Comme promis dans un précédent billet, voici les templates en PHP et via la syntaxe Smarty pour générer des flux RSS 2.0 (minimaux).
Vous devez d’abord vous assurer de transmettre à votre template un array nommé articles qui ressemble à peu près à ceci (si vous utilisez MySQL comme SGBDR, un mysql\_fetch\_assoc devrait vous donner ce genre de résultat) :
Array
(
[0] => Array
(
[title] => Vous allez bien ?
[url_title] => vous-allez-bien
[creation_date] => 2007-04-01 00:00:01
[description] => C'est juste une question comme ça, en passant...
)
[1] => Array
(
[title] => Bonjour la compagnie !
[url_title] => bonjour-la-compagnie
[creation_date] => 2007-03-31 23:59:59
[description] => Ceci est un exemple d'article qui ne sert à rien, c'est juste pour montrer...
)
[2] => Array
(
...
)
...
)
* title correspond au titre de l’article.
* url\_title est un identifiant unique de l’article. Il s’agit du titre transformé en quelque chose pouvant « se trouver » dans une URL. Il est composé uniquement des caractères qui y sont autorisés, c’est-à-dire des chiffres, des lettres et des tirets (préférés aux underscores). Par exemple, si le title est « Bonjour la compagnie ! », on aura « bonjour-la-compagnie » comme url\_title. On préfère afficher un identifiant unique de cette forme plutôt qu’un simple identifiant numérique pour améliorer le référencement naturel.
* creation_date correspond à la date de création de l’article, au format DATETIME (car provenant en général de MySQL).
* description est une introduction de l’article voire l’article tout entier (il y a beaucoup de débats à ce propos sur le Web).
Vous pouvez bien sûr adapter les noms à votre convenance, ça n’a absolument aucune importance, à condition que ça corresponde avec ce qui se trouve dans le template.
N’oubliez pas de spécifier le type MIME dans le fichier PHP qui appelle le template. Vous pouvez le faire en ajoutant cette ligne de code tout en haut du fichier :
<?php header('Content-Type: text/xml; charset=UTF-8'); ?>
Ou encore mieux :
<?php header('Content-Type: application/rss+xml; charset=UTF-8'); ?>
Cette ligne a pour but de dire à votre navigateur de considérer votre flux comme étant de type XML (et de l’afficher en conséquence). Si vous ne dites rien, il l’affichera comme du HTML (text/html étant le type MIME par défaut).
Le template en PHP est le suivant :
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Les articles de Vincent Battaglia</title>
<link>https://vinch.be//articles/</link>
<description>Ceci est un exemple !</description>
<?php foreach($articles as $article) : ?>
<item>
<guid>https://vinch.be//articles/view/<?php echo $article['url_title']; ?></guid>
<title><?php echo $article['title']; ?></title>
<link>https://vinch.be//articles/view/<?php echo $article['url_title']; ?></link>
<description><?php echo $article['description']; ?></description>
<pubDate><?php echo date("D, j M Y H:i:s", $article['creation_date'];);?></pubDate>
</item>
<?php endforeach; ?>
</channel>
</rss>
Avec la syntaxe Smarty, on a :
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Les articles de Vincent Battaglia</title>
<link>https://vinch.be//articles/</link>
<description>Ceci est un exemple !</description>
{foreach from=$articles item=article}
<item>
<guid>https://vinch.be//articles/view/{$article.url_title}</guid>
<title>{$article.title}</title>
<link>https://vinch.be//articles/view/{$article.url_title}</link>
<description>{$article.description}</description>
<pubDate>{$article.created_on|date_format:"%a, %d %b %Y %H:%M %Z"}</pubDate>
</item>
{/foreach}
</channel>
</rss>
Vous devez tout d’abord entrer manuellement les informations concernant votre flux, à savoir le titre (title), l’URL vers la page principale (link) et une description du flux (description). Il existe beaucoup d’autres balises enfants de channel mais seules les trois citées précédemment sont obligatoires.
D’après la recommandation RSS 2.0, tous les enfants de la balise item sont facultatifs, à condition que soit le titre (title), soit la description (description) soit présent.
Cependant, pour chaque item, je recommande de renseigner au moins les éléments suivants :
* guid : l’identifiant unique de l’item, sous forme d’une chaîne de caractère. En pratique, on utilise souvent l’URL vers l’article comme guid.
* title : le titre.
* description : le contenu (synopsis, résumé ou article tout entier).
* link : lien vers l’article sur le site concerné.
* pubDate : date de publication de l’article au format RFC 822.
La dernière chose à faire est de valider votre flux et de le tester dans votre agrégateur préféré.
Je suis ouvert à vos questions/suggestions 😉
Pétition pour la suppression des quotas des FAI belges
Michaël et moi avons créé une pétition pour la suppression des quotas des FAI belges.
D’autres actions ont déjà été dans ce sens par le passé mais rien ne semble avoir bougé depuis.
Je vous invite à signer cette pétition. De plus, si vous êtes blogueurs, n’hésitez pas à relayer l’information. Si ça marche, nous serons tous gagnants…
* La pétition
* Signer la pétition
* La pétition + le tableau comparatif chez Michaël
Poisson d’avril
Tvcablenet (mon FAI) me fait une bonne blague en ce 1er avril : il m’empêche d’accéder à Internet depuis le début de la journée. Je suis obligé de squatter la connexion chez quelqu’un d’autre pour poster ce billet.
Merci beaucoup Tvcablenet, j’en ris encore !
Grrr…
En vrak – 27
* La façon ultime de créer ses formulaires en XHTML/CSS ?
* Quel outil de gestion de contenu PHP choisir ? Les noms retenus : Joomla, Typo3 et eZPublish.
* Stripe Generator : un générateur de fonds lignés pour votre site Web 2.0 (via Vincenzo).
* Guillaume Bizet tente d’expliquer le phénomène de migration de DotClear vers WordPress…
* Le Sporting de Charleroi se lance dans le Web 2.0 avec sa Web TV.
* Le site qui donne mal de tête ! Une horreur !
* Fonctionnalité amusante sur Google Earth et Google Maps : si vous choisissez un itinéraire entre l’Amérique et l’Europe, on vous propose de traverser l’Atlantique à la nage ! (via Mich)
* Publicité originale pour Wonderbra : ça passe pas !
* Une famille se prend en photo depuis les années 70. Elle et lui n’ont rien inventé 😉
* Si vous êtes un geek, vous pouvez créez une redirection vers votre site qui l’affirme haut et fort : http://vinch.est.un.geeek.org (via Scraly)
Evénements sur Last.fm
Je suis étonné que si peu de monde parle de la nouvelle peau et de la nouvelle fonctionnalité de Last.fm…
Last.fm propose depuis peu un calendrier d’événements en rapport avec la musique. Il s’agit donc principalement de concerts et de festivaux festivals. Ce que je trouve sympa, c’est la localisation des événements en fonction de l’utilisateur. Quand je me rends sur le site, je vois directement les événements à venir en Belgique, ce qui m’intéresse principalement.
Pour chaque événement, vous pouvez inviter des amis, dire que vous y assisterez, en discuter (via un forum), voir le plan sur Google Maps, voir les photos sur Flickr, et bien d’autres choses. Voici un exemple : le Rock am Ring 2007 qui aura lieu en juin.
C’est ce que j’appelle du tout bon Web 2.0 !
Le gros truc inutile du jour…
J’ai réalisé un plugin Firefox qui vous permet d’ajouter mon blog dans la liste de vos moteurs de recherche (en haut à droite par défaut).
Il vous suffit de copier ce fichier dans C:\Program Files\Mozilla Firefox\searchplugins (à adapter selon votre configuration) et de relancer Firefox.
Vous voulez créer votre propre plugin de recherche ? Suivez le guide…
Nouveautés sur le blog
Quelques nouveautés sur ce blog en ce mercredi ensoleillé :
* Petite mise à jour des catégories et du blogroll.
* Installation du plugin WordPress DoFollow (découvert grâce à Marin) qui a pour but de supprimer l’attribut rel="nofollow" sur les liens de vos commentaires. De ce fait, les robots des moteurs de recherche suivent désormais vos liens ce qui a pour effet d’augmenter vos backlinks.
* Installation du plugin WordPress Show Top Commentators (découvert chez Ced et Soph) qui fait un classement des meilleurs commentateurs du blog avec un lien vers le site/blog de chaque auteur.
Je ne m’en cache pas, avec ces nouveautés, mon arrière pensée est de vous inciter à participer encore plus que maintenant à la vie de ce blog 😉
A bientôt…
En vrak – 26
* Nouveau site pour les extensions Firefox (rebaptisées Modules !?)
* Une extension Firefox qui permet de valider la syntaxe (X)HTML de votre page et qui fonctionne hors ligne (via Xuxu). Notez qu’il existe aussi TidyBot qui fait plus ou moins le même boulot.
* 50 extensions indispensables pour Firefox.
* Firefox 3 sort en version alpha 3. Quelques nouveautés au programme dont un système de drag & drop assez sympa.
* Créez un effet à la VOX sur vos formulaires avec un peu de JavaScript et de CSS.
* Si vous ne le saviez pas encore : dans XHTML 2.0, vous pourrez utiliser l’attribut href sur n’importe quel élément. Anne Van Kesteren explique pourquoi il s’agit d’un gros problème…
* 10 trucs en CSS pour vous simplifier la vie. Pour ma part, je propose à Microsoft un truc qui nous simplifierait la vie à tous : faire un navigateur qui respecte les standards du Web.
* Wiki sur le développement PHP.
* Protolize : l’essentiel des outils Web au même endroit.
* Créez un site Web très simplement (et très simple) avec Jimdo.
* Convertissez vos fichiers gratuitement grâce à Zamzar.
* Pour finir en douceur, je vous propose d’aller jeter un oeil à ce blog sympathique. Le concept : chaque jour : une bande pas dessinée !
J’ai testé pour vous…
…les plugins gmlightbox et geotagging pour WordPress dont l’auteur n’est autre que Mich (aka Michaël Uyttersprot).
Le plugin gmlightbox sert à afficher un plan Google Maps à la manière de Lightbox pour les images. Il suffit de faire un lien vers le plan sur Google Maps et de placer l’attribut rel="gmap" et le tour est joué ! Plus d’explications ici.
Le plugin geotagging permet de géolocaliser les billets de votre blog. Un lien s’affichera alors à la fin de votre billet et affichera le plan via le plugin gmlightbox. Un exemple est disponible sur ce billet. Plus d’explications ici.
Ces deux plugins doublent donc ma quantité de plugins sous WordPress (je n’avais que Akismet et Markdown pour l’instant).
Merci Mich !