diff --git a/ecrire/inc/boutons.php b/ecrire/inc/boutons.php index 0c572c26132f0ce1e58a5117f4d6d996298c2fd2..8603971936b84ed7d2550b3b56ffbab302d4e368 100644 --- a/ecrire/inc/boutons.php +++ b/ecrire/inc/boutons.php @@ -566,14 +566,14 @@ function bandeau_double_rangee($rubrique, $sous_rubrique, $largeur) . "</ul></div>\n" . "</div>" //script to show the submenus in IE6, not supporting :hover on li elements - . "<script type='text/javascript'>\n" - . "var boutons_admin = jQuery('#bandeau-principal li.boutons_admin');\n" + . '<script type="text/javascript"><!--' + . "\nvar boutons_admin = jQuery('#bandeau-principal li.boutons_admin');\n" . "if(jQuery.browser.msie) boutons_admin.hover(\n" . "function(){jQuery(this).addClass('sfhover')},\n" . "function(){jQuery(this).removeClass('sfhover')}\n" . ");\n" . "boutons_admin.one('mouseover',decaleSousMenu);\n" - . "</script>\n"; + . "// --></script>\n"; } diff --git a/ecrire/inc/couleurs.php b/ecrire/inc/couleurs.php index e9dbee142e9944541bddd919c94c5edf3db8a34e..307473366a4df832e1e89412488e4559f989058c 100644 --- a/ecrire/inc/couleurs.php +++ b/ecrire/inc/couleurs.php @@ -108,7 +108,7 @@ onblur="changestyle(\'bandeauinterface\');"'; return '<span id="selecteur_couleur">' . $bloc . "</span>\n" - . "<script type='text/javascript'><!-- + . '<script type="text/javascript"><!--' . " $('#selecteur_couleur a') .click(function(){ $('head>link#cssprivee') diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php index a0e5fd5368640c3d54084a33c4bfc905947da305..0e537599579eebb6095b689349dd1a10781eee23 100644 --- a/ecrire/inc/filtres.php +++ b/ecrire/inc/filtres.php @@ -53,6 +53,30 @@ function filtre_text_csv_dist($t) "|\n"); } +// Incrustation de HTML, si on est capable de le securiser +// sinon, afficher le source +function filtre_text_html_dist($t) +{ + if (!preg_match(',<head>(.*?)</head>.*<body[^>]*>(.*)</body>,is', $t, $r)) + return filtre_text_txt_dist($t); + + list(,$h,$t) = $r; + $style = ''; + // recuperer les styles internes + if (preg_match_all(',<style>([^>]*)</style>,is', $h, $r, PREG_PATTERN_ORDER)) + $style = join("\n",$r[1]); + // ... et externes + if (preg_match_all(',<link[^>]*text/css[^>]*>,is', $h, $r, PREG_PATTERN_ORDER)) + foreach($r[0] as $l) { + preg_match("/href='([^']*)'/", str_replace('"',"'",$l), $m); + $style .= "\n/* $l */\n" + . str_replace('<','',recuperer_page($m[1])); + } + // Pourquoi SafeHtml transforme-t-il en texte les scripts dans Body ? + $t = safehtml(preg_replace(',<script.*?</script>,is','',$t)); + return (!$style ? '' : "\n<style>$style</style>") . $t; +} + // http://doc.spip.org/@filtre_audio_x_pn_realaudio function filtre_audio_x_pn_realaudio($id) { diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php index 61592df71162b23e51f92e7ae89f44b2682f3c5b..d73dd0cab0a59ec83897a3d62ef6f2fc74d24010 100644 --- a/ecrire/inc/presentation.php +++ b/ecrire/inc/presentation.php @@ -787,12 +787,12 @@ function envoi_link($nom_site_spip, $minipres=false) { // CSS de secours en cas de non fonct de la suivante $res = '<link rel="stylesheet" type="text/css" href="' - . find_in_path('style_prive_defaut.css') + . url_absolue(find_in_path('style_prive_defaut.css')) . '" />' . "\n" // CSS calendrier . '<link rel="stylesheet" type="text/css" href="' - . find_in_path('agenda.css') .'" />' . "\n" + . url_absolue(find_in_path('agenda.css')) .'" />' . "\n" // CSS espace prive : la vraie . '<link rel="stylesheet" type="text/css" href="' @@ -804,25 +804,25 @@ function envoi_link($nom_site_spip, $minipres=false) { // CSS imprimante (masque des trucs, a completer) . '<link rel="stylesheet" type="text/css" href="' - . find_in_path('spip_style.css') + . url_absolue(find_in_path('spip_style.css')) . '" media="all" />' . "\n" // CSS imprimante (masque des trucs, a completer) . '<link rel="stylesheet" type="text/css" href="' - . find_in_path('spip_style_print.css') + . url_absolue(find_in_path('spip_style_print.css')) . '" media="print" />' . "\n" // CSS "visible au chargement" differente selon js actif ou non . '<link rel="stylesheet" type="text/css" href="' - . find_in_path('spip_style_' - . (_SPIP_AJAX ? 'invisible' : 'visible') - . '.css') + . url_absolue(find_in_path('spip_style_' + . (_SPIP_AJAX ? 'invisible' : 'visible') + . '.css')) .'" />' . "\n" // CSS optionelle minipres . ($minipres?'<link rel="stylesheet" type="text/css" href="' - . find_in_path('minipres.css').'" />' . "\n":"") + . url_absolue(find_in_path('minipres.css')).'" />' . "\n":"") // favicon.ico . '<link rel="shortcut icon" href="'