From 57da11e1b58fda63948e59c507b7e9734596b1ff Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Thu, 6 Sep 2007 14:00:10 +0000 Subject: [PATCH] =?UTF-8?q?Multibase:=20pr=C3=A9paration=20de=20l'affichag?= =?UTF-8?q?e=20des=20documents=20indiqu=C3=A9s=20par=20un=20mod=C3=A8le=20?= =?UTF-8?q?distant.=20La=20fonction=20'''typo'''=20est=20r=C3=A9organis?= =?UTF-8?q?=C3=A9e=20afin=20que=20les=20mod=C3=A8les=20soient=20trait?= =?UTF-8?q?=C3=A9es=20avant=20la=20correction=20typographique=20proprement?= =?UTF-8?q?=20dite.=20Par=20ailleurs,=20suite=20=C3=A0=20la=20cr=C3=A9atio?= =?UTF-8?q?n=20des=20pipeline=20'''pre=5Ftypo''',=20'''post=5Ftypo''',=20'?= =?UTF-8?q?''pre=5Fedition'''=20et=20'''post=5Fedition''',=20les=20fonctio?= =?UTF-8?q?ns=20optionelles=20'''avant=5Ftypo'''=20et=20'''apres=5Ftypo'''?= =?UTF-8?q?=20sont=20consid=C3=A9r=C3=A9es=20comme=20obsol=C3=A8tes.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecrire/inc/texte.php | 71 ++++++++++++++++++++++++-------------------- 1 file changed, 38 insertions(+), 33 deletions(-) diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php index 12c62ffe26..3af3a5e692 100644 --- a/ecrire/inc/texte.php +++ b/ecrire/inc/texte.php @@ -445,12 +445,9 @@ function safehtml($t) { return interdire_scripts($t); // interdire le php (2 precautions) } - -// // Typographie generale -// note: $echapper = false lorsqu'on appelle depuis propre() [pour accelerer] -// -// http://doc.spip.org/@typo +// avec protection prealable des balises HTML et SPIP + function typo($letexte, $echapper=true) { // Plus vite ! @@ -460,11 +457,35 @@ function typo($letexte, $echapper=true) { if ($echapper) $letexte = echappe_html($letexte, 'TYPO'); - // Appeler les fonctions de pre-traitement + // + // Installer les modeles, notamment images et documents ; + // + // NOTE : dans propre() ceci s'execute avant les tableaux a cause du "|", + // et apres les liens a cause du traitement de [<imgXX|right>->URL] + $letexte = traiter_modeles($mem = $letexte, false, $echapper ? 'TYPO' : ''); + if ($letexte != $mem) $echapper = true; + unset($mem); + + $letexte = corriger_typo($letexte); + + // reintegrer les echappements + if ($echapper) + $letexte = echappe_retour($letexte, 'TYPO'); + + // l'espace prive securise ici + $letexte = interdire_scripts($letexte); + + return $letexte; +} + +// Correcteur typographique + +function corriger_typo($letexte) { + + // Plus vite ! + if (!$letexte) return $letexte; + $letexte = pipeline('pre_typo', $letexte); - // old style - if (function_exists('avant_typo')) - $letexte = avant_typo($letexte); // Caracteres de controle "illegaux" $letexte = corriger_caracteres($letexte); @@ -494,36 +515,20 @@ function typo($letexte, $echapper=true) { } - - // - // Installer les modeles, notamment images et documents ; - // - // NOTE : dans propre() ceci s'execute avant les tableaux a cause du "|", - // et apres les liens a cause du traitement de [<imgXX|right>->URL] - $letexte = traiter_modeles($mem = $letexte, false, $echapper ? 'TYPO' : ''); - if ($letexte != $mem) $echapper = true; - unset($mem); - - // Appeler les fonctions de post-traitement $letexte = pipeline('post_typo', $letexte); - // old style - if (function_exists('apres_typo')) - $letexte = apres_typo($letexte); - - // reintegrer les echappements - if ($echapper) - $letexte = echappe_retour($letexte, 'TYPO'); # un message pour abs_url - on est passe en mode texte $GLOBALS['mode_abs_url'] = 'texte'; - // Dans l'espace prive, securiser ici - if (!_DIR_RESTREINT) - $letexte = interdire_scripts($letexte); - return $letexte; } +// + +// note: $echapper = false lorsqu'on appelle depuis propre() [pour accelerer] +// +// http://doc.spip.org/@typo + // analyse des raccourcis issus de [TITRE->RACCOURCInnn] et connexes define('_RACCOURCI_URL', ',^\s*(\w*?)\s*(\d+)(\?(.*?))?(#([^\s]*))?\s*$,S'); @@ -942,7 +947,7 @@ define('_RACCOURCI_MODELE', define('_RACCOURCI_MODELE_DEBUT', '@^' . _RACCOURCI_MODELE .'@is'); // http://doc.spip.org/@traiter_modeles -function traiter_modeles($texte, $doublons=false, $echap='') { +function traiter_modeles($texte, $doublons=false, $echap='', $connect='') { // detecter les modeles (rapide) if (preg_match_all('/<[a-z_-]{3,}\s*[0-9|]+/iS', $texte, $matches, PREG_SET_ORDER)) { @@ -972,7 +977,7 @@ function traiter_modeles($texte, $doublons=false, $echap='') { $texte .= preg_replace(',[|][^|=]*,s',' ',$regs[4]); # version normale else { - $modele = inclure_modele($regs[2], $regs[3], $regs[4], $lien); + $modele = inclure_modele($regs[2], $regs[3], $regs[4], $lien, $connect); // le remplacer dans le texte if ($modele !== false) { -- GitLab