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

Multi-base: les boucles référençant des connexions externes...

Multi-base: les boucles référençant des connexions externes {{{<BOUCLE1(A:...}}} ou les pages appelées ainsi (paramètre d'URL {{{&connect=...}}} calculent à présent correctement les modèles contenus dans les champs SQL soumis aux filtre '''typo()''' et '''propre()'''. C'est un pas en avant dans la résolution complète de #716.

Différences avec les versions précédentes:

	* (bug de PCRE) les notes nommées {{{ [[<*> ...}}} ne peuvent plus contenir d'espaces entre les deux crochets et le chevron;

	* les fonctions redéfinissables {{{avant_propre}}} et {{{apres_propre}}} sont évacuées, faisant double emploi avec les pipelines {{{pre_propre}}} et {{{post_propre}}}.

	* surtout: le pipeline {{{pre_propre}}} recevra un texte où les raccourcis de liens ({{{ [->art1] }}} etc) seront déjà expansés.

Test:
{{{
Doc 2239 centré
<doc2239|center>

Je mets 2 fois un raccourci de glossaire
[?SPIP]  [?SPIP] 
puis un [raccourci->art1]
et un autre, automatique, [->art3634].

Suivre la note
[[elle est terminée par un  [raccourci->art1]]].

Un moment de poésie.
<poesie>
un 
   haiku
sur
2 lignes
</poesie>

Elle préfère parler d'un {accroissement de la dispersionsalariale} [[
 [{Perspectives économiques}->http://www.oecd.org/document/4/0,3343,fr_2649_201185_20347588_1_1_1_1,00.html]
- Vol. 2007-1, n¡~81, mai 2007, p. ~184. ]]

Elle aussi préfère parler d'un {accroissement de la dispersion salariale}
mais sur une seule ligne  [[  [{Perspectives économiques}->http://www.oecd.org/document/4/0,3343,fr_2649_201185_20347588_1_1_1_1,00.html]
- Vol. 2007-1, n¡~81, mai 2007, p. ~184. ]].

Une Juliette [[<*> sans numéro.]].
}}}
parent cc71b049
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -116,20 +116,19 @@ function balise_LOGO__dist ($p) { ...@@ -116,20 +116,19 @@ function balise_LOGO__dist ($p) {
$code_lien = "''"; $code_lien = "''";
$code_lien .= ", '". $align . "'"; $code_lien .= ", '". $align . "'";
} }
$connect = $p->id_boucle ?$p->boucles[$p->id_boucle]->sql_serveur :'';
if ($p->id_boucle AND $p->boucles[$p->id_boucle]->sql_serveur) { if ($type_objet == 'DOCUMENT') {
$p->code = "''";
spip_log("Logo distant indisponible");
// cas des documents
} elseif ($type_objet == 'DOCUMENT') {
$p->code = "calcule_logo_document($_id_objet, '" . $p->code = "calcule_logo_document($_id_objet, '" .
$p->descr['documents'] . $p->descr['documents'] .
'\', $doublons, '. intval($flag_fichier).", $code_lien, '". '\', $doublons, '. intval($flag_fichier).", $code_lien, '".
// #LOGO_DOCUMENT{x,y} donne la taille maxi // #LOGO_DOCUMENT{x,y} donne la taille maxi
texte_script($params) texte_script($params)
."')"; ."'," . _q($connect) .")";
} }
else { elseif ($connect) {
$p->code = "''";
spip_log("Les logos distants ne sont pas prevus");
} else {
$p->code = "affiche_logos(calcule_logo('$id_objet', '" . $p->code = "affiche_logos(calcule_logo('$id_objet', '" .
(($suite_logo == '_SURVOL') ? 'off' : (($suite_logo == '_SURVOL') ? 'off' :
(($suite_logo == '_NORMAL') ? 'on' : 'ON')) . (($suite_logo == '_NORMAL') ? 'on' : 'ON')) .
......
...@@ -289,6 +289,24 @@ function echappe_retour($letexte, $source='', $filtre = "") { ...@@ -289,6 +289,24 @@ function echappe_retour($letexte, $source='', $filtre = "") {
return $letexte; return $letexte;
} }
// Reinserer le javascript de confiance (venant des modeles)
function echappe_retour_modeles($letexte)
{
$letexte = echappe_retour($letexte);
// Dans l'espace prive, securiser ici
if (!_DIR_RESTREINT)
$letexte = interdire_scripts($letexte);
// Reinserer les echappements des modeles
if (defined('_PROTEGE_JS_MODELES'))
$letexte = echappe_retour($letexte,"javascript"._PROTEGE_JS_MODELES);
return trim($letexte);
}
// http://doc.spip.org/@nettoyer_raccourcis_typo // http://doc.spip.org/@nettoyer_raccourcis_typo
function nettoyer_raccourcis_typo($texte){ function nettoyer_raccourcis_typo($texte){
$texte = pipeline('nettoyer_raccourcis_typo',$texte); $texte = pipeline('nettoyer_raccourcis_typo',$texte);
...@@ -297,7 +315,7 @@ function nettoyer_raccourcis_typo($texte){ ...@@ -297,7 +315,7 @@ function nettoyer_raccourcis_typo($texte){
foreach ($regs as $reg) { foreach ($regs as $reg) {
list ($titre,,)= traiter_raccourci_lien_atts($reg[1]); list ($titre,,)= traiter_raccourci_lien_atts($reg[1]);
$titre = calculer_url($reg[3], $titre, 'titre'); $titre = calculer_url($reg[3], $titre, 'titre');
$titre = typo(supprimer_tags($titre)); $titre = corriger_typo(supprimer_tags($titre));
$texte = str_replace($reg[0], $titre, $texte); $texte = str_replace($reg[0], $titre, $texte);
} }
...@@ -500,7 +518,7 @@ function safehtml($t) { ...@@ -500,7 +518,7 @@ function safehtml($t) {
// avec protection prealable des balises HTML et SPIP // avec protection prealable des balises HTML et SPIP
// http://doc.spip.org/@typo // http://doc.spip.org/@typo
function typo($letexte, $echapper=true) { function typo($letexte, $echapper=true, $connect='') {
// Plus vite ! // Plus vite !
if (!$letexte) return $letexte; if (!$letexte) return $letexte;
...@@ -512,9 +530,10 @@ function typo($letexte, $echapper=true) { ...@@ -512,9 +530,10 @@ function typo($letexte, $echapper=true) {
// //
// Installer les modeles, notamment images et documents ; // Installer les modeles, notamment images et documents ;
// //
// NOTE : dans propre() ceci s'execute avant les tableaux a cause du "|", // NOTE : propre() l'a deja fait
// et apres les liens a cause du traitement de [<imgXX|right>->URL] // sauf pour les textes renvoyes par calculer_url()
$letexte = traiter_modeles($mem = $letexte, false, $echapper ? 'TYPO' : '');
$letexte = traiter_modeles($mem = $letexte, false, $echapper ? 'TYPO' : '', $connect);
if ($letexte != $mem) $echapper = true; if ($letexte != $mem) $echapper = true;
unset($mem); unset($mem);
...@@ -524,8 +543,9 @@ function typo($letexte, $echapper=true) { ...@@ -524,8 +543,9 @@ function typo($letexte, $echapper=true) {
if ($echapper) if ($echapper)
$letexte = echappe_retour($letexte, 'TYPO'); $letexte = echappe_retour($letexte, 'TYPO');
// l'espace prive securise ici // Dans l'espace prive, securiser ici
$letexte = interdire_scripts($letexte); if (!_DIR_RESTREINT)
$letexte = interdire_scripts($letexte);
return $letexte; return $letexte;
} }
...@@ -1025,7 +1045,7 @@ function traiter_modeles($texte, $doublons=false, $echap='', $connect='') { ...@@ -1025,7 +1045,7 @@ function traiter_modeles($texte, $doublons=false, $echap='', $connect='') {
$texte .= preg_replace(',[|][^|=]*,s',' ',$regs[4]); $texte .= preg_replace(',[|][^|=]*,s',' ',$regs[4]);
# version normale # version normale
else { else {
$modele = inclure_modele($regs[2], $regs[3], $regs[4], $lien, $connect); $modele = inclure_modele($regs[2], $regs[3], $regs[4], $lien, $connect);
// le remplacer dans le texte // le remplacer dans le texte
if ($modele !== false) { if ($modele !== false) {
...@@ -1167,21 +1187,19 @@ function traiter_raccourci_glossaire($letexte) ...@@ -1167,21 +1187,19 @@ function traiter_raccourci_glossaire($letexte)
// Regexp des raccouris, aussi utilisee pour la fusion de sauvegarde Spip // Regexp des raccouris, aussi utilisee pour la fusion de sauvegarde Spip
define('_RACCOURCI_LIEN', ",\[([^][]*)->(>?)([^]]*)\],msS"); define('_RACCOURCI_LIEN', ",\[([^][]*)->(>?)([^]]*)\],msS");
// http://doc.spip.org/@traiter_raccourcis_propre function expanser_liens($letexte, $connect='')
function traiter_raccourcis_propre($letexte)
{ {
$inserts = array(); $inserts = array();
if (preg_match_all(_RACCOURCI_LIEN, $letexte, $matches, PREG_SET_ORDER)) { if (preg_match_all(_RACCOURCI_LIEN, $letexte, $matches, PREG_SET_ORDER)) {
$i = 0; $i = 0;
foreach ($matches as $regs) { foreach ($matches as $regs) {
$inserts[++$i] = traiter_raccourci_lien($regs); $inserts[++$i] = traiter_raccourci_lien($regs, $connect);
$letexte = str_replace($regs[0], "@@SPIP_ECHAPPE_LIEN_$i@@", $letexte = str_replace($regs[0], "@@SPIP_ECHAPPE_LIEN_$i@@",
$letexte); $letexte);
} }
} }
$letexte = typo($letexte, /* echap deja fait, accelerer */ false); $letexte = corriger_typo(traiter_modeles($letexte, false, false, $connect));
foreach ($inserts as $i => $insert) { foreach ($inserts as $i => $insert) {
$letexte = str_replace("@@SPIP_ECHAPPE_LIEN_$i@@", $insert, $letexte); $letexte = str_replace("@@SPIP_ECHAPPE_LIEN_$i@@", $insert, $letexte);
} }
...@@ -1195,9 +1213,9 @@ function traiter_raccourcis_propre($letexte) ...@@ -1195,9 +1213,9 @@ function traiter_raccourcis_propre($letexte)
// 1=>texte (ou texte|hreflang ou texte|bulle ou texte|bulle{hreflang}) // 1=>texte (ou texte|hreflang ou texte|bulle ou texte|bulle{hreflang})
// 2=>double fleche (historiquement, liens ouvrants) // 2=>double fleche (historiquement, liens ouvrants)
// 3=>url // 3=>url
// // A terme, il faudrait tenir compte de $connect
// http://doc.spip.org/@traiter_raccourci_lien // http://doc.spip.org/@traiter_raccourci_lien
function traiter_raccourci_lien($regs) { function traiter_raccourci_lien($regs, $connect='') {
list(,$texte, ,$url) = $regs; list(,$texte, ,$url) = $regs;
list($texte, $bulle, $hlang) = traiter_raccourci_lien_atts($texte); list($texte, $bulle, $hlang) = traiter_raccourci_lien_atts($texte);
...@@ -1209,8 +1227,14 @@ function traiter_raccourci_lien($regs) { ...@@ -1209,8 +1227,14 @@ function traiter_raccourci_lien($regs) {
$hlang = $lang; $hlang = $lang;
$lang = ($hlang ? ' hreflang="'.$hlang.'"' : '') . $bulle; $lang = ($hlang ? ' hreflang="'.$hlang.'"' : '') . $bulle;
# ici bien passer le lien pour traiter [<doc3>->url] # Penser au cas [<imgXX|right>->URL]
return typo("<a href=\"$lien\" class=\"$class\"$lang>$texte</a>"); # ceci s'execute heureusement avant les tableaux et leur "|".
# Attention, le texte initial est deja echappe mais pas forcement
# celui retourne par calculer_url.
$texte = typo($texte, true, $connect);
return "<a href=\"$lien\" class=\"$class\"$lang>$texte</a>";
} }
// Repere dans la partie texte d'un raccourci [texte->...] // Repere dans la partie texte d'un raccourci [texte->...]
...@@ -1288,7 +1312,7 @@ function traiter_poesie($letexte) ...@@ -1288,7 +1312,7 @@ function traiter_poesie($letexte)
return $letexte; return $letexte;
} }
// Nettoie un texte, traite les raccourcis spip, la typo, etc. // Nettoie un texte, traite les raccourcis autre qu'URL, la typo, etc.
// http://doc.spip.org/@traiter_raccourcis // http://doc.spip.org/@traiter_raccourcis
function traiter_raccourcis($letexte) { function traiter_raccourcis($letexte) {
...@@ -1296,24 +1320,19 @@ function traiter_raccourcis($letexte) { ...@@ -1296,24 +1320,19 @@ function traiter_raccourcis($letexte) {
// Appeler les fonctions de pre_traitement // Appeler les fonctions de pre_traitement
$letexte = pipeline('pre_propre', $letexte); $letexte = pipeline('pre_propre', $letexte);
// old style
if (function_exists('avant_propre'))
$letexte = avant_propre($letexte);
$letexte = traiter_raccourcis_propre($letexte);
$letexte = traiter_poesie($letexte); $letexte = traiter_poesie($letexte);
// Harmoniser les retours chariot // Harmoniser les retours chariot
$letexte = preg_replace(",\r\n?,S", "\n", $letexte); $letexte = preg_replace(",\r\n?,S", "\n", $letexte);
// Recuperer les paragraphes HTML // Recuperer les paragraphes HTML
$letexte = preg_replace(",<p[>[:space:]],iS", "\n\n\\0", $letexte); $letexte = preg_replace(',<p[>]\s,iS', "\n\n\\0", $letexte);
$letexte = preg_replace(",</p[>[:space:]],iS", "\\0\n\n", $letexte); $letexte = preg_replace(',</p[>]\s,iS', "\\0\n\n", $letexte);
$letexte = traiter_raccourci_glossaire($letexte); $letexte = traiter_raccourci_glossaire($letexte);
$letexte = traiter_raccourci_ancre($letexte); $letexte = traiter_raccourci_ancre($letexte);
list($letexte, $mes_notes) = traite_raccourci_notes($letexte); list($letexte, $mes_notes) = traite_raccourci_notes($letexte);
// A present on introduit des attributs class_spip* // A present on introduit des attributs class_spip*
...@@ -1372,9 +1391,6 @@ function traiter_raccourcis($letexte) { ...@@ -1372,9 +1391,6 @@ function traiter_raccourcis($letexte) {
// Appeler les fonctions de post-traitement // Appeler les fonctions de post-traitement
$letexte = pipeline('post_propre', $letexte); $letexte = pipeline('post_propre', $letexte);
// old style
if (function_exists('apres_propre'))
$letexte = apres_propre($letexte);
if ($mes_notes) traiter_les_notes($mes_notes); if ($mes_notes) traiter_les_notes($mes_notes);
...@@ -1411,7 +1427,7 @@ function traite_raccourci_notes($letexte) ...@@ -1411,7 +1427,7 @@ function traite_raccourci_notes($letexte)
$num_note = false; $num_note = false;
// note auto ou pas ? // note auto ou pas ?
if (preg_match(",^ *<([^>]*)>,", $note_texte, $regs)){ if (preg_match(",^<([^>]*)>,", $note_texte, $regs)){
$num_note = $regs[1]; $num_note = $regs[1];
$note_texte = str_replace($regs[0], "", $note_texte); $note_texte = str_replace($regs[0], "", $note_texte);
} else { } else {
...@@ -1481,30 +1497,11 @@ function traiter_les_notes($mes_notes) { ...@@ -1481,30 +1497,11 @@ function traiter_les_notes($mes_notes) {
// Filtre a appliquer aux champs du type #TEXTE* // Filtre a appliquer aux champs du type #TEXTE*
// http://doc.spip.org/@propre // http://doc.spip.org/@propre
function propre($letexte) { function propre($t, $connect='') {
if (!$letexte) return $letexte;
// Echapper les <a href>, <html>...< /html>, <code>...< /code>
$letexte = echappe_html($letexte);
// Traiter le texte
$letexte = traiter_raccourcis($letexte);
// Reinserer les echappements
$letexte = echappe_retour($letexte);
// Vider les espaces superflus
$letexte = trim($letexte);
// Dans l'espace prive, securiser ici return !$t ? '' :
if (!_DIR_RESTREINT) echappe_retour_modeles(
$letexte = interdire_scripts($letexte); traiter_raccourcis(
expanser_liens(echappe_html($t),$connect)));
// Reinserer le javascript de confiance (venant des modeles)
if (defined('_PROTEGE_JS_MODELES'))
$letexte = echappe_retour($letexte,"javascript"._PROTEGE_JS_MODELES);
return $letexte;
} }
?> ?>
...@@ -422,7 +422,15 @@ function balise_LANG_dist ($p) { ...@@ -422,7 +422,15 @@ function balise_LANG_dist ($p) {
return $p; return $p;
} }
function balise_CHAPO_dist ($p) {
$_chapo = champ_sql('chapo', $p);
if ((!$p->etoile) OR (strpos($_chapo, '$Pile[$SP') === false))
$p->code = $_chapo;
else
$p->code = "nettoyer_chapo($_chapo)";
$p->interdire_scripts = false;
return $p;
}
// #LESAUTEURS // #LESAUTEURS
// les auteurs d'un article (ou d'un article syndique) // les auteurs d'un article (ou d'un article syndique)
// http://www.spip.net/fr_article902.html // http://www.spip.net/fr_article902.html
......
...@@ -250,6 +250,8 @@ function calculer_boucle_nonrec($id_boucle, &$boucles) { ...@@ -250,6 +250,8 @@ function calculer_boucle_nonrec($id_boucle, &$boucles) {
} else { } else {
$corps = $init . ' $corps = $init . '
$connect = ' .
_q($boucle->sql_serveur) . ';
// RESULTATS // RESULTATS
while ($Pile[$SP] = @sql_fetch($result,"' . while ($Pile[$SP] = @sql_fetch($result,"' .
......
...@@ -352,31 +352,31 @@ function lister_objets_avec_logos ($type) { ...@@ -352,31 +352,31 @@ function lister_objets_avec_logos ($type) {
// fonction appelee par la balise #LOGO_DOCUMENT // fonction appelee par la balise #LOGO_DOCUMENT
// http://doc.spip.org/@calcule_logo_document // http://doc.spip.org/@calcule_logo_document
function calcule_logo_document($id_document, $doubdoc, &$doublons, $flag_fichier, $lien, $align, $params) { function calcule_logo_document($id_document, $doubdoc, &$doublons, $flag_fichier, $lien, $align, $params, $connect='') {
include_spip('inc/documents'); include_spip('inc/documents');
if (!$id_document) return ''; if (!$id_document) return '';
if ($doubdoc) $doublons["documents"] .= ','.$id_document; if ($doubdoc) $doublons["documents"] .= ','.$id_document;
if (!($row = sql_select(array('extension', 'id_vignette', 'fichier', 'mode'), array('spip_documents'), array("id_document = $id_document")))) if (!($row = sql_fetsel(array('extension', 'id_vignette', 'fichier', 'mode'), array('spip_documents'), array("id_document = $id_document"), '','','','','','','',$connect))) {
// pas de document. Ne devrait pas arriver // pas de document. Ne devrait pas arriver
spip_log("Erreur du compilateur doc $id_document inconnu");
return ''; return '';
}
$row = sql_fetch($row);
$extension = $row['extension']; $extension = $row['extension'];
$id_vignette = $row['id_vignette']; $id_vignette = $row['id_vignette'];
$fichier = get_spip_doc($row['fichier']); $fichier = get_spip_doc($row['fichier']);
$mode = $row['mode']; $mode = $row['mode'];
// Y a t il une vignette personnalisee ? // Y a t il une vignette personnalisee ?
// Ca va echouer si c'est en mode distant. A revoir.
if ($id_vignette) { if ($id_vignette) {
if ($res = sql_select(array('fichier'), $vignette = sql_fetsel(array('fichier'),
array('spip_documents'), array('spip_documents'),
array("id_document = $id_vignette"))) { array("id_document = $id_vignette"), '','','','','','','',$connect);
$vignette = sql_fetch($res); if (@file_exists(get_spip_doc($vignette['fichier'])))
if (@file_exists(get_spip_doc($vignette['fichier']))) $logo = generer_url_document($id_vignette);
$logo = generer_url_document($id_vignette);
}
} else if ($mode == 'vignette') { } else if ($mode == 'vignette') {
$logo = generer_url_document($id_document); $logo = generer_url_document($id_document);
if (!@file_exists($logo)) if (!@file_exists($logo))
......
...@@ -272,36 +272,40 @@ $exceptions_des_jointures['petition'] = array('spip_petitions', 'texte'); ...@@ -272,36 +272,40 @@ $exceptions_des_jointures['petition'] = array('spip_petitions', 'texte');
$exceptions_des_jointures['id_signature']= array('spip_signatures', 'id_signature'); $exceptions_des_jointures['id_signature']= array('spip_signatures', 'id_signature');
global $table_des_traitements; global $table_des_traitements;
$table_des_traitements['BIO'][]= 'propre(%s)';
$table_des_traitements['CHAPO'][]= 'propre(nettoyer_chapo(%s))'; define('_TRAITEMENT_TYPO', 'typo(%s, "TYPO", $connect)');
define('_TRAITEMENT_RACCOURCIS', 'propre(%s, $connect)');
$table_des_traitements['BIO'][]= _TRAITEMENT_RACCOURCIS;
$table_des_traitements['CHAPO'][]= _TRAITEMENT_RACCOURCIS;
$table_des_traitements['DATE'][]= 'vider_date(%s)'; $table_des_traitements['DATE'][]= 'vider_date(%s)';
$table_des_traitements['DATE_MODIF'][]= 'vider_date(%s)'; $table_des_traitements['DATE_MODIF'][]= 'vider_date(%s)';
$table_des_traitements['DATE_NOUVEAUTES'][]= 'vider_date(%s)'; $table_des_traitements['DATE_NOUVEAUTES'][]= 'vider_date(%s)';
$table_des_traitements['DATE_REDAC'][]= 'vider_date(%s)'; $table_des_traitements['DATE_REDAC'][]= 'vider_date(%s)';
$table_des_traitements['DESCRIPTIF'][]= 'propre(%s)'; $table_des_traitements['DESCRIPTIF'][]= _TRAITEMENT_RACCOURCIS;
$table_des_traitements['FICHIER']['documents']= 'get_spip_doc(%s)'; $table_des_traitements['FICHIER']['documents']= 'get_spip_doc(%s)';
$table_des_traitements['LIEN_TITRE'][]= 'typo(%s)'; $table_des_traitements['LIEN_TITRE'][]= _TRAITEMENT_TYPO;
$table_des_traitements['LIEN_URL'][]= 'vider_url(%s)'; $table_des_traitements['LIEN_URL'][]= 'vider_url(%s)';
$table_des_traitements['MESSAGE'][]= 'propre(%s)'; $table_des_traitements['MESSAGE'][]= _TRAITEMENT_RACCOURCIS;
$table_des_traitements['NOM_SITE_SPIP'][]= 'typo(%s)'; $table_des_traitements['NOM_SITE_SPIP'][]= _TRAITEMENT_TYPO;
$table_des_traitements['NOM_SITE'][]= '%s'; # construire_titre_lien -> typo $table_des_traitements['NOM_SITE'][]= '%s'; # construire_titre_lien -> typo
$table_des_traitements['NOM'][]= 'typo(%s)'; $table_des_traitements['NOM'][]= _TRAITEMENT_TYPO;
$table_des_traitements['PARAMETRES_FORUM'][]= 'htmlspecialchars(%s)'; $table_des_traitements['PARAMETRES_FORUM'][]= 'htmlspecialchars(%s)';
$table_des_traitements['PS'][]= 'propre(%s)'; $table_des_traitements['PS'][]= _TRAITEMENT_RACCOURCIS;
$table_des_traitements['SOURCE'][]= 'typo(%s)'; $table_des_traitements['SOURCE'][]= _TRAITEMENT_TYPO;
$table_des_traitements['SOUSTITRE'][]= 'typo(%s)'; $table_des_traitements['SOUSTITRE'][]= _TRAITEMENT_TYPO;
$table_des_traitements['SURTITRE'][]= 'typo(%s)'; $table_des_traitements['SURTITRE'][]= _TRAITEMENT_TYPO;
$table_des_traitements['TAGS'][]= '%s'; $table_des_traitements['TAGS'][]= '%s';
$table_des_traitements['TEXTE'][]= 'propre(%s)'; $table_des_traitements['TEXTE'][]= _TRAITEMENT_RACCOURCIS;
$table_des_traitements['TITRE'][]= 'typo(%s)'; $table_des_traitements['TITRE'][]= _TRAITEMENT_TYPO;
$table_des_traitements['TYPE'][]= 'typo(%s)'; $table_des_traitements['TYPE'][]= _TRAITEMENT_TYPO;
$table_des_traitements['URL_ARTICLE'][]= 'vider_url(%s)'; $table_des_traitements['URL_ARTICLE'][]= 'vider_url(%s)';
$table_des_traitements['URL_BREVE'][]= 'vider_url(%s)'; $table_des_traitements['URL_BREVE'][]= 'vider_url(%s)';
$table_des_traitements['URL_DOCUMENT'][]= 'vider_url(%s)'; $table_des_traitements['URL_DOCUMENT'][]= 'vider_url(%s)';
$table_des_traitements['URL_FORUM'][]= 'vider_url(%s)'; $table_des_traitements['URL_FORUM'][]= 'vider_url(%s)';
$table_des_traitements['URL_MOT'][]= 'vider_url(%s)'; $table_des_traitements['URL_MOT'][]= 'vider_url(%s)';
$table_des_traitements['URL_RUBRIQUE'][]= 'vider_url(%s)'; $table_des_traitements['URL_RUBRIQUE'][]= 'vider_url(%s)';
$table_des_traitements['DESCRIPTIF_SITE_SPIP'][]= 'propre(%s)'; $table_des_traitements['DESCRIPTIF_SITE_SPIP'][]= _TRAITEMENT_RACCOURCIS;
$table_des_traitements['URL_SITE'][]= 'calculer_url(%s)'; $table_des_traitements['URL_SITE'][]= 'calculer_url(%s)';
$table_des_traitements['URL_SOURCE'][]= 'vider_url(%s)'; $table_des_traitements['URL_SOURCE'][]= 'vider_url(%s)';
$table_des_traitements['URL_SYNDIC'][]= 'vider_url(%s)'; $table_des_traitements['URL_SYNDIC'][]= 'vider_url(%s)';
...@@ -309,7 +313,7 @@ $table_des_traitements['ENV'][]= 'entites_html(%s,true)'; ...@@ -309,7 +313,7 @@ $table_des_traitements['ENV'][]= 'entites_html(%s,true)';
// Articles syndiques : passage des donnees telles quelles, sans traitement typo // Articles syndiques : passage des donnees telles quelles, sans traitement typo
// A noter, dans applique_filtres la securite et compliance XHTML de ces champs // A noter, dans applique_filtres la securite et conformite XHTML de ces champs
// est assuree par safehtml() // est assuree par safehtml()
foreach(array('TITRE','DESCRIPTIF','SOURCE') as $balise) foreach(array('TITRE','DESCRIPTIF','SOURCE') as $balise)
if (!isset($table_des_traitements[$balise]['syndic_articles'])) if (!isset($table_des_traitements[$balise]['syndic_articles']))
......
...@@ -314,7 +314,7 @@ function balise_distante_interdite($p) { ...@@ -314,7 +314,7 @@ function balise_distante_interdite($p) {
// //
// Traitements standard de divers champs // Traitements standard de divers champs
// definis par $table_des_traitements, cf. inc-compilo-api.php3 // definis par $table_des_traitements, cf. ecrire/public/interfaces
// //
// http://doc.spip.org/@champs_traitements // http://doc.spip.org/@champs_traitements
function champs_traitements ($p) { function champs_traitements ($p) {
...@@ -335,21 +335,15 @@ function champs_traitements ($p) { ...@@ -335,21 +335,15 @@ function champs_traitements ($p) {
if (!$ps) return $p->code; if (!$ps) return $p->code;
// Si une boucle sous-jacente (?) traite les documents, on insere ici // Si une boucle documents est presente dans le squelette,
// une fonction de remplissage du tableau des doublons -- mais seulement // on insere une fonction de remplissage du tableau des doublons
// si on rencontre le filtre propre (qui traite les // dans les filtres propre() ou typo()
// raccourcis <docXX> qui nous interessent) // (qui traitent les raccourcis <docXX> referencant les docs)
if (isset($p->descr['documents']) if (isset($p->descr['documents'])
AND preg_match(',propre,', $ps)) AND ((strpos($ps,'propre') !== false)
OR (strpos($ps,'typo') !== false)))
$ps = 'traiter_doublons_documents($doublons, '.$ps.')'; $ps = 'traiter_doublons_documents($doublons, '.$ps.')';
// De meme, en cas de sql_serveur, on supprime les < IMGnnn > tant
// qu'on ne rapatrie pas les documents distants joints..
// il faudrait aussi corriger les raccourcis d'URL locales
if ($p->id_boucle AND $p->boucles[$p->id_boucle]->sql_serveur)
$p->code = 'supprime_img(' . $p->code . ')';
// Passer |safehtml sur les boucles "sensibles" // Passer |safehtml sur les boucles "sensibles"
// sauf sur les champs dont on est surs // sauf sur les champs dont on est surs
switch ($p->type_requete) { switch ($p->type_requete) {
......
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