Voici comment faire.
Je publie ci-dessous le code complet, accompagné de plusieurs remarques :
- Ce gadget peut être utilisé comme un gadget (normal me direz-vous), mais aussi dans un billet et notamment dans une page statique. Ainsi, vous pouvez vous en servir comme index alphabétique de vos billets, comme sur cette page de démo listant les billets publiés sur PourBlogger.
Pour vous en servir comme gadget, copiez le code dans un gadget de type HTML/Javascript
Pour vous en servir dans une page, copiez le code ci-dessous en mode "Modifier le code HTML" dans l'éditeur de billets. - Le gadget ne fonctionne qu'avec moins de 500 billets. Si besoin, je verrais ce que je peux faire pour gérer des blogs de plus forte capacité.
- J'ai codé rapidement ce gadget, il est possible que quelques bugs s'y cachent, ne m'en voulez pas :)
<script type="text/javascript"> function suppaccent(chaine) { ch = chaine.replace(/[àâä]/gi,"a") ch = ch.replace(/[éèêë]/gi,"e") ch = ch.replace(/[îï]/gi,"i") ch = ch.replace(/[ôö]/gi,"o") ch = ch.replace(/[ùûü]/gi,"u") return ch; } function tri_alpha (a, b) { var titreA=suppaccent(a.titre.toLowerCase()), titreB=suppaccent(b.titre.toLowerCase()); if (titreA < titreB) return -1; if (titreA > titreB) return 1; return 0; } function afficheTousBillets(json) { var tabbillet = []; nb_billets = json.feed.entry.length; for (var i = 0; i < nb_billets; i++) { var entry = json.feed.entry[i]; // Titre var billet_titre = entry.title.$t; // URL du billet var billet_url; for (var j = 0; j < entry.link.length; j++) { if (entry.link[j].rel == 'alternate') { billet_url = entry.link[j].href; break; } } tabbillet[i]={titre:billet_titre, url:billet_url}; } tabbillet = tabbillet.sort(tri_alpha); for (var i = 0; i < nb_billets; i++) { if(i==0) document.write('<ul>'); document.write('<li><a href="'+ tabbillet[i].url+'">'+ tabbillet[i].titre + '<\/a><\/li>'); if(i == nb_billets-1) document.write('<\/ul>'); } } </script> <script src="/feeds/posts/default?alt=json-in-script&callback=afficheTousBillets&max-results=500"> </script>
5 commentaires:
Script très intéressant. Si on change le results=500 par results=1000,tu dis que ça ne marche pas après 500 posts ?
Merci en tout cas !
http://rayonbleu.blogspot.com
Aux dernières nouvelles, les flux RSS/Atom générés par Blogger étaient limité à 500 billets, d'où la limitation dans ce programme.
Ceci dit, je n'ai pas de blog dépassant les 500 donc je ne peux tester si cette limite est encore d'actualité.
Voici une astuce que je cherchais depuis longtemps sans jamais trouver. Le résultat est vraiment super mais je rencontre un problème que je n'arrive pas à résoudre. Quand je copie le code dans une page (côté "modifier le code html"), je fais un aperçu avant l'enregistrement, la liste s'affiche bien. Mais une fois que j'enregistre la page, il n'y a plus que le titre et la liste n'apparaît plus que ce soit quand j'affiche la page ou l'aperçu. Auriez-vous une idée pour régler mon problème ?
Merci
Merci beaucoup!! c'est exactement ce que je cherchais.
comment obtenir une liste des articles classés par libellé ? merci
Enregistrer un commentaire