Subversion Repositories Sites.tela-botanica.org

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
7 david 1
<?php
2
 
3
/***************************************************************************\
4
 *  SPIP, Systeme de publication pour l'internet                           *
5
 *                                                                         *
6
 *  Copyright (c) 2001-2005                                                *
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
// Distinguer une inclusion d'un appel initial
15
if (defined("_INC_PUBLIC")) {
16
	$page = inclure_page($fond, $delais, $contexte_inclus);
17
	if ($page['process_ins'] == 'html')
18
		echo $page['texte'];
19
	else
20
		eval('?' . '>' . $page['texte']);
21
 
22
	if ($page['lang_select'] === true)
23
		lang_dselect();
24
 
25
} else {
26
	define ("_INC_PUBLIC", 1);
27
	if (!function_exists('include_local')) { # cas de page.php3
28
		include ("ecrire/inc_version.php3");
29
	}
30
	include_local('inc-public-global.php3');
31
 
32
	// Calculer la page sans evaluer le php qu'elle contient
33
	$page = calcule_header_et_page ($fond, $delais);
34
 
35
	// Execution de la page calculee
36
 
37
	// 1. Cas d'une page contenant uniquement du HTML :
38
	if ($page['process_ins'] == 'html') {
39
		$page = $page['texte'];
40
	}
41
 
42
	// 2. Cas d'une page contenant du PHP :
43
	// Attention cette partie eval() doit imperativement
44
	// etre declenchee dans l'espace des globales (donc pas
45
	// dans une fonction).
46
	else {
47
		// Une page "normale" va s'afficher ici
48
		if (! ($flag_ob
49
			AND (($var_mode == 'debug')
50
				OR $var_recherche
51
				OR $affiche_boutons_admin
52
				OR $xhtml		))) {
53
			eval('?' . '>' . $page['texte']);
54
			$page = '';
55
		}
56
 
57
		// Certains cas demandent un ob_start() de plus
58
		else {
59
			ob_start();
60
			$res = eval('?' . '>' . $page['texte']);
61
			$page = ob_get_contents();
62
			ob_end_clean();
63
 
64
			// en cas d'erreur lors du eval,
65
			// la memoriser dans le tableau des erreurs
66
			// On ne revient pas ici si le nb d'erreurs > 4
67
			if ($res === false AND $affiche_boutons_admin
68
			AND $auteur_session['statut'] == '0minirezo') {
69
				include_ecrire('inc_debug_sql.php3');
70
				erreur_squelette(_T('zbug_erreur_execution_page'));
71
			}
72
		}
73
	}
74
 
75
	// Passer la main au debuggueur le cas echeant
76
	if ($var_mode == 'debug') {
77
		include_ecrire("inc_debug_sql.php3");
78
		debug_dumpfile($var_mode_affiche== 'validation' ? $page :"",
79
			       $var_mode_objet,$var_mode_affiche);
80
	}
81
	if (count($tableau_des_erreurs) > 0 AND $affiche_boutons_admin)
82
		$page = affiche_erreurs_page($tableau_des_erreurs) . $page;
83
 
84
	// Traiter var_recherche pour surligner les mots
85
	if ($var_recherche) {
86
		include_ecrire("inc_surligne.php3");
87
		$page = surligner_mots($page, $var_recherche);
88
	}
89
 
90
	// Valider/indenter a la demande. garder la compatibilite tidy
91
	if (trim($page) AND $xhtml AND !$flag_preserver AND !headers_sent()) {
92
		if ($xhtml === true) $xhtml = 'tidy';
93
		$file = 'inc_' . $xhtml. ".php";
94
#		spip_log(_DIR_RESTREINT . $file);
95
		if (is_readable(_DIR_RESTREINT . $file)) { include_ecrire($file); }
96
		if (function_exists($xhtml))
97
			$page = $xhtml($page);
98
		else if (function_exists('xhtml'))
99
			$page = xhtml($page);
100
	}
101
 
102
	// Inserer au besoin les boutons admins
103
	if ($affiche_boutons_admin) {
104
		include_local("inc-admin.php3");
105
		$page = affiche_boutons_admin($page);
106
	}
107
 
108
	// Affichage final s'il en reste
109
	echo $page;
110
 
111
	// Taches de fond ?
112
	terminer_public_global();
113
}
114
 
115
?>