Skip to content
Extraits de code Groupes Projets
Valider cd2703df rédigé par Fil's avatar Fil
Parcourir les fichiers

point d'entree pour les echappements (permettre a toggg de faire ressusciter le plugin geshi)

parent 14e37885
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -111,6 +111,54 @@ function code_echappement($rempl, $source='') { ...@@ -111,6 +111,54 @@ function code_echappement($rempl, $source='') {
."</$mode>$nn"; ."</$mode>$nn";
} }
// Echapper les <html>...</ html>
function traiter_echap_html_dist($regs) {
return $regs[3];
}
// Echapper les <code>...</ code>
function traiter_echap_code_dist($regs) {
$echap = entites_html($regs[3]);
// supprimer les sauts de ligne debut/fin
// (mais pas les espaces => ascii art).
$echap = ereg_replace("^\n+|\n+$", "", $echap);
// ne pas mettre le <div...> s'il n'y a qu'une ligne
if (is_int(strpos($echap,"\n"))) {
$echap = nl2br("<div style='text-align: left;' "
. "class='spip_code' dir='ltr'><code>"
.$echap."</code></div>");
$mode = 'div';
} else
$echap = "<code class='spip_code' "
."dir='ltr'>".$echap."</code>";
$echap = str_replace("\t",
"&nbsp; &nbsp; &nbsp; &nbsp; ", $echap);
$echap = str_replace(" ", " &nbsp;", $echap);
return $echap;
}
// Echapper les <cadre>...</ cadre> aka <frame>...</ frame>
function traiter_echap_cadre_dist($regs) {
$echap = trim(entites_html($regs[3]));
$total_lignes = substr_count($echap, "\n") + 1;
$echap = "<form action=\"/\" method=\"get\"><div>"
."<textarea readonly='readonly' cols='40' rows='$total_lignes' "
."class='spip_cadre' dir='ltr'>"
.$echap
."</textarea></div></form>";
return $echap;
}
function traiter_echap_frame_dist($regs) {
return traiter_echap_cadre_dist($regs);
}
function traiter_echap_script_dist($regs) {
return $regs[0];
}
// - pour $source voir commentaire infra (echappe_retour) // - pour $source voir commentaire infra (echappe_retour)
// - pour $no_transform voir le filtre post_autobr dans inc_filtres.php3 // - pour $no_transform voir le filtre post_autobr dans inc_filtres.php3
// http://doc.spip.org/@echappe_html // http://doc.spip.org/@echappe_html
...@@ -136,52 +184,10 @@ $preg='') { ...@@ -136,52 +184,10 @@ $preg='') {
} }
// sinon les traiter selon le cas // sinon les traiter selon le cas
else switch(strtolower($regs[1])) { else if (function_exists($f = 'traiter_echap_'.strtolower($regs[1])))
$echap = $f($regs);
// Echapper les <html>...</ html> else if (function_exists($f = $f.'_dist'))
case 'html': $echap = $f($regs);
$echap = $regs[3];
break;
// Echapper les <code>...</ code>
case 'code':
$echap = entites_html($regs[3]);
// supprimer les sauts de ligne debut/fin
// (mais pas les espaces => ascii art).
$echap = ereg_replace("^\n+|\n+$", "", $echap);
// ne pas mettre le <div...> s'il n'y a qu'une ligne
if (is_int(strpos($echap,"\n"))) {
$echap = nl2br("<div style='text-align: left;' "
. "class='spip_code' dir='ltr'><code>"
.$echap."</code></div>");
$mode = 'div';
} else
$echap = "<code class='spip_code' "
."dir='ltr'>".$echap."</code>";
$echap = str_replace("\t",
"&nbsp; &nbsp; &nbsp; &nbsp; ", $echap);
$echap = str_replace(" ", " &nbsp;", $echap);
break;
// Echapper les <cadre>...</ cadre>
case 'cadre':
case 'frame':
$echap = trim(entites_html($regs[3]));
$total_lignes = substr_count($echap, "\n") + 1;
$echap = "<form action=\"/\" method=\"get\"><div>"
."<textarea readonly='readonly' cols='40' rows='$total_lignes' "
."class='spip_cadre' dir='ltr'>"
.$echap
."</textarea></div></form>";
break;
case 'script':
$echap = $regs[0];
break;
}
$letexte = str_replace($regs[0], $letexte = str_replace($regs[0],
code_echappement($echap, $source), code_echappement($echap, $source),
......
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