28
sept. 06
Blogroll avec description des liens
Par Guillaume BIZET | Lien permanent
Pour mon nouveau thème (thème web 2.0) il a fallu que je passe les liens dans une page related pour une meilleure visibilité.
Mais je voulais pouvoir afficher les liens et leur description que l'on indique quand on ajoute un nouveau lien au blogroll. Simple me direz-vous, mais pas quand on débute en php.
Méthode détaillée
C'est grâce à TomTom que j'ai pu mettre en place ce blogroll personnalié, et je profite de ce billet pour le remercier car en 2 temps 3 mouvements il a trouvé la solution 
C'est tout simple :
Première étape
Aller dans le dossier du plugin Blogroll et copiez la fonction ci dessous du fichier /ecrire/tools/blogroll/functions.php
/* Cette fonction affiche la liste des liens (blogroll) @proto function dcLinkList @param string block Chaine de substitution pour pour la liste ('<ul>%s</ul>') @param string item Chaine de substitution pour un élément ('<li>%s</li>') */ function linkList($category='<h3>%s</h3>',$block='<ul>%s</ul>',$item='<li>%s</li>') { global $con, $blog; if (($rs_link = $con->select( ' SELECT label, href, title, lang, rel FROM ' . $blog->t_link . ' ORDER BY position')) !== false) { $res = ''; while (!$rs_link->EOF()) { $label = $rs_link->f('label'); $href = $rs_link->f('href'); $title = $rs_link->f('title'); $lang = $rs_link->f('lang'); $rel = $rs_link->f('rel'); if (! $label && ! $href) { if ('' != $res) { printf($block,$res); } printf($category, $title); $res = ''; } else { $link = '<a href="'.htmlspecialchars($href).'"'. ((!$lang) ? '' : ' hreflang="'.htmlspecialchars($lang).'"'). ((!$title) ? '' : ' title="'.htmlspecialchars($title).'"'). ((!$rel) ? '' : ' rel="'.htmlspecialchars($rel).'"'). '>'. htmlspecialchars($label). '</a>'; $res .= sprintf($item,$link); } $rs_link->moveNext(); } if ('' != $res) { printf($block,$res); } } } }
Ensuite collez là dans le prepend.php de votre thème avant le ?> final
Deuxième étape
Renomez la fonction linkList comme suit : remplacez
function linkList($category='<h3>%s</h3>',$block='<ul>%s</ul>',$item='<li>%s</li>')
par
function mylinkList($category='<h3>%s</h3>',$block='<ul>%s</ul>',$item='<li>%s</li>')
Troisième étape
pour avoir cette description des liens il vous faut ajouter un bout de code.
Remplacez
$link = '<a href="'.htmlspecialchars($href).'"'. ((!$lang) ? '' : ' hreflang="'.htmlspecialchars($lang).'"'). ((!$title) ? '' : ' title="'.htmlspecialchars($title).'"'). ((!$rel) ? '' : ' rel="'.htmlspecialchars($rel).'"'). '>'. htmlspecialchars($label). '</a>';
par
$link = '<a href="'.htmlspecialchars($href).'"'. ((!$lang) ? '' : ' hreflang="'.htmlspecialchars($lang).'"'). ((!$title) ? '' : ' title="'.htmlspecialchars($title).'"'). ((!$rel) ? '' : ' rel="'.htmlspecialchars($rel).'"'). '>'. htmlspecialchars($label). '</a><br/>'. htmlspecialchars($title);
Et voilà le tour est joué. Vous pouvez aller voir le résultat sur la page de mon blog : mes bookmarks

































Commentaires
Tomtom
28/09/2006 - 20:10