Il existe dans SPIP la balise #LESAUTEURS qui affiche la liste des auteurs associés à un article, en séparant chaque auteur par une virgule, avec un lien vers la page de chacun d’eux.
Depuis SPIP 1.9.1, cette balise s’appuie sur le concept des modèles.
Voici comment adapter le code de cette balise pour le reproduire au niveau des mots-clés d’un article :
d’abord la balise,
dans votre fichier mes_fonctions.php
:
function balise_LESMOTS($p){
// Cherche le champ 'lesmots' dans la pile
$_lesmots = champ_sql('lesmots', $p);
// Si le champ n'existe pas (cas de spip_articles), on applique
// le modele lesmots.html en passant id_article dans le contexte;
// dans le cas contraire on prend le champ SQL 'lesmots'
if ($_lesmots AND $_lesmots != '$Pile[0][\'lesmots\']') {
$p->code = "safehtml($_lesmots)";
// $p->interdire_scripts = true;
} else {
$p->code = "recuperer_fond(
'modeles/lesmots',
array('id_article' => ".champ_sql('id_article', $p)."))";
$p->interdire_scripts = false; // securite apposee par recuperer_fond()
}
return $p;
}
puis le modèle.
dans un fichier modeles/lesmots.html
:
[(#REM)
Affiche la liste des mots-clés d'un article
][(#REM)
Modele pour la balise #LESMOTS, dans le cas des mots d'un article
]
<BOUCLE_mots(MOTS) {id_article} {par titre} {", "}>
<a href="#URL_MOT">#TITRE</a></BOUCLE_mots>
Exemple d’utilisation inspiré de la page sommaire.html de la distribution stable :
<B_articles>
<ul>
<BOUCLE_articles(ARTICLES) {par date}{inverse}{pagination}>
<li>
<h3 class="titre"><a href="#URL_ARTICLE">#TITRE</a></h3>
<small>[(#DATE|affdate)][, <:par_auteur:> (#LESAUTEURS)]</small>
[<small>(#LESMOTS)</small>]
</li>
</BOUCLE_articles>
</ul>
</B_articles>
Un exemple de programmation de balise
L’objet de cette contribution n’est pas de fournir une recette exhaustive pour exploiter une nouvelle balise #LESMOTS
mais pour montrer que la programmation par l’exemple est possible. Comparez le code ci-dessus avec la fonction balise_LESAUTEURS_dist
que vous trouverez dans le fichier ecrire/public/balises.php
ainsi que le modèle dist/modeles/lesauteurs.html
et vous verrez. :)
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |