c35bebe51f243345a3d350b1dcf882c8b13a7896
[lhc/web/www.git] / www / plugins / saisies / saisies_options.php
1 <?php
2
3 /**
4 * Déclaration systématiquement chargées
5 *
6 * @package SPIP\Saisies
7 **/
8
9 // Sécurité
10 if (!defined('_ECRIRE_INC_VERSION')) {
11 return;
12 }
13
14 if (!function_exists('_T_ou_typo')) {
15 /**
16 * une fonction qui regarde si $texte est une chaine de langue
17 * de la forme <:qqch:>
18 * si oui applique _T()
19 * si non applique typo() suivant le mode choisi
20 *
21 * @param mixed $valeur
22 * Une valeur à tester. Si c'est un tableau, la fonction s'appliquera récursivement dessus.
23 * @param string $mode_typo
24 * Le mode d'application de la fonction typo(), avec trois valeurs possibles "toujours", "jamais" ou "multi".
25 * @return mixed
26 * Retourne la valeur éventuellement modifiée.
27 */
28 function _T_ou_typo($valeur, $mode_typo = 'toujours') {
29 // Si la valeur est bien une chaine (et pas non plus un entier déguisé)
30 if (is_string($valeur) and !intval($valeur)) {
31 // Si la chaine est du type <:truc:> on passe à _T()
32 if (preg_match('/^\<:(.*?):\>$/', $valeur, $match)) {
33 $valeur = _T($match[1]);
34 } else {
35 // Sinon on la passe a typo()
36 if (!in_array($mode_typo, array('toujours', 'multi', 'jamais'))) {
37 $mode_typo = 'toujours';
38 }
39
40 if ($mode_typo == 'toujours' or ($mode_typo == 'multi' and strpos($valeur, '<multi>') !== false)) {
41 include_spip('inc/texte');
42 $valeur = typo($valeur);
43 }
44 }
45 } elseif (is_array($valeur)) {
46 // Si c'est un tableau, on reapplique la fonction récursivement
47 foreach ($valeur as $cle => $valeur2) {
48 $valeur[$cle] = _T_ou_typo($valeur2, $mode_typo);
49 }
50 }
51
52 return $valeur;
53 }
54 }