3 * Gestion de l'action porte_plume_previsu
5 * @plugin Porte Plume pour SPIP
7 * @package SPIP\PortePlume\Actions
10 if (!defined("_ECRIRE_INC_VERSION")) return;
13 * Action affichant la prévisualisation de porte plume
15 * Pas besoin de sécuriser outre mesure ici, on ne réalise donc qu'un
18 * On passe par cette action pour éviter les redirection et la perte du $_POST de
20 * cf : ecrire/public.php ligne 80
22 function action_porte_plume_previsu_dist() {
24 // $_POST a ete sanitise par SPIP
25 // et le fond injecte des interdire_scripts pour empecher les injections PHP
26 // le js est bloque ou non selon les reglages de SPIP et si on est ou non dans l'espace prive
29 // mais il faut avoir le droit de previsualiser
30 // (par defaut le droit d'aller dans ecrire/)
31 if (!autoriser('previsualiser','porteplume'))
34 header('Content-type: text/html; charset='.pp_charset());
35 echo recuperer_fond('prive/porte_plume_preview', $contexte);
39 * Retourner le charset SQL
41 * Retourne le charset SQL si on le connait, en priorité
42 * sinon, on utilise le charset de l'affichage HTML.
44 * Cependant, on peut forcer un charset donné avec une constante :
45 * define('PORTE_PLUME_PREVIEW_CHARSET','utf-8');
47 * @return string Nom du charset (ex: 'utf-8')
49 function pp_charset() {
50 if (defined('PORTE_PLUME_PREVIEW_CHARSET')) {
51 return PORTE_PLUME_PREVIEW_CHARSET
;
54 $charset = $GLOBALS['meta']['charset'];
55 $charset_sql = isset($GLOBALS['charset_sql_base']) ?
$GLOBALS['charset_sql_base'] : '';
56 if ($charset_sql == 'utf8') {
57 $charset_sql = 'utf-8';
59 return $charset_sql ?
$charset_sql : $charset;