Newer
Older
//
// Ce fichier ne sera execute qu'une fois
if (defined("_ECRIRE_INC_TEXTE")) return;
define("_ECRIRE_INC_TEXTE", "1");
//
// Initialisation de quelques variables globales
// (on peut les modifier globalement dans mes_fonctions.php3,
// OU individuellement pour chaque type de page dans article.php3,
// rubrique.php3, etc. cf doc...)
// Par securite ne pas accepter les variables passees par l'utilisateur
function tester_variable($nom_var, $val){
OR $_GET[$nom_var] OR $GLOBALS['HTTP_GET_VARS'][$nom_var]
OR $_PUT[$nom_var] OR $GLOBALS['HTTP_PUT_VARS'][$nom_var]
OR $_POST[$nom_var] OR $GLOBALS['HTTP_POST_VARS'][$nom_var]
OR $_COOKIE[$nom_var] OR $GLOBALS['HTTP_COOKIE_VARS'][$nom_var]
OR $_REQUEST[$nom_var]
)
$GLOBALS[$nom_var] = $val;
}
tester_variable('debut_intertitre', "\n <h3 class=\"spip\">\n"); // sale mais historique
tester_variable('fin_intertitre', "\n</h3><br>\n");
tester_variable('ouvre_ref', ' [');
tester_variable('ferme_ref', ']');
tester_variable('ouvre_note', '[');
tester_variable('ferme_note', '] ');
tester_variable('les_notes', '');
tester_variable('compt_note', 0);
tester_variable('nombre_surligne', 4);
if (file_exists("puce.gif")) {
$imgsize = getimagesize('puce.gif');
tester_variable('puce', "<img src='puce.gif' align='top' alt='- ' ".$imgsize[3]." border='0'>");
tester_variable('puce', "-");
}
//
// Variables globales : a virer pour une gestion intelligente de la langue
//
//
// Trouver une locale qui marche
//
$lang2 = strtoupper($GLOBALS['lang']);
setlocale('LC_CTYPE', $GLOBALS['lang']) ||
setlocale('LC_CTYPE', $lang2.'_'.$GLOBALS['lang']) ||
setlocale('LC_CTYPE', $GLOBALS['lang'].'_'.$lang2);
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
//
// Vignette pour les documents lies
//
function vignette_par_defaut($type_extension) {
if ($GLOBALS['flag_ecrire'])
$img = "../IMG/icones";
else
$img = "IMG/icones";
$filename = "$img/$type_extension";
// Glurps !
if (file_exists($filename.'.png')) {
$vig = "$filename.png";
}
else if (file_exists($filename.'.gif')) {
$vig = "$filename.gif";
}
else if (file_exists($filename.'-dist.png')) {
$vig = "$filename-dist.png";
}
else if (file_exists($filename.'-dist.gif')) {
$vig = "$filename-dist.gif";
}
else if (file_exists("$img/defaut.png")) {
$vig = "$img/defaut.png";
}
else if (file_exists("$img/defaut.gif")) {
$vig = "$img/defaut.gif";
}
else if (file_exists("$img/defaut-dist.png")) {
$vig = "$img/defaut-dist.png";
}
else if (file_exists("$img/defaut-dist.gif")) {
$vig = "$img/defaut-dist.gif";
}
if ($size = @getimagesize($vig)) {
$largeur = $size[0];
$hauteur = $size[1];
}
return array($vig, $largeur, $hauteur);
}
// Diverses fonctions essentielles
// ereg_ ou preg_ ?
function ereg_remplace($cherche_tableau, $remplace_tableau, $texte) {
global $flag_preg_replace;
if ($flag_preg_replace) return preg_replace($cherche_tableau, $remplace_tableau, $texte);
$n = count($cherche_tableau);
for ($i = 0; $i < $n; $i++) {
$texte = ereg_replace(substr($cherche_tableau[$i], 1, -1), $remplace_tableau[$i], $texte);
return $texte;
// Ne pas afficher le chapo si article virtuel
function nettoyer_chapo($chapo){
if (substr($chapo,0,1) == "="){
$chapo = "";
}
return $chapo;
}
// Mise de cote des echappements
function echappe_html($letexte,$source) {
//
// Echapper les <code>...</ code>
//
$regexp_echap = "<code>(([^<]|<[^/]|</[^c]|</c[^o]|</co[^d]|</cod[^e]|<\/code[^>])*)<\/code>";
while (eregi($regexp_echap, $letexte, $regs)) {
$num_echap++;
// ne pas mettre le <div...> s'il n'y a qu'une ligne
if (is_int(strpos($lecode,"\n")))
$lecode = nl2br("<div align='left' class='spip_code'>".trim($lecode)."</div>");
$lecode = ereg_replace("\t", " ", $lecode);
$lecode = ereg_replace(" ", " ", $lecode);
$les_echap[$num_echap] = "<tt>".$lecode."</tt>";
$pos = strpos($letexte, $regs[0]);
$letexte = substr($letexte,0,$pos)."___SPIP_$source$num_echap ___"
.substr($letexte,$pos+strlen($regs[0]));
//
// Echapper les <cadre>...</cadre>
//
$regexp_echap = "<cadre>(([^<]|<[^/]|</[^c]|</c[^a]|</ca[^d]|</cad[^r]|</cadr[^e]|<\/cadre[^>])*)<\/cadre>";
while (eregi($regexp_echap, $letexte, $regs)) {
$num_echap++;
$total_lignes = count(explode("\n", $lecode)) + 1;
$les_echap[$num_echap] = "<form><textarea cols='40' rows='$total_lignes' wrap='no' class='spip_cadre'>".$lecode."</textarea></form>";
$pos = strpos($letexte, $regs[0]);
$letexte = substr($letexte,0,$pos)."___SPIP_$source$num_echap ___"
.substr($letexte,$pos+strlen($regs[0]));
//
// Echapper les <html>...</ html>
//
$regexp_echap = "<html>(([^<]|<[^/]|</[^h]|</h[^t]|</ht[^m]|</htm[^l]|<\/html[^>])*)<\/html>";
while (eregi($regexp_echap, $letexte, $regs)) {
$num_echap++;
$les_echap[$num_echap] = $regs[1];
$pos = strpos($letexte, $regs[0]);
$letexte = substr($letexte,0,$pos)."___SPIP_$source$num_echap ___"
.substr($letexte,$pos+strlen($regs[0]));
//
// Echapper les <a href>
//
$regexp_echap = "<a [^>]+>";
while (eregi($regexp_echap, $letexte, $regs)) {
$num_echap++;
$les_echap[$num_echap] = $regs[0];
$pos = strpos($letexte, $les_echap[$num_echap]);
$letexte = substr($letexte,0,$pos)."___SPIP_$source$num_echap ___"
.substr($letexte,$pos+strlen($les_echap[$num_echap]));
return array($letexte, $les_echap);
// Traitement final des echappements
function echappe_retour($letexte, $les_echap, $source) {
while(ereg("___SPIP_$source([0-9]+) ___", $letexte, $match)) {
$lenum = $match[1];
$cherche = $match[0];
$pos = strpos($letexte, $cherche);
$letexte = substr($letexte, 0, $pos). $les_echap[$lenum] . substr($letexte, $pos + strlen($cherche));
function couper($texte, $long) {
$texte2 = substr($texte, 0, $long * 2); /* heuristique pour prendre seulement le necessaire */
if (strlen($texte2) < strlen($texte)) $plus_petit = true;
$texte = ereg_replace("\[([^\[]*)->([^]]*)\]","\\1", $texte2);
// supprimer les notes
$texte = ereg_replace("\[\[([^]]|\][^]])*\]\]", "", $texte);
// supprimer les codes typos
$texte = strtr($texte,"{}"," ");
$texte2 = substr($texte." ", 0, $long);
$texte2 = ereg_replace("([^[:space:]][[:space:]]+)[^[:space:]]*$", "\\1", $texte2);
if ((strlen($texte2) + 3) < strlen($texte)) $plus_petit = true;
if ($plus_petit) $texte2 .= ' (...)';
return $texte2;
// prendre <intro>...</intro> sinon couper a la longueur demandee
function couper_intro($texte, $long) {
$texte = eregi_replace("(</?)intro>", "\\1intro>", $texte); // minuscules
while ($fin = strpos($texte, "</intro>")) {
$zone = substr($texte, 0, $fin);
$texte = substr($texte, $fin + strlen("</intro>"));
if ($deb = strpos($zone, "<intro>") OR substr($zone, 0, 7) == "<intro>")
$zone = substr($zone, $deb + 7);
$intro .= $zone;
}
if ($intro)
$intro = $intro.' (...)';
else
$intro = couper($texte, $long);
// supprimer un eventuel chapo redirecteur =http:/.....
$intro = ereg_replace("^=http://[^[:space:]]+","",$intro);
return $intro;
}
// Les elements de propre()
// Securite : empecher l'execution de code PHP
function interdire_scripts($source) {
$source = eregi_replace("<(\%|\?|([[:space:]]*)script)", "<\\1", $source);
return $source;
Antoine Pitrou
a validé
// Correction typographique francaise
function typo_fr($letexte) {
global $flag_preg_replace;
global $flag_str_replace;
// les "blancs durs" et les guillemets
if ($flag_str_replace){
$letexte = str_replace(" ","~",strtr($letexte,chr(160),"~"));
$letexte = str_replace("»",chr(187),$letexte);
$letexte = str_replace("»", chr(187),$letexte);
$letexte = str_replace("«",chr(171),$letexte);
$letexte = str_replace("«", chr(171),$letexte);
}
else {
$letexte = ereg_replace(" ","~",strtr($letexte,chr(160),"~"));
$letexte = ereg_replace("&(raquo|#187);",chr(187), $letexte);
$letexte = ereg_replace("&(laquo|#171);",chr(171), $letexte);
}
$cherche1 = array(
/* 2 */ '/((^|[^\#0-9a-zA-Z\&])[\#0-9a-zA-Z]*)\;/',
/* 3 */ '/([:!?'.chr(187).']| -,)/',
/* 4 */ '/('.chr(171).'|(M(M?\.|mes?|r\.?)|[MnN]'.chr(176).') )/'
);
$remplace1 = array(
/* 2 */ '\1~;',
/* 3 */ '~\1',
);
$letexte = ereg_remplace($cherche1, $remplace1, $letexte);
$letexte = ereg_replace(" *~+ *", "~", $letexte);
$cherche2 = array(
'/(http|ftp|mailto)~:/',
'/~/'
);
$remplace2 = array(
'\1:',
' '
);
$letexte = ereg_remplace($cherche2, $remplace2, $letexte);
return ($letexte);
}
// Typographie generale : francaise sinon rien (pour l'instant)
function typo($letexte) {
global $lang;
list($letexte, $les_echap) = echappe_html($letexte, "SOURCETYPO");
if ($lang == 'fr')
$letexte = typo_fr($letexte);
$letexte = corriger_caracteres($letexte);
$letexte = echappe_retour($letexte, $les_echap, "SOURCETYPO");
return $letexte;
}
// cette fonction est tordue : on lui passe un tableau correspondant au match
// de la regexp ci-dessous, et elle retourne le texte a inserer a la place
// et le lien "brut" a usage eventuel de redirection...
function extraire_lien ($regs) {
if (file_exists('inc-urls.php3')) {
include_local('inc-urls.php3');
} elseif (file_exists('inc-urls-dist.php3')) {
include_local('inc-urls-dist.php3');
} else {
include_ecrire('inc_urls.php3');
$lien_texte = $regs[1];
$ouvrant = ($regs[2] == '>');
$lien_url = trim($regs[3]);
$compt_liens++;
$lien_interne = false;
if (ereg('^(art(icle)?|rub(rique)?|br(.ve)?|aut(eur)?|mot|site)? *([[:digit:]]+)$', $lien_url, $match)) {
// Traitement des liens internes
$id_lien = $match[6];
$type_lien = $match[1];
$lien_interne=true;
$class_lien = "in";
switch (substr($type_lien, 0, 2)) {
case 'ru':
$lien_url = generer_url_rubrique($id_lien);
if (!$lien_texte) {
$req = "select titre from spip_rubriques where id_rubrique=$id_lien";
$row = @spip_fetch_array(@spip_query($req));
$lien_texte = $row['titre'];
}
break;
case 'br':
$lien_url = generer_url_breve($id_lien);
if (!$lien_texte) {
$req = "select titre from spip_breves where id_breve=$id_lien";
$row = @spip_fetch_array(@spip_query($req));
$lien_texte = $row['titre'];
}
break;
case 'au':
$lien_url = generer_url_auteur($id_lien);
if (!$lien_texte) {
$req = "select nom from spip_auteurs where id_auteur = $id_lien";
$row = @spip_fetch_array(@spip_query($req));
$lien_texte = $row['nom'];
}
break;
case 'mo':
$lien_url = generer_url_mot($id_lien);
if (!$lien_texte) {
$req = "select titre from spip_mots where id_mot=$id_lien";
$row = @spip_fetch_array(@spip_query($req));
$row = @spip_fetch_array(@spip_query("SELECT nom_site,url_site FROM spip_syndic WHERE id_syndic=$id_lien"));
if ($row) {
$lien_url = $row['url_site'];
if (!$lien_texte)
$lien_texte = typo($row['nom_site']);
}
break;
default:
$lien_url = generer_url_article($id_lien);
if (!$lien_texte) {
$req = "select titre from spip_articles where id_article=$id_lien";
$row = @spip_fetch_array(@spip_query($req));
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
$lien_texte = $row['titre'];
}
break;
}
} else { // lien non automatique
$class_lien = "out";
// texte vide ?
if ((!$lien_texte) and (!$lien_interne)) {
$lien_texte = ereg_replace('"', '', $lien_url);
if (strlen($lien_texte)>40)
$lien_texte = substr($lien_texte,0,35).'...';
$class_lien = "url";
}
// petites corrections d'URL
if (ereg("^www\.[^@]+$",$lien_url))
$lien_url = "http://".$lien_url;
else if (email_valide($lien_url))
$lien_url = "mailto:".trim($lien_url);
}
$insert = "<a href=\"$lien_url\" class=\"spip_$class_lien\""
.($ouvrant ? " target='_blank'" : '')
.">".typo($lien_texte)."</a>";
return array($insert, $lien_url);
}
// Traitement des listes (merci a Michael Parienti)
//
function traiter_listes ($texte) {
$parags = split ("\n[[:space:]]*\n", $texte);
unset($texte);
// chaque paragraphe est traite a part
while (list(,$para) = each($parags)) {
$niveau = 0;
$lignes = explode("\n-", "\n" . $para);
// ne pas toucher a la premiere ligne
list(,$debut) = each($lignes);
$texte .= $debut;
// chaque item a sa profondeur = nb d'etoiles
unset ($type);
while (list(,$item) = each($lignes)) {
$profond = strlen($regs[1]);
if ($profond > 0) {
unset ($ajout);
// changement de type de liste au meme niveau : il faut
// descendre un niveau plus bas, fermer ce niveau, et
// remonter
$nouv_type = (substr($item,0,1) == '*') ? 'ul' : 'ol';
$change_type = ($type AND ($type <> $nouv_type) AND ($profond == $niveau)) ? 1 : 0;
$type = $nouv_type;
// d'abord traiter les descentes
while ($niveau > $profond - $change_type) {
$ajout .= $pile_li[$niveau];
$ajout .= $pile_type[$niveau];
// puis les identites (y compris en fin de descente)
if ($niveau == $profond && !$change_type) {
}
// puis les montees (y compris apres une descente un cran trop bas)
while ($niveau < $profond) {
$niveau ++;
$ajout .= "<$type class=\"spip\">";
$pile_type[$niveau] = "</$type>";
}
$ajout .= "<li class=\"spip\">";
$pile_li[$profond] = "</li>";
Fil
a validé
$ajout = "\n-"; // puce normale ou <hr>
Fil
a validé
$texte .= $ajout . $regs[2];
}
// retour sur terre
unset ($ajout);
while ($niveau > 0) {
$ajout .= $pile_li[$niveau];
$ajout .= $pile_type[$niveau];
$niveau --;
}
$texte .= $ajout;
// paragraphe
$texte .= "\n\n";
}
// sucrer les deux derniers \n
return substr($texte, 0, -2);
}
// Nettoie un texte, traite les raccourcis spip, la typo, etc.
function traiter_raccourcis($letexte, $les_echap = false, $traiter_les_notes = 'oui') {
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
global $puce;
global $debut_intertitre, $fin_intertitre;
global $compt_note;
global $les_notes;
global $ouvre_ref;
global $ferme_ref;
global $ouvre_note;
global $ferme_note;
global $flag_strpos_3, $flag_preg_replace, $flag_str_replace;
// Harmoniser les retours chariot
$letexte = ereg_replace ("\r\n?", "\n",$letexte);
// echapper les <a href>, <html>...< /html>, <code>...< /code>
if (!$les_echap)
list($letexte, $les_echap) = echappe_html($letexte, "SOURCEPROPRE");
// Corriger HTML
$letexte = eregi_replace("</?p>","\n\n\n",$letexte);
//
// Notes de bas de page
//
$regexp = "\[\[(([^]]|[^]]\][^]])*)\]\]";
/* signifie : deux crochets ouvrants, puis pas-crochet-fermant ou
crochet-fermant entoure de pas-crochets-fermants (c'est-a-dire
tout sauf deux crochets fermants), puis deux fermants */
while (ereg($regexp, $letexte, $regs)){
$note_texte = $regs[1];
$num_note = false;
// note auto ou pas ?
if (ereg("^ *<([^>]*)>",$note_texte,$regs)){
$num_note=$regs[1];
$note_texte = ereg_replace ("^ *<([^>]*)>","",$note_texte);
$insert = "$ouvre_ref<a href='#nb$num_note' name='nh$num_note' class='spip_note'>$num_note</a>$ferme_ref";
$appel = "<html>$ouvre_note<a href='#nh$num_note' name='nb$num_note' class='spip_note'>$num_note</a>$ferme_note</html>";
// l'ajouter "brut" dans les notes
if ($note_texte) {
if ($mes_notes)
$mes_notes .= "\n\n";
$mes_notes .= $appel . $note_texte;
}
// dans le texte, mettre l'appel de note a la place de la note
$letexte = implode($insert, split($regexp, $letexte, 2));
}
//
$regexp = "\[([^][]*)->(>?)([^]]*)\]";
$texte_a_voir = $letexte;
$texte_vu = '';
while (ereg($regexp, $texte_a_voir, $regs)){
$zetexte = split($regexp,$texte_a_voir,2);
// typo en-dehors des notes
$texte_vu .= typo($zetexte[0]).$insert;
$texte_a_voir = $zetexte[1];
}
$letexte = $texte_vu.typo($texte_a_voir); // typo de la queue du texte
//
// Insertion d'images et de documents utilisateur
while (eregi("<(IMG|DOC|EMB)([0-9]+)(\|([^\>]*))?".">", $letexte, $match)) {
include_ecrire("inc_documents.php3");
$letout = quotemeta($match[0]);
$letout = ereg_replace("\|", "\|", $letout);
$id_document = $match[2];
$rempl = embed_document($id_document, $align);
else
$rempl = integre_image($id_document, $align, $match[1]);
$letexte = ereg_replace($letout, $rempl, $letexte);
}
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
//
// Tableaux
//
$letexte = ereg_replace("^\n?\|", "\n\n|", $letexte);
$letexte = ereg_replace("\|\n?$", "|\n\n", $letexte);
$tableBeginPos = strpos($letexte, "\n\n|");
$tableEndPos = strpos($letexte, "|\n\n");
while (is_integer($tableBeginPos) && is_integer($tableEndPos) && $tableBeginPos < $tableEndPos + 3) {
$textBegin = substr($letexte, 0, $tableBeginPos);
$textTable = substr($letexte, $tableBeginPos + 2, $tableEndPos - $tableBeginPos);
$textEnd = substr($letexte, $tableEndPos + 3);
$newTextTable = "\n<p><table class=\"spip\">";
$rowId = 0;
$lineEnd = strpos($textTable, "|\n");
while (is_integer($lineEnd)) {
$rowId++;
$row = substr($textTable, 0, $lineEnd);
$textTable = substr($textTable, $lineEnd + 2);
if ($rowId == 1 && ereg("^(\\|[[:space:]]*\\{\\{[^}]+\\}\\}[[:space:]]*)+$", $row)) {
$newTextTable .= '<tr class="row_first">';
} else {
$newTextTable .= '<tr class="row_'.($rowId % 2 ? 'odd' : 'even').'">';
}
$newTextTable .= ereg_replace("\|([^\|]+)", "<td>\\1</td>", $row);
$newTextTable .= '</tr>';
$lineEnd = strpos($textTable, "|\n");
}
$newTextTable .= "</table>\n<p>\n";
$letexte = $textBegin . $newTextTable . $textEnd;
$tableBeginPos = strpos($letexte, "\n\n|");
$tableEndPos = strpos($letexte, "|\n\n");
}
//
// Ensemble de remplacements implementant le systeme de mise
// en forme (paragraphes, raccourcis...)
//
// ATTENTION : si vous modifiez cette partie, modifiez les DEUX
// branches de l'alternative (if (flag_str_replace).../else).
// les listes
if (ereg("\n-[*#]", "\n".$letexte))
$letexte = traiter_listes($letexte);
// autres raccourcis
Fil
a validé
$letexte = ereg_replace("\n(-{4,}|_{4,})", "\n<hr class=\"spip\">\n", $letexte);
$letexte = ereg_replace("^- *", "$puce ", $letexte);
$letexte = ereg_replace("\n- *", "\n<br>$puce ",$letexte);
$letexte = ereg_replace("\n_ +", "\n<br>",$letexte);
$letexte = ereg_replace("(( *)\n){2,}", "\n<p>", $letexte);
$letexte = str_replace("{{{", $debut_intertitre, $letexte);
$letexte = str_replace("}}}", $fin_intertitre, $letexte);
$letexte = str_replace("{{", "<b class=\"spip\">", $letexte);
$letexte = str_replace("}}", "</b>", $letexte);
$letexte = str_replace("{", "<i class=\"spip\">", $letexte);
$letexte = str_replace("}", "</i>", $letexte);
$letexte = eregi_replace("(<br>)+(<p>|<br>)", "\n<p class=\"spip\">", $letexte);
$letexte = str_replace("<p>", "<p class=\"spip\">", $letexte);
$letexte = str_replace("\n", " ", $letexte);
Fil
a validé
/* 0 */ "/\n(----+|____+)/",
/* 1 */ "/^- */",
/* 2 */ "/\n- */",
/* 3 */ "/\n_ +/",
/* 4 */ "/(( *)\n){2,}/",
/* 5 */ "/\{\{\{/",
/* 6 */ "/\}\}\}/",
/* 7 */ "/\{\{/",
/* 8 */ "/\}\}/",
/* 9 */ "/\{/",
/* 10 */ "/\}/",
/* 11 */ "/(<br>){2,}/",
/* 12 */ "/<p>([\n]*)(<br>)+/",
/* 13 */ "/<p>/",
/* 14 */ "/\n/"
Fil
a validé
/* 0 */ "\n<hr class=\"spip\">\n",
/* 1 */ "$puce ",
/* 2 */ "\n<br>$puce ",
/* 4 */ "\n<p>",
/* 5 */ "$debut_intertitre",
/* 6 */ "$fin_intertitre",
/* 7 */ "<b class=\"spip\">",
/* 8 */ "</b>",
/* 9 */ "<i class=\"spip\">",
/* 10 */ "</i>",
/* 11 */ "\n<p class=\"spip\">",
/* 12 */ "\n<p class=\"spip\">",
/* 13 */ "<p class=\"spip\">",
/* 14 */ " "
);
$letexte = ereg_remplace($cherche1, $remplace1, $letexte);
}
if (ereg('<p class="spip">',$letexte)){
$letexte = '<p class="spip">'.ereg_replace('<p class="spip">', "</p>\n".'<p class="spip">',$letexte).'</p>';
}
// Reinserer les echappements
$letexte = echappe_retour($letexte, $les_echap, "SOURCEPROPRE");
$fin_notes = '';
// "paragrapher" les anciennes notes
if ($les_notes) {
if (!ereg('<p class="spip_note">', $les_notes)) {
$les_notes = '<p class="spip_note">' . $les_notes . '</p>';
}
$les_notes .= "\n".'<p class="spip_note">';
$fin_notes = '</p>';
}
// "paragrapher" les nouvelles notes
$mes_notes = traiter_raccourcis($mes_notes, $les_echap, 'non');
if (ereg('<p class="spip">', $mes_notes)) {
$mes_notes = ereg_replace('^<p class="spip">', '', $mes_notes);
$mes_notes = ereg_replace('</p>$', '', $mes_notes);
$mes_notes = ereg_replace('<p class="spip">', '<p class="spip_note">', $mes_notes);
$fin_notes = '</p>';
}
// nettoyer
$mes_notes = echappe_retour($mes_notes, $les_echap, "SOURCEPROPRE");
// ajouter
$les_notes .= interdire_scripts($mes_notes) . $fin_notes;
// Filtre a appliquer aux champs du type #TEXTE*
function propre($letexte) {
return interdire_scripts(traiter_raccourcis(trim($letexte)));
}
?>