Multis
extends AbstractCollecteur
in package
Extrait une langue des extraits polyglottes (`<multi>`)
Retrouve les balises <multi>
d'un texte et remplace son contenu
par l'extrait correspondant à la langue demandée.
Si la langue demandée n'est pas trouvée dans le multi, ni une langue
approchante (exemple fr
si on demande fr_TU
), on retourne l'extrait
correspondant à la langue par défaut (option 'lang_defaut'), qui est
par défaut la langue du site. Et si l'extrait n'existe toujours pas
dans cette langue, ça utilisera la première langue utilisée
dans la balise <multi>
.
Ne pas mettre de span@lang=fr si on est déjà en fr.
Table of Contents
Properties
- $listeBalisesBloc : array<string|int, mixed>
- $markId : string
- $markPrefix : string
- $preg_multi : string
- La preg pour découper et collecter les modèles
Methods
- __construct() : mixed
- collecter() : array<string|int, mixed>
- detecter() : bool
- echappementHtmlBase64() : string
- Creer un bloc base64 correspondant a $texte ; au besoin en marquant une $source differente ; si $isBloc n'est pas fourni, le script detecte automagiquement si ce qu'on echappe est un div ou un span
- echappementTexteContientBaliseBloc() : bool
- Detecter si un texte contient des balises bloc ou non
- echapper() : array<string|int, mixed>
- Echapper les occurences de la collecte par un texte neutre du point de vue HTML
- echapper_enHtmlBase64() : string
- retablir() : string
- Retablir les occurences échappées précédemment
- retablir_depuisHtmlBase64() : string
- Rétablir les contenus échappés dans un texte en <(div|span) class="base64..."></(div|span)> Rq: $source sert a faire des echappements "a soi" qui ne sont pas nettoyes par propre() : exemple dans multi et dans typo()
- traiter() : string
- Traiter les multis d'un texte
- agglomerer_trads() : string
- Recoller ensemble les trads pour reconstituer le texte dans la balise <multi>...</multi>
- collecteur() : array<string|int, mixed>
- Collecteur générique des occurences d'une preg dans un texte avec leurs positions et longueur
- extraire_trads() : array<string|int, mixed>
- Convertit le contenu d'une balise `<multi>` en un tableau
- sanitizer_collection() : array<string|int, mixed>
- Sanitizer une collection d'occurences de multi : on sanitize chaque texte de langue séparemment
Properties
$listeBalisesBloc
public
static array<string|int, mixed>
$listeBalisesBloc
= ['address', 'applet', 'article', 'aside', 'blockquote', 'button', 'center', 'dl', 'dt', 'dd', 'div', 'fieldset', 'figure', 'figcaption', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'hgroup', 'head', 'header', 'iframe', 'li', 'map', 'marquee', 'nav', 'noscript', 'object', 'ol', 'pre', 'section', 'table', 'tr', 'td', 'th', 'tbody', 'foot', 'textarea', 'ul', 'script', 'style']
$markId
protected
string
$markId
$markPrefix
protected
static string
$markPrefix
= 'MULTI'
$preg_multi
La preg pour découper et collecter les modèles
protected
string
$preg_multi
Methods
__construct()
public
__construct([string|null $preg = null ]) : mixed
Parameters
- $preg : string|null = null
collecter()
public
collecter(string $texte[, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>
Parameters
- $texte : string
- $options : array<string|int, mixed> = []
-
bool $collecter_liens
Return values
array<string|int, mixed>detecter()
public
detecter(mixed $texte) : bool
Parameters
- $texte : mixed
Return values
boolechappementHtmlBase64()
Creer un bloc base64 correspondant a $texte ; au besoin en marquant une $source differente ; si $isBloc n'est pas fourni, le script detecte automagiquement si ce qu'on echappe est un div ou un span
public
static echappementHtmlBase64(string $texte[, string $source = '' ][, bool|null $isBloc = null ][, array<string|int, mixed> $attributs = [] ]) : string
Parameters
- $texte : string
- $source : string = ''
- $isBloc : bool|null = null
- $attributs : array<string|int, mixed> = []
Return values
stringechappementTexteContientBaliseBloc()
Detecter si un texte contient des balises bloc ou non
public
static echappementTexteContientBaliseBloc(string $texte) : bool
Parameters
- $texte : string
Return values
boolechapper()
Echapper les occurences de la collecte par un texte neutre du point de vue HTML
public
echapper(string $texte[, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>
Parameters
- $texte : string
- $options : array<string|int, mixed> = []
-
string $sanitize_callback
Tags
Return values
array<string|int, mixed> —texte, marqueur utilise pour echapper les modeles
echapper_enHtmlBase64()
public
echapper_enHtmlBase64(string $texte[, string $source = '' ][, callable|null $callback_function = null ][, array<string|int, mixed> $callback_options = [] ]) : string
Parameters
- $texte : string
- $source : string = ''
- $callback_function : callable|null = null
- $callback_options : array<string|int, mixed> = []
Return values
stringretablir()
Retablir les occurences échappées précédemment
public
retablir(string $texte) : string
Parameters
- $texte : string
Tags
Return values
stringretablir_depuisHtmlBase64()
Rétablir les contenus échappés dans un texte en <(div|span) class="base64..."></(div|span)> Rq: $source sert a faire des echappements "a soi" qui ne sont pas nettoyes par propre() : exemple dans multi et dans typo()
public
static retablir_depuisHtmlBase64(string $texte[, string $source = '' ][, string $filtre = '' ]) : string
Parameters
- $texte : string
- $source : string = ''
- $filtre : string = ''
Tags
Return values
stringtraiter()
Traiter les multis d'un texte
public
traiter(string $texte, array<string|int, mixed> $options) : string
Parameters
- $texte : string
- $options : array<string|int, mixed>
-
?string $lang ?string $lang_defaut ?bool echappe_span ?bool appliquer_typo
Tags
Return values
stringagglomerer_trads()
Recoller ensemble les trads pour reconstituer le texte dans la balise <multi>...</multi>
protected
agglomerer_trads(array<string, string> $trads) : string
Parameters
- $trads : array<string, string>
Return values
stringcollecteur()
Collecteur générique des occurences d'une preg dans un texte avec leurs positions et longueur
protected
static collecteur(string $texte, string $if_chars, string $start_with, string $preg[, int $max_items = 0 ]) : array<string|int, mixed>
Parameters
- $texte : string
-
texte à analyser pour la collecte
- $if_chars : string
-
caractere(s) à tester avant de tenter la preg
- $start_with : string
-
caractere(s) par lesquels commencent l'expression recherchée (permet de démarrer la preg à la prochaine occurence de cette chaine)
- $preg : string
-
preg utilisée pour la collecte
- $max_items : int = 0
-
pour limiter le nombre de preg collectée (pour la detection simple de présence par exemple)
Return values
array<string|int, mixed>extraire_trads()
Convertit le contenu d'une balise `<multi>` en un tableau
protected
extraire_trads(string $bloc) : array<string|int, mixed>
Exemple de blocs.
texte par défaut [fr] en français [en] en anglais
[fr] en français [en] en anglais
Parameters
- $bloc : string
-
Le contenu intérieur d'un bloc multi
Return values
array<string|int, mixed> —[code de langue => texte] Peut retourner un code de langue vide, lorsqu'un texte par défaut est indiqué.
sanitizer_collection()
Sanitizer une collection d'occurences de multi : on sanitize chaque texte de langue séparemment
protected
sanitizer_collection(array<string|int, mixed> $collection, string $sanitize_callback) : array<string|int, mixed>
Parameters
- $collection : array<string|int, mixed>
- $sanitize_callback : string