Carnet Wiki

PointsEntreeIncTexte

Version 2 — Novembre 2006 — echo

[Erreur...2][Erreur...3]

La fonction propre

[Erreur...5]En résumé, elle fait le gros travail de traduction des raccourcis.

La fonction typo

[Erreur...8]/ ! Le texte passant à travers la typo passe aussi à travers propre.

Les points d’entrée

La syntaxe des points d’entrée comprend :

  • le $texte à modifier et retourner
  • $ref passage par argument du tableau &$les_echap (si on veut les filtrer eux aussi ; pas conseillé !) On peut aussi y ajouter les parties que l’on veut y échapper.

[Erreur...12][Erreur...13]Voir aussi ce message.

Subtilités

1- Depuis le début on parle de parties échappées. Mais qu’est ce que cela veut dire ? Quand on ajoute un raccourci, on peut vouloir éviter que le texte à l’intérieur du raccourci soit traité par propre.

[Erreur...17][Erreur...18][Erreur...19]Voici un code d’exemple, qui échappe le code entre balise <machin> :

function avant_propre($texte) {
   global $code_echapper;

[Erreur...22][Erreur...23]	return $texte;
}

et voici le code qui les replace dans apres_propre :

function apres_propre($texte) {
   global $code_echapper;

	while (ereg('<@@MOI_MACHIN_([0-9]+)@@>', $texte, $regs)) {
		$lenum = $regs[2];
        $lecode = mon_traitement($code_echapper[$lenum],$regs[1]);

		$pos = strpos($texte, $regs[0]);

[Erreur...29]    //il faut faire attention de ne pas avoir cassé les échappements spip, par exemple, ici on s'assure que le script de remplacement n'ait pas remplacé < par &lt; et > par &gt;
	$find = "/&lt;@@SPIP_(SOURCEPROPRE|SOURCETYPO)([0-9]+)@@&gt;/";
	$replace = "<@@SPIP_12@@>";
	$texte = preg_replace($find,$replace,$texte);

	return $texte;
}

[Erreur...32]

Exemples

<?php

[Erreur...35]?>

Observations supplémentaires de kouki

[Erreur...38]sur spip-contrib :

[Erreur...40]