Changeset 117916 in spip-zone for _plugins_/saisies


Ignore:
Timestamp:
Sep 20, 2019, 10:49:49 AM (4 weeks ago)
Author:
maieul@…
Message:

amélioration de _T_ou_typo() pour permettre d'avoir plusieurs idiomes dans une saisie (Rastapopoulos)

Location:
_plugins_/saisies/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/saisies/trunk/paquet.xml

    r117913 r117916  
    22        prefix="saisies"
    33        categorie="outil"
    4         version="3.28.1"
     4        version="3.28.2"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.2.*]"
     
    3535
    3636        <utilise nom="verifier" compatibilite="[1.6.0;]" />
    37         <utilise nom="spip_bonux" compatibilite="[3.0.0;]" />
     37        <utilise nom="spip_bonux" compatibilite="[3.5.0;]" />
    3838        <utilise nom="yaml" compatibilite="[1.5.0;]" />
    3939</paquet>
  • _plugins_/saisies/trunk/saisies_options.php

    r97752 r117916  
    1111        return;
    1212}
    13 
     13include_spip('plugins/installer');
    1414if (!function_exists('_T_ou_typo')) {
    1515        /**
     
    2727         */
    2828        function _T_ou_typo($valeur, $mode_typo = 'toujours') {
     29                if (!in_array($mode_typo, array('toujours', 'multi', 'jamais'))) {
     30                        $mode_typo = 'toujours';
     31                }
     32
    2933                // Si la valeur est bien une chaine (et pas non plus un entier déguisé)
    3034                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)) {
     35                        // Si on a dépassé 3.2, on peut uniquement utilser typo() car ça extrait les <:chaine:>
     36                        if (spip_version_compare(spip_version(), '3.2', '>=')) {
     37                                if (
     38                                        $mode_typo == 'toujours'
     39                                        or (
     40                                                $mode_typo == 'multi'
     41                                                and include_spip('inc/filtres')
     42                                                and (preg_match(_EXTRAIRE_IDIOME, $valeur) or strpos($valeur, '<multi>') !== false)
     43                                        )
     44                                ) {
    4145                                        include_spip('inc/texte');
    4246                                        $valeur = typo($valeur);
    4347                                }
    4448                        }
    45                 } elseif (is_array($valeur)) {
    46                         // Si c'est un tableau, on reapplique la fonction récursivement
     49                        // Si on est avant 3.2, on fait comme avant
     50                        else {
     51                                // Si la chaine est du type <:truc:> on passe à _T()
     52                                if (preg_match('/^\<:(.*?):\>$/', $valeur, $match)) {
     53                                        $valeur = _T($match[1]);
     54                                } else {
     55                                        // Sinon on la passe a typo()
     56                                        if ($mode_typo == 'toujours' or ($mode_typo == 'multi' and strpos($valeur, '<multi>') !== false)) {
     57                                                include_spip('inc/texte');
     58                                                $valeur = typo($valeur);
     59                                        }
     60                                }
     61                        }
     62                }
     63                // Si c'est un tableau, on réapplique la fonction récursivement
     64                elseif (is_array($valeur)) {
    4765                        foreach ($valeur as $cle => $valeur2) {
    4866                                $valeur[$cle] = _T_ou_typo($valeur2, $mode_typo);
Note: See TracChangeset for help on using the changeset viewer.