_AUTOBR_IGNORER
public
mixed
_AUTOBR_IGNORER
= \_AUTOBR ? '<!-- ig br -->' : ''
public
mixed
_AUTOBR_IGNORER
= \_AUTOBR ? '<!-- ig br -->' : ''
public
mixed
_BALISES_BLOCS
= 'address|applet|article|aside|blockquote|button|center|d[ltd]|div|fieldset|fig(ure|caption)|footer|form|h[1-6r]|hgroup|head|header|iframe|li|map|marquee|nav|noscript|object|ol|pre|section|t(able|[rdh]|body|foot|extarea)|ul|script|style'
public
mixed
_EXTRAIRE_DOMAINE
= '/^(?:(?:[^\W_]((?:[^\W_]|-){0,61}[^\W_,])?\.)+[a-z0-9]{2,6}|localhost)\b/Si'
public
mixed
_EXTRAIRE_LIEN
= ',^\s*(?:' . \_PROTOCOLES_STD . '):?/?/?\s*$,iS'
public
mixed
_EXTRAIRE_LIENS
= ',' . '\[[^\[\]]*(?:<-|->).*?\]' . '|<a\b.*?</a\b' . '|<\w.*?>' . '|((?:https?:/|www\.)[^"\'\s\[\]\}\)<>]*)' . ',imsS'
public
mixed
_EXTRAIRE_RESSOURCES
= ',' . '<"?(https?://|[^\s][\w -]+\.[\w -]+)[^<]*>' . ',UimsS'
public
mixed
_NOTES_FERME_NOTE
= '] </span>'
public
mixed
_NOTES_FERME_REF
= ']</span>'
public
mixed
_NOTES_OUVRE_NOTE
= '<span class="spip_note_ref">['
public
mixed
_NOTES_OUVRE_REF
= '<span class="spip_note_ref"> ['
public
mixed
_NOTES_RACCOURCI
= ',\[\[(\s*(<([^>\'"]*)>)?(.*?))\]\],msS'
public
mixed
_RACCOURCI_ANCRE
= '/\[#?([^][]*)<-\]/S'
public
mixed
_RACCOURCI_ATTRIBUTS
= '/^((?:[^[]*?(?:\[[^]]*\])?)*?)([|]([^<>]*?))?([{]([a-z_]*)[}])?$/'
public
mixed
_RACCOURCI_BALISE
= ',</?[a-z!][^<>]*[' . \preg_quote(\_RACCOURCI_PROTEGER) . '][^<>]*>,imsS'
public
mixed
_RACCOURCI_CHAPO
= '/^(\W*)(\W*)(\w*\d+([?#].*)?)$/'
public
mixed
_RACCOURCI_GLOSES
= '/^([^|#{]*\w[^|#{]*)([^#]*)(#([^|{}]*))?(.*)$/S'
public
mixed
_RACCOURCI_GLOSSAIRE
= '/\[\?+\s*([^][<>]+)\]/S'
public
mixed
_RACCOURCI_PROTECTEUR
= "\x01\x02\x03\x04"
public
mixed
_RACCOURCI_PROTEGER
= '{}_-'
public
mixed
_RACCOURCI_TH_SPAN
= '\s*(:?{{[^{}]+}}\s*)?|<'
public
mixed
_RACCOURCI_URL
= '/^\s*(\w*?)\s*(\d+)(\?(.*?))?(#([^\s]*))?\s*$/S'
public
mixed
_TYPO_BALISE
= ',</?[a-z!][^<>]*[' . \preg_quote(\_TYPO_PROTEGER) . '][^<>]*>,imsS'
public
mixed
_TYPO_PROTECTEUR
= "\x01\x02\x03\x04\x05\x06\x07\x08"
public
mixed
_TYPO_PROTEGER
= "!':;?~%-"
public
mixed
_WHEELS_FORMAT_DEFAUT
= 'json'
public
mixed
_WHEELS_VERSION
= 68672
stripos(mixed $haystack, mixed $needle) : mixed
strpbrk(mixed $haystack, mixed $char_list) : mixed
tw_autoliens(string|null $t) : string
tw_traiter_autoliens(mixed $r) : mixed
Production de la balise a+href à partir des raccourcis `[xxx->url]` etc.
inc_lien_dist(string $lien[, string $texte = '' ][, string $class = '' ][, string $title = '' ][, string $hlang = '' ][, string $rel = '' ][, string $connect = '' ][, array<string|int, mixed> $env = [] ]) : string
Detecter qu'une URL est externe pour poser une class en fonction
lien_is_url_externe(string|null $url_lien) : bool
Générer le HTML d'un lien quelconque
balise_a([array<string|int, mixed> $args = [] ]) : string
Cette fonction génère une balise <a>
suivant de multiples arguments.
Tableau des arguments disponibles pour générer le lien :
Retourne une balise HTML de lien ou une chaîne vide.
expanser_liens(mixed $t[, mixed $connect = '' ][, mixed $env = [] ]) : mixed
Nettoie un texte en enlevant les raccourcis typo, sans les traiter
nettoyer_raccourcis_typo(string $texte[, string $connect = '' ]) : string
On ne laisse que les titres des liens, en les explicitant si ce n’est pas fait.
traiter_raccourci_lien_atts(mixed $texte) : mixed
Retourne la valeur d'un champ de redirection (articles virtuels)
virtuel_redirige(string $virtuel[, bool $url = false ]) : string
L'entrée accepte plusiers types d'écritures :
[Lien->article23]
,rub2
ou rubrique2
Texte qui définit la redirection, à analyser. Plusieurs types peuvent être acceptés :
[texte->TYPEnnn]
TYPEnnn
false : retourne uniquement le nom du lien (TYPEnnn) true : retourne l'URL calculée pour le lien
Nom du lien ou URL
calculer_url(string|null $ref[, string|null $texte = '' ][, string $pour = 'url' ][, string $connect = '' ][, bool $echappe_typo = true ]) : mixed
traiter_lien_explicite(string|null $ref[, string|null $texte = '' ][, string $pour = 'url' ][, string $connect = '' ][, bool $echappe_typo = true ]) : mixed
liens_implicite_glose_dist(mixed $texte, mixed $id, mixed $type, mixed $args, mixed $ancre[, mixed $connect = '' ]) : mixed
Transformer un lien raccourci art23 en son URL Par defaut la fonction produit une url prive si on est dans le prive ou publique si on est dans le public.
traiter_lien_implicite(string|null $ref[, string|null $texte = '' ][, string $pour = 'url' ][, string $connect = '' ]) : array<string|int, mixed>|bool|string
La globale lien_implicite_cible_public permet de forcer un cas ou l'autre : $GLOBALS['lien_implicite_cible_public'] = true; => tous les liens raccourcis pointent vers le public $GLOBALS['lien_implicite_cible_public'] = false; => tous les liens raccourcis pointent vers le prive unset($GLOBALS['lien_implicite_cible_public']); => retablit le comportement automatique
typer_raccourci(string|null $lien) : array<string|int, mixed>
Retourne le titre et la langue d'un objet éditorial
traiter_raccourci_titre(int $id, string $type[, string $connect = '' ]) : array<string|int, mixed>
Identifiant de l'objet
Type d'objet
Connecteur SQL utilisé
{
traiter_raccourci_ancre(string|null $texte) : string
traiter_raccourci_glossaire(string|null $texte) : string
glossaire_std(mixed $terme) : mixed
Empile ou dépile des notes de bas de page
inc_notes_dist(bool|string|array<string|int, mixed> $arg[, string $operation = 'traiter' ][, bool $ignorer_autobr = false ]) : null|string|array<string|int, mixed>
Point d'entrée pour la gestion des notes.
Argument :
Ce dernier cas retourne la composition totale, en particulier, envoyer un tableau vide permet de tout récupérer.
En complément du format attendu dans $arg
, on indique ici
le type d'oopétation à réaliser (traiter | empiler | depiler |
sauver_etat | restaurer_etat | contexter_cache)
True pour ne pas prendre en compte les retours à la ligne comme des tags br (mais 2 à la suite font un paragraphe tout de même).
traiter_raccourci_notes(mixed $letexte, mixed $marqueur_notes) : mixed
traiter_les_notes(mixed $notes, mixed $ignorer_autobr) : mixed
tw_post_typo(mixed $t) : mixed
tw_pre_liens(mixed $t) : mixed
tw_traiter_ressources(mixed $r) : mixed
Échapper et affichier joliement les `<script` .
echappe_js(string $t) : string
..
Paragrapher seulement
paragrapher(string $t[, null $toujours_paragrapher = null ]) : string
Fermer les paragraphes ; Essaie de préserver des paragraphes indiqués
à la main dans le texte (par ex: on ne modifie pas un <p align='center'>
)
Le texte
true pour forcer les <p>
même pour un seul paragraphe
Texte paragraphé
Empêcher l'exécution de code PHP et JS
interdire_scripts(string $arg[, int $mode_filtre = null ]) : string
Sécurité : empêcher l'exécution de code PHP, en le transformant en joli code dans l'espace privé. Cette fonction est aussi appelée par propre et typo.
De la même manière, la fonction empêche l'exécution de JS mais selon le mode de protection passe en argument
Il ne faut pas désactiver globalement la fonction dans l'espace privé car elle protège aussi les balises des squelettes qui ne passent pas forcement par propre ou typo après si elles sont appelées en direct
Code à protéger
Mode de protection -1 : protection dans l'espace privé et public 0 : protection dans l'espace public 1 : aucune protection utilise la valeur de la globale filtrer_javascript si non fourni
Code protégé
Applique la typographie générale
typo(string $letexte[, bool $echapper = true ][, string|null $connect = null ][, array<string|int, mixed> $env = [] ]) : string
Effectue un traitement pour que les textes affichés suivent les règles
de typographie. Fait une protection préalable des balises HTML et SPIP.
Transforme les balises <multi>
Texte d'origine
Échapper ?
Nom du connecteur à la bdd
Environnement (pour les calculs de modèles)
Texte transformé
Corrige la typographie
corriger_typo(string $t[, string $lang = '' ]) : string
Applique les corrections typographiques adaptées à la langue indiquée.
Texte
Langue
Texte
Traitement des raccourcis de tableaux
traiter_tableau(string $bloc) : string
Traitement des listes
traiter_listes(string $t) : string
On utilise la wheel correspondante
mais d'abord, une callback de reconfiguration des raccourcis a partir de globales (est-ce old-style ? on conserve quand meme par souci de compat ascendante)
personnaliser_raccourcis(mixed &$ruleset) : string
Nettoie un texte, traite les raccourcis autre qu'URL, la typo, etc.
traiter_raccourcis(string $t[, bool $show_autobr = false ]) : string
Transforme les raccourcis SPIP, liens et modèles d'un texte en code HTML
propre(string $t[, string|null $connect = null ][, array<string|int, mixed> $env = [] ]) : string
Filtre à appliquer aux champs du type #TEXTE*
Texte avec des raccourcis SPIP
Nom du connecteur à la bdd
Environnement (pour les calculs de modèles)
Texte transformé
safe_ecrire_traiter_echap_html_dist(mixed $regs, mixed $options) : mixed
safe_public_traiter_echap_html_dist(mixed $regs, mixed $options) : mixed
safe_ecrire_traiter_echap_script_dist(mixed $regs, mixed $options) : mixed
safe_public_traiter_echap_script_dist(mixed $regs, mixed $options) : mixed
safe_ecrire_traiter_echap_code_dist(mixed $regs, mixed $options) : mixed
safe_public_traiter_echap_code_dist(mixed $regs, mixed $options) : mixed
tw_trig_purger(mixed $quoi) : mixed
Lire une valeur en cache memoization minimale (utilise le plugin memoization si disponible)
tw_cache_get(string $key) : mixed
Ecrire une valeur en cache memoization minimale (utilise le plugin memoization si disponible)
tw_cache_set(string $key, mixed $value[, int|null $ttl = null ]) : bool
typographie_en(mixed $t) : mixed
typographie_fr(mixed $t) : mixed
Echapper les tags html qui ont un ` dans un attribut
echappe_tags_sub_backticks(array<string|int, mixed> $match) : string
replace_backticks(mixed $texte) : mixed
echappe_anti_xss(mixed $match) : mixed
tw_def_wrap(mixed $t) : mixed
tw_liste_init(mixed $t) : mixed
tw_liste_close(mixed $t) : mixed
tw_liste_item(mixed $t[, mixed $quoi = 'item' ]) : mixed
tw_def_wrap(mixed $t) : mixed
Callback de detection des liens qui contiennent des blocks : dans ce cas il faut traiter le <a> comme un quasi block et fermer/ouvrir les <p> autour du <a>
detecter_liens_blocs(string $t) : string
Callback fermer-para-mano
fermer_para_mano(string $t) : string
On refait le preg, à la main
Callback de traitement de chaque tableau
replace_tableaux(array<string|int, mixed> $m) : string
Callback pour la puce qui est définissable/surchargeable
replace_puce() : string
Code HTML d'une puce
Callback pour les Abbr
inserer_abbr(array<string|int, mixed> $m) : string
Code HTML d'une abréviation