Changeset 117935 in spip-zone


Ignore:
Timestamp:
Sep 24, 2019, 10:00:02 AM (13 months ago)
Author:
root
Message:

Refactoring de _T_ou_typo : plus clair, evider les preg_match et include qui ne sont pas necessaires

Location:
_plugins_/spip-bonux-3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spip-bonux-3/paquet.xml

    r117933 r117935  
    22        prefix="spip_bonux"
    33        categorie="outil"
    4         version="3.5.3"
     4        version="3.5.4"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.2.*]"
     
    1616        <auteur>romy.tetue.net</auteur>
    1717
    18         <copyright>2008-2017</copyright>
     18        <copyright>2008-2019</copyright>
    1919
    2020        <licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL</licence>
  • _plugins_/spip-bonux-3/spip_bonux_options.php

    r117933 r117935  
    6464        return $flux;
    6565}
    66 
    6766
    6867if (!function_exists('_T_ou_typo')) {
     
    8685
    8786                // Si la valeur est bien une chaine (et pas non plus un entier déguisé)
    88                 if (is_string($valeur) and !intval($valeur)) {
    89                         // Si on a dépassé 3.2, on peut uniquement utilser typo() car ça extrait les <:chaine:>
     87                if (is_string($valeur) and !is_numeric($valeur)) {
     88                        // Si on est en >=3.2, on peut extraire les <:chaine:>
    9089                        $version = explode('.',$GLOBALS['spip_version_branche']);
    91                         if ($version[0] > 3 or ($version[1] >= 2 and $version[0] == 3)) {
     90                        $extraction_chaines = (($version[0] > 3 or $version[1] >= 2) ? true : false);
     91                        // Si la chaine est du type <:truc:> on passe à _T()
     92                        if (strpos($valeur, '<:') !== false
     93                          and preg_match('/^\<:([^>]*?):\>$/', $valeur, $match)) {
     94                                $valeur = _T($match[1]);
     95                        } else {
     96                                // Sinon on la passe a typo() si c'est pertinent
    9297                                if (
    93                                         $mode_typo == 'toujours'
    94                                         or (
    95                                                 $mode_typo == 'multi'
    96                                                 and include_spip('inc/filtres')
    97                                                 and (preg_match(_EXTRAIRE_IDIOME, $valeur) or strpos($valeur, '<multi>') !== false)
    98                                         )
     98                                        $mode_typo === 'toujours'
     99                                        or ($mode_typo === 'multi' and strpos($valeur, '<multi>') !== false)
     100                                        or ($extraction_chaines
     101                                          and $mode_typo === 'multi'
     102                                          and strpos($valeur, '<:') !== false
     103                                          and include_spip('inc/filtres')
     104                                          and preg_match(_EXTRAIRE_IDIOME, $valeur))
    99105                                ) {
    100106                                        include_spip('inc/texte');
    101107                                        $valeur = typo($valeur);
    102                                 } elseif ($mode_typo == 'jamais' and preg_match('/^\<:(.*?):\>$/', $valeur, $match)) {
    103                                         $valeur = _T($match[1]);
    104                                 }
    105                         }
    106                         // Si on est avant 3.2, on fait comme avant
    107                         else {
    108                                 // Si la chaine est du type <:truc:> on passe à _T()
    109                                 if (preg_match('/^\<:(.*?):\>$/', $valeur, $match)) {
    110                                         $valeur = _T($match[1]);
    111                                 } else {
    112                                         // Sinon on la passe a typo()
    113                                         if ($mode_typo == 'toujours' or ($mode_typo == 'multi' and strpos($valeur, '<multi>') !== false)) {
    114                                                 include_spip('inc/texte');
    115                                                 $valeur = typo($valeur);
    116                                         }
    117108                                }
    118109                        }
Note: See TracChangeset for help on using the changeset viewer.