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 :

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

Télécharger

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

Traductions : English, français