Browse Source

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

svn/attic/spip-bonux-3/118152
cedric@yterium.com 3 years ago
parent
commit
87f95bd67c
  1. 4
      paquet.xml
  2. 41
      spip_bonux_options.php

4
paquet.xml

@ -1,7 +1,7 @@
<paquet
prefix="spip_bonux"
categorie="outil"
version="3.5.3"
version="3.5.4"
etat="stable"
compatibilite="[3.0.0;3.2.*]"
logo="img_pack/spip-bonux.png"
@ -15,7 +15,7 @@
<auteur>Matthieu Marcillaud</auteur>
<auteur>romy.tetue.net</auteur>
<copyright>2008-2017</copyright>
<copyright>2008-2019</copyright>
<licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL</licence>
<pipeline nom="affichage_final" />

41
spip_bonux_options.php

@ -64,7 +64,6 @@ function spip_bonux_affichage_final($flux) {
return $flux;
}
if (!function_exists('_T_ou_typo')) {
/**
* une fonction qui regarde si $texte est une chaine de langue
@ -85,35 +84,27 @@ if (!function_exists('_T_ou_typo')) {
}
// Si la valeur est bien une chaine (et pas non plus un entier déguisé)
if (is_string($valeur) and !intval($valeur)) {
// Si on a dépassé 3.2, on peut uniquement utilser typo() car ça extrait les <:chaine:>
if (is_string($valeur) and !is_numeric($valeur)) {
// Si on est en >=3.2, on peut extraire les <:chaine:>
$version = explode('.',$GLOBALS['spip_version_branche']);
if ($version[0] > 3 or ($version[1] >= 2 and $version[0] == 3)) {
$extraction_chaines = (($version[0] > 3 or $version[1] >= 2) ? true : false);
// Si la chaine est du type <:truc:> on passe à _T()
if (strpos($valeur, '<:') !== false
and preg_match('/^\<:([^>]*?):\>$/', $valeur, $match)) {
$valeur = _T($match[1]);
} else {
// Sinon on la passe a typo() si c'est pertinent
if (
$mode_typo == 'toujours'
or (
$mode_typo == 'multi'
and include_spip('inc/filtres')
and (preg_match(_EXTRAIRE_IDIOME, $valeur) or strpos($valeur, '<multi>') !== false)
)
$mode_typo === 'toujours'
or ($mode_typo === 'multi' and strpos($valeur, '<multi>') !== false)
or ($extraction_chaines
and $mode_typo === 'multi'
and strpos($valeur, '<:') !== false
and include_spip('inc/filtres')
and preg_match(_EXTRAIRE_IDIOME, $valeur))
) {
include_spip('inc/texte');
$valeur = typo($valeur);
} elseif ($mode_typo == 'jamais' and preg_match('/^\<:(.*?):\>$/', $valeur, $match)) {
$valeur = _T($match[1]);
}
}
// Si on est avant 3.2, on fait comme avant
else {
// Si la chaine est du type <:truc:> on passe à _T()
if (preg_match('/^\<:(.*?):\>$/', $valeur, $match)) {
$valeur = _T($match[1]);
} else {
// Sinon on la passe a typo()
if ($mode_typo == 'toujours' or ($mode_typo == 'multi' and strpos($valeur, '<multi>') !== false)) {
include_spip('inc/texte');
$valeur = typo($valeur);
}
}
}
}

Loading…
Cancel
Save