3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2012 *
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;
16 * Evaluer la page produite par un squelette
18 * Évalue une page pour la transformer en texte statique
19 * Elle peut contenir un < ?xml a securiser avant eval
20 * ou du php d'origine inconnue
22 * Attention cette partie eval() doit impérativement
23 * être déclenchée dans l'espace des globales (donc pas
31 // Cas d'une page contenant du PHP :
32 if ($page['process_ins'] != 'html') {
35 * Teste si on a déjà évalué du PHP
37 * Inclure inc/lang la première fois pour définir spip_lang
38 * si ça n'a pas encore été fait.
40 if (!defined('_EVALUER_PAGE_PHP')) {
41 define('_EVALUER_PAGE_PHP', true);
42 include_spip('inc/lang');
45 // restaurer l'etat des notes avant calcul
46 if (isset($page['notes'])
48 AND $notes = charger_fonction("notes","inc",true)){
49 $notes($page['notes'],'restaurer_etat');
52 if (strpos($page['texte'],'?xml')!==false)
53 $page['texte'] = str_replace('<'.'?xml', "<\1?xml", $page['texte']);
55 $res = eval('?' . '>' . $page['texte']);
56 $page['texte'] = ob_get_contents();
59 $page['process_ins'] = 'html';
61 if (strpos($page['texte'],'?xml')!==false)
62 $page['texte'] = str_replace("<\1?xml", '<'.'?xml', $page['texte']);
65 page_base_href($page['texte']);