post_typo

Le pipeline post_typo permet de modifier le texte après que SPIP ait effectué les traitements typographiques prévus, et donc après le pipeline pre_typo également. Il est appelé par la fonction corriger_typo() de ecrire/inc/texte.php, fonction qui est appelée lors de l’utilisation des fonctions propre() ou typo().

  1. $letexte = pipeline('post_typo', $letexte);

Exemple

Le plugin « Typo Guillemets » remplace dans un texte les guillemets " par l’équivalent adapté à la langue comme « et » pour le français. Il analyse pour cela le texte une fois les raccourcis typographiques appliqués comme cela :

function typo_guillemets_post_typo($texte) {
	// ...
	switch ($GLOBALS['spip_lang']) {
		case 'fr':
			$guilles="« $2 »"; //LRTEUIN
			break;
		// ...
	}
 
	// on echappe les " dans les tags ;
	// attention ici \01 est le caractere chr(1), et \$0 represente le tag
	$texte = preg_replace(',<[^>]*"[^>]*(>|$),msSe', "str_replace('\"','\01', \"\$0\")", $texte);
 
	// on corrige les guill restants, qui sont par definition hors des tags
	// Un guill n'est pas pris s'il suit un caractere autre que espace, ou
	// s'il est suivi par un caractere de mot (lettre, chiffre)
	$texte = preg_replace('/(^|\s)"\s?([^"]*?)\s?"(\W|$)/S', '$1'.$guilles.'$3', $texte);
 
	// et on remet les guill des tags
	return str_replace("\01", '"', $texte);
}

Auteur Matthieu Marcillaud Publié le : Mis à jour : 12/05/17

Traductions : English, français