AddThis est un service gratuit permettant d’ajouter à un site web un bouton dynamique offrant aux visiteurs différentes possibilités d’ajouter la page à leurs favoris ou de la partager avec leurs contacts. Voici une solution pour l’intégrer à Dotclear.
Mise à jour du 18/10/2010 :
AddThis propose depuis quelques temps une nouvelle API permettant l’intégration du bouton dans un blog de façon beaucoup plus simple. Désormais, plus besoin de toucher au code de Dotclear, il suffit d’ajouter quelques lignes dans les fichiers du thème 🙂
Dans le fichier _footer.html :
1 |
<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#username=votre_login_AddThis"></script> |
Dans les autres fichiers .html de votre thème, en choisissant l’emplacement qui vous convient le mieux :
1 2 3 |
<!-- AddThis Button BEGIN --> <a class="addthis_button" addthis:url="{{tpl:EntryURL}}" addthis:title="{{tpl:EntryTitle encode_html="1"}}"></a> <!-- AddThis Button END --> |
Billet original du 19/07/2009 :
En effet, l’intégration à Dotclear n’est pas triviale : le bouton AddThis utilise du JavaScript, ce qui nécessite de lui fournir le titre des posts sous forme « échappée » (c’est-à-dire avec les caractères ‘ remplacés par ‘, le ‘ étant le marqueur de fin de chaîne en JavaScript).
Pour cela, nous allons modifier le fichier inc/public/class.dc.template.php pour ajouter une nouvelle balise de template, baptisée EscapedEntryTitle, qui retournera la même chose que la balise EntryTitle existante, mais en version échappée.
Tout d’abord, il faut déclarer cette nouvelle balise, en dupliquant la ligne 167 et en modifiant la copie pour déclarer le nouveau nom :
1 |
$this->addValue('EscapedEntryTitle',array($this,'EscapedEntryTitle')); |
Il faut ensuite définir la fonction générant la valeur de la balise. Pour cela, nous allons à nouveau dupliquer le code gérant la balise EntryTitle (lignes 1683 à 1691) en adaptant le code pour cette nouvelle balise, c’est-à-dire en ajoutant un appel à la fonction addslashes() de PHP :
1 2 3 4 5 |
/*dtd <!ELEMENT tpl:EscapedEntryTitle - O -- Escaped Entry title --> */ public function EscapedEntryTitle($attr) { $f = $this->getFilters($attr); return '<?php echo addslashes('.sprintf($f,'$_ctx->posts->post_title').'); ?>'; } |
Il ne reste plus qu’à insérer le code AddThis dans les fichiers .html de votre thème, en choisissant l’emplacement qui vous convient le mieux :
1 2 3 4 5 6 7 8 9 |
<!-- AddThis Button BEGIN --> <script type="text/javascript"> var addthis_hover_delay = 500; var addthis_pub="votre_login_AddThis"; var addthis_language="{tpl:EntrlyLang}"; </script> <a href="http://www.addthis.com/bookmark.php?v=20" onmouseover="return addthis_open(this, '', '{{tpl:EntryURL}}', '{{tpl:EscapedEntryTitle}}')" onmouseout="addthis_close()" onclick="return addthis_sendto()"><img src="http://s7.addthis.com/static/btn/lg-share-{tpl:EntrlyLang}.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a> <script type="text/javascript" src="http://s7.addthis.com/js/200/addthis_widget.js"></script> <!-- AddThis Button END --> |
Attention : pensez bien à renseigner votre login AddThis à la seconde ligne.
Pour appliquer ce patch, déposez le à la racine de votre installation Dotclear puis ouvrez une console sur votre serveur, positionnez vous à la racine de votre installation Dotclear et tapez la commande suivante :
1 |
patch -p1 -ul -i fichier.patch -d . |
Vous pourrez ensuite rétablir la version non patchée avec cette commande :
1 |
patch -p1 -ulR -i fichier.patch -d . |
Bonjour,
Je souhaiterais installer un bouton « addthis » sur mon blog créé sur dotclear 2, votre patch me semble simple! moi qui n’y connais rien du tout…
Et justement le pbe est que je ne comprends pas ce qu’est la « racine de l’installa° dotclear » ni
« ouvrez une console sur votre serveur »…
A vrai dire je ne sais tjs pas ce qu’est mon « serveur »…bien que j’ai entièrement customisé mon blog en partant d’une feuille CSS…
Pouvez-vous me me guider??
Merci bcp!
Shoo
Bonjour,
Ce tutoriel est très intéressant merci. Malheureusement, je suis en version 1 de dotclear, et de ce que je vois, ce tuto est fait pour la version 2. Je ne peux passé à Dotclear 2 car trop de chose à modifier et transférer, j’ai peur de tout perdre ou que ça ne fonctionne plus.
Donc je voudrais savoir si vous avez une version de ce tuto pour addthis pour dotclear 1 ?
Merci !
LUNASHOO > J’ai jeté un oeil à ton site. Il est hébergé chez Gandi Blog, donc tu n’as pas la main sur le code PHP. Tu ne peux donc pas installer ce hack. Il faudrait que je package ça sous forme de plug-in DC, mais j’ai un peu la flemme de le faire…
weblord > Désolé, je n’ai pas de solution pour DC1. Je l’ai abandonné définitivement il y a quelques mois, et son architecture est très différente de celle de DC2, donc la plupart de mes hacks ne peuvent pas s’adapter facilement à DC1.
hello,
j’arrive a peu près à tout comprendre sauf le coup du patch : pas de pb pour le poser à la racine de mon installation via filezilla, mais je ne comprends pas ce qu’est « ouvrir une console sur votre serveur » pour l’activer.
tu peux m’expliquer ?
ceci dit (et curieusement ?) ça fonctionne apparemment sans le patch, à un détail près : si on intègre le share sur la home (par ex. au niveau des rétroliens comme tu l’as fait ici), le partage se fait sur la page « index », et pas sur le billet – en tout cas pour un envoi par mail (je n’ai pas de compte de réseau social, donc ne peut vérifier les autres options… je ne fais pas ça pour moi !)
tu as une idée pour corriger ça ?
merci en tout cas,
d.
La console, c’est l’interface qui te permet d’aller envoyer des commandes au serveur, par exemple via SSH. Ça n’est pas disponible chez tous les hébergeurs (en général, pas dispo chez les gratuits et chez les payants d’entrée de gamme).
Mais le patch n’est pas nécessaire : en fait, il ne sert qu’à automatiser les modifications de fichiers décrites au dessus.
Si tu as appliqué les modifications indiquées, ça devrait normalement marcher correctement. Donc à ta place, je commencerais par bien vérifier que tu as reporté ces modifications sans erreur.
Si ça ne marche toujours pas, donne moi l’adresse de ton blog, j’irais jeter un coup d’œil à la page générée pour essayer de voir ce qui cloche.
merci pour ta réponse.
par contre, si je puis me permettre, ça ne fonctionne pas non plus chez toi : si je partage via l’icône en haut de cette page ça fonctionne, mais via ton index, tu as le même pb que celui que je rencontre…
le blog en question est là : http://www.lespetitspoissontrouges….
(oui, c’est assez politique, j’espère que ça ne te dérange pas 😉 et il y a déjà un outil de partage, mais il est très lourd à charger et peu facile à gérer, donc j’en aurai bien changé pour le addthis, nettement plus discret et efficace)
Ayé, j’ai compris. Et je peux rien faire pour le corriger 🙁
Ça concerne l’option « Courriel » mais pas forcément les autres (j’ai testé avec succès Twitter, Email App, Favoris… tu peux tester ces deux dernières aussi, elles ne nécessitent pas de compte de réseau social), il doit y avoir un bug du côté de AddThis : au lieu de prendre l’URL qui est passée en paramètre du script AddThis, ça prend celle qui est dans la barre d’adresse :-/
Je vais remonter le problème auprès d’AddThis.
Je viens par contre de remarquer un petit problème au niveau de mon code : dans les templates du thème, il ne faut plus mettre le ‘encode_html= »1″‘, ça empêche de passer correctement le titre du billet à AddThis.
yope !
en effet si je teste par favori ça fonctionne, et je suppose que c’est le cas pour les « réseaux sociaux » (de toutes façons, on le saura vite, d’aucun l’utilisent sur ce blog…) – grazie mille !
à noter que le titre passe tout à fait sans enlever de encode_html… je le (les il y en a plein) laisse donc.
encore merci, d.
J’ai eu la réponse du support d’AddThis.
Ils proposent depuis quelques temps un nouveau code d’intégration beaucoup plus simple à mettre en place, et qui marche mieux 🙂
J’ai mis le billet ci-dessus à jour en conséquence.
Merci pour l’astuce, le nouveau code est très simple et fonctionne impeccablement !
Intégrer le boutton AddThis sur dotclear
Grâce au billet de Matt, j’ai pu intégrer le bouton "AddThis" sur ce blog sous dotclear….