Skip to content
Extraits de code Groupes Projets
Valider 57da11e1 rédigé par esj's avatar esj
Parcourir les fichiers

Multibase: préparation de l'affichage des documents indiqués par un modèle...

Multibase: préparation de l'affichage des documents indiqués par un modèle distant. La fonction '''typo''' est réorganisée afin que les modèles soient traitées avant la correction typographique proprement dite. Par ailleurs, suite à la création des pipeline '''pre_typo''', '''post_typo''', '''pre_edition''' et '''post_edition''', les fonctions optionelles '''avant_typo''' et '''apres_typo''' sont considérées comme obsolètes.
parent 9966c826
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -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) {
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter