3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2014 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
13 if (!defined('_ECRIRE_INC_VERSION')) return;
14 include_spip('inc/filtres');
16 // Fichier des filtres d'incrustation d'un document selon son type MIME
17 // Les 7 familles de base ne font rien sauf celle des textes
19 function filtre_image_dist($t) {return '';}
20 function filtre_audio_dist($t) {return '';}
21 function filtre_video_dist($t) {return '';}
22 function filtre_application_dist($t) {return '';}
23 function filtre_message_dist($t) {return '';}
24 function filtre_multipart_dist($t) {return '';}
26 // http://doc.spip.org/@filtre_text_txt_dist
27 function filtre_text_dist($t) {
28 static $t1 = array('&', '<', '>');
29 static $t2 = array('&', '<', '>');
30 return '<pre>' . str_replace($t1, $t2, $t) . '</pre>';
33 // http://doc.spip.org/@filtre_text_csv_dist
34 function filtre_text_csv_dist($t) {
35 include_spip('inc/csv');
36 list($entete, $lignes) = analyse_csv($t);
37 foreach ($lignes as &$l)
39 $corps = join("\n", $lignes) . "\n";
42 join('}}|{{',$entete) .
45 str_replace("\n", "|\n|",$corps);
46 $corps = str_replace('"#','"',$corps);
47 include_spip('inc/texte');
48 return propre($corps);
51 // Incrustation de HTML, si on est capable de le securiser
52 // sinon, afficher le source
53 // http://doc.spip.org/@filtre_text_html_dist
54 function filtre_text_html_dist($t)
56 if (!preg_match(',^(.*?)<body[^>]*>(.*)</body>,is', $t, $r))
57 return appliquer_filtre($t,'text/plain');
62 // recuperer les styles internes
63 if (preg_match_all(',<style>(.*?)</style>,is', $h, $r, PREG_PATTERN_ORDER
))
64 $style = join("\n",$r[1]);
67 include_spip('inc/distant');
68 if (preg_match_all(',<link[^>]+type=.text/css[^>]*>,is', $h, $r, PREG_PATTERN_ORDER
))
69 foreach($r[0] as $l) {
70 preg_match("/href='([^']*)'/", str_replace('"',"'",$l), $m);
71 $style .= "\n/* $l */\n"
72 . str_replace('<','',recuperer_page($m[1]));
74 // Pourquoi SafeHtml transforme-t-il en texte les scripts dans Body ?
75 $t = safehtml(preg_replace(',<script'.'.*?</script>,is','',$t));
76 return (!$style ?
'' : "\n<style>".$style."</style>") . $t;
79 // http://doc.spip.org/@filtre_audio_x_pn_realaudio
80 function filtre_audio_x_pn_realaudio($id)
83 <param name='controls' value='PositionSlider' />
84 <param name='controls' value='ImageWindow' />
85 <param name='controls' value='PlayButton' />
86 <param name='console' value='Console$id' />
87 <param name='nojava' value='true' />";