[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / couteau_suisse / couteau_suisse / outils / toutmulti.php
1 <?php
2 /*
3 - ToutMulti -
4 Introduit le raccourci <:texte:> pour utiliser librement des
5 blocs multi dans un flux de texte (via typo ou propre)
6 Accepte egalement les arguments. Exemple :
7 <:chaine{argument1=un texte, argument2=un autre texte}:>
8 */
9
10 // expression tiree du code de SPIP 2.0 : ecrire/public/phraser_html.php
11 define('CS_BALISE_IDIOMES',',<:([a-z0-9_]+)({([^=>]*=[^>]*)})?:>,iS');
12
13 function ToutMulti_rempl($texte) {
14 if (preg_match_all(CS_BALISE_IDIOMES, $texte, $matches, PREG_SET_ORDER)) {
15 foreach ($matches as $m) {
16 // Stocker les arguments de la balise de traduction
17 $args = array();
18 foreach(explode(',',$m[3]) as $val) {
19 $arg = explode('=', $val);
20 if (strlen($key = trim($arg[0]))) $args[$key] = trim($arg[1]);
21 }
22 $texte = str_replace($m[0], _T('spip/ecrire/public:'.$m[1], $args), $texte);
23 }
24 }
25 return $texte;
26 }
27
28 // fonction principale (pipeline pre_typo)
29 function ToutMulti_pre_typo($texte) {
30 if (strpos($texte, '<:')===false) return $texte;
31 // appeler ToutMulti_rempl() une fois que certaines balises ont ete protegees
32 return cs_echappe_balises('', 'ToutMulti_rempl', $texte);
33 }
34
35 ?>