la balise #LESMOTS

Un modèle pour afficher les mots-clés d’un article

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. :)

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

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.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom