6641522bc34733dd118a10230e42d3788dafcea0
[lhc/web/www.git] / www / ecrire / exec / fond.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2017 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
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 \***************************************************************************/
12
13 /**
14 * Gestion d'affichage des pages privées en squelette
15 *
16 * Chargé depuis ecrire/index.php lorsqu'une page demandée est présente
17 * en tant que squelettes dans `prive/squelettes/contenu` ou que le
18 * squelette peut être échaffaudé
19 *
20 * @package SPIP\Core\Exec
21 */
22
23 if (!defined('_ECRIRE_INC_VERSION')) {
24 return;
25 }
26
27
28 $fond = _request('exec');
29 $GLOBALS['delais'] = 0;// pas de cache !
30 // Securite
31 if (strstr($fond, '/')) {
32 if (!include_spip('inc/autoriser')
33 or !autoriser('webmestre')
34 ) {
35 include_spip('inc/minipres');
36 echo minipres();
37 exit;
38 }
39 } else {
40 $fond = "prive/squelettes/$fond";
41 }
42
43 // quelques inclusions et ini prealables
44 include_spip('inc/commencer_page');
45
46 /**
47 * Fonction appelée en cas d'arrêt de php sur une erreur
48 *
49 * @todo supprimer cette fonction vide ?
50 **/
51 function shutdown_error() {
52 // si on arrive ici avec un tampon non ferme : erreur fatale
53 /* if (ob_get_level()){
54 // envoyer tous les tampons
55 while (ob_get_level())
56 ob_end_flush();
57
58 var_dump(error_get_last());
59 #echo "<hr />"."Erreur fatale (memoire ?)<hr />";
60 @flush();
61 }*/
62 }
63
64 register_shutdown_function('shutdown_error');
65
66
67 // on retient l'envoi de html pour pouvoir tout jeter et generer une 403
68 // si on tombe sur un filtre sinon_interdire_acces
69 // il faudrait etre capable de flusher cela des que le contenu principal est genere
70 // car c'est lui qui peut faire des appels a ce filtre
71 ob_start();
72 # comme on est dans un exec, l'auth a deja ete testee
73 # on peut appeler directement public.php
74 include "public.php";
75 // flushons si cela ne l'a pas encore ete
76 ob_end_flush();
77
78 /**
79 * Un exec générique qui branche sur un squelette Z pour écrire
80 *
81 * La fonction ne fait rien, c'est l'inclusion du fichier qui déclenche le traitement
82 */
83 function exec_fond_dist() {
84
85 }