Spip trackback¶
Warning : ce plugin est un des tous premiers plugins spip que j'ai écrit, et je ne suis pas revenu dessus depuis. Le code n'est donc pas forcément un modèle du genre... Voilà, vous êtes prévenus.
Introduction¶
Ce plugin propose une implémentation partielle du protocole trackback (en français : "rétroliens") pour spip 1.9.2.
Actuellement, seule la partie "réception" du protocole trackback est implémentée. En clair, une fois le plugin installé (et vos squelettes modifiés en conséquence), votre site pourra:
- afficher l'url d'auto-découverte
- recevoir des "pings"
- afficher les rétroliens reçus (et acceptés) pour un article
Pré-requis¶
- spip 1.9.2 (pas testé avec d'autres versions)
- allow_url_fopen dans le php.ini (pour le filtre anti-sping)
Installation¶
Comme pour n'importe quel plugin spip:
- copiez le code du plugin dans votre répertoire plugin
- activez le plugin depuis l'interface d'admin
La boucle TRACKBACKS¶
boucle_n(TRACKBACKS){critères...}
Cette boucle permet d'afficher les rétroliens pour tous le site ou pour un article donné. Par défaut, seuls les trackbacks validés sont affichés.
Critères de sélection¶
Le critère principal est {id_article} (affiche les trackbacks pour l'article id_article - soit celui extrait du contexte, soit passé explicitement). On peut bien sûr utiliser les critères de recherche habituels sur les autres champs
Champs¶
Ces champs sont, comme d'habitude, disponibles dans les squelettes sous forme de balises.
- id_trackback
- id_article
- url_blog (url de la page sur laquelle pointe le trackback)
- nom_blog (nom du site ayant émis le trackback),
- titre (soumis avec le rétrolien)
- texte (idem)
- statut (voir les statuts FORUM),
- date_heure (...de réception du trackback)
Autres balises¶
- #PARAMETRES_TRACKBACK
cf la balise #PARAMETRES_FORUM de spip. Détermine si un article accepte les trackbacks.
- #URL_TRACKBACK
retourne l'url de trackback pour un article (l'url à laquelle l'émetteur doit poster pour soumettre un rétrolien).
- #LINK_TRACKBACK
retourne le lien (balise HTMLlink) vers l'url de trackback pour un article.
<link rel="trackback" type="application/x-www-form-urlencoded" href="$url_trackback_article" />
- #RDF_TRACKBACK
retourne le snippet rdf pour l'autodécouverte de l'url de trackback.
Utilisation¶
Dans les squelettes¶
Les trackbacks étant liés à un article, le cas d'utilisation le plus courant consiste à- insérer le lien trackback et/ou le RDF d'autodécouverte dans l'entête du squelette article et
- afficher les trackbacks reçus dans le corps du squelette.
Le premier point se règle en utilisant les balises adéquate dans la section head du squelette article :
<BOUCLE_article_principal(ARTICLES) {id_article}>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
<html dir="#LANG_DIR" lang="#LANG">
<head>
... vos entêtes habituels ici ...
[(#REM) lien et rdf trackback - si l'article les accepte]
[(#PARAMETRE_TRACKBACK)
#LINK_TRACKBACK
#RDF_TRACKBACK
]
</head>
Pour le second, on utilise la boucle TRACKBACKS :
<body>
... votre page ici
[(#REM) trackbacks de l'article ]
[(#PARAMETRES_TRACKBACK)
<hr />
<div>
<a href="#trackbacks" name="trackbacks" id="trackbacks"></a>
<h2><a href="#URL_TRACKBACK")"><:trackbacks_article:></a></h2>
<BOUCLE_trackbacks(TRACKBACKS){id_article}>
<div class='trackback'>
<a href="#URL_BLOG">#NOM_BLOG</a> - [(#DATE_HEURE|affdate)]<br />
<h3>#TITRE</h3>
[<p>(#TEXTE|safehtml)</p>]
</div>
</BOUCLE_trackbacks>
</div>
... etc...
</body>
</html>
</BOUCLE_article_principal>
Dans le back-office¶
La modération fonctionne globalement comme pour les forums. Une interface centralisée permet de modérer les rétroliens reçus pour tout le site, et il est possible pour chaque article de sélectionner le type de modération (a priori, a posteriori, pas de rétroliens), et d'accéder à l'interface de modération pour les rétroliens spécifiques à cet article.
NB : le plugin contient déjà un filtre 'anti-sping' simple (à défaut d'être parfait), qui recherche dans la page passée par l'émetteur du ping l'url de la page réceptrice, et modère automatiquement le ping si cette url n'est pas trouvée.
Todo¶
- La partie "émission" reste à implémenter,
- ...mais un port vers spip 2.0 serait plus urgent.
- Proposer une (ou plusieurs) alternative(s) si allow_url_fopen = 0
- Implémenter une gestion correcte des urls propres (filtre anti-sping)
- Gérer correctement les permissions
- définir date_heure comme champ DATE (au sens spip)