Skip to Content

Drupal : personnaliser l'image de syndication rss

drupal changer icone de syndication RSS

Comment personnaliser l'icône de syndication RSS affichée par Drupal ?

Article original du handbook Drupal : http://drupal.org/node/34384

Par défaut, Drupal affiche le lien rss (rss.xml) avec une image placée dans le répertoire /misc nommée feed.png : feed icon drupal

Le fil de syndication rss est affiché sur la page d'accueil (/node) et sur les pages des catégories (taxonomy/term/23 par exemple , ou par /nom-de-la-catégorie si vous avez créé des alias).
Il est généré automatiquement via la variable $feed_icons de votre gabarit de mise en page page.tpl.php se trouvant dans le répertoire de votre thème :

<?php
print $feed_icons
?>

Une des solutions pour changer l'icône de syndication et de remplacer l'image /misc/feed.png par une autre de votre choix (et la renommer feed.png évidemment...).
Ce n'est pas une solution très souple et en cas de mise à jour et/ou de réinstallation d'une version de Drupal, il faut à chaque fois refaire la manipulation.

L'idéal est de placer votre image "RSS" personnalisée dans votre thème personnel (ou un thème fourni par défaut, ou un thème d'un contributeur).
Il faudra ensuite utiliser une fonction qui "prendra le dessus" (overide) sur celle existante par défaut (overide template.php: Overriding other theme functions).

Il suffit pour cela de placer la fonction php suivante dans votre fichier template.php se trouvant dans le répertoire de votre thème (si vous n'avez pas ce fichier php, il faut le créer) :

<?php
   
function phptemplate_feed_icon($url) {
 
$icon_url = 'themes/bibooV1/img/rss_syndicate.png';
  if (
$image = '<img src="'. $icon_url . '" alt="'. t('XML feed') .'" />') {
    return
'<span class="xml-icon"><a title="Flux RSS : Abonnez-vous à ce contenu !" href="'. check_url($url) .'">'. $image .'</a></span>';
  }
}
   
?>

Dans notre exemple, nous avons placé une image personnalisée dans le répertoire img se trouvant dans le thème bibooV1 : themes/bibooV1/img/rss_syndicate.png.
Changez l'url en fonction de votre situation.

Ce snippet ne fonctionne que sous Drupal 5.x. Il était utilisé à l'époque ou biboo.net était en 5.x (cf code php ci-dessus) :
dans page.tpl.php on a :

<?php
print '<div class="div-feed-icons">'. $feed_icons .'</div>';
?>

et le code xhtml génèré par $feed_icons est le suivant :

<span class="xml-icon"><a title=
    "Flux RSS : Abonnez-vous à ce contenu !" href=
    "http://127.0.0.1/biboobiboo/rss.xml"><img src=
    "themes/bibooV1/img/rss_syndicate.png" alt="XML feed" /></a></span>
2
Average: 2 (2 votes)
Your rating: Aucun