*/
$res = true;
// Cas d'une page contenant du PHP :
if (empty($page['process_ins']) or $page['process_ins'] != 'html') {
    include_spip('inc/lang');
    // restaurer l'etat des notes avant calcul
    if (isset($page['notes']) and $page['notes'] and $notes = charger_fonction("notes", "inc", true)) {
        $notes($page['notes'], 'restaurer_etat');
    }
    ob_start();
    if (strpos($page['texte'], '?xml') !== false) {
        $page['texte'] = str_replace('<' . '?xml', "<?xml", $page['texte']);
    }
    $res = eval('?' . '>' . $page['texte']);
    $eval = ob_get_contents();
    ob_end_clean();
    // erreur d'exécution ?
    // enregistrer le code pour afficher zbug_erreur_execution_page
    if (false === $res) {
        $page['codephp'] = $page['texte'];
        $page['texte'] = '<!-- erreur -->';
    } else {
        $page['texte'] = $eval;
    }
    $page['process_ins'] = 'html';
    if (strpos($page['texte'], '?xml') !== false) {
        $page['texte'] = str_replace("<?xml", '<' . '?xml', $page['texte']);
    }
}
page_base_href($page['texte']);
Beispiel #2
0
function evaluer_fond ($fond, $contexte=array(), $connect=null) {

	$page = inclure_page($fond, $contexte, $connect);

	if (!$page) return $page;

	if ($page['process_ins'] != 'html') {
		// restaurer l'etat des notes
		if (isset($page['notes']) AND $page['notes']){
			$notes = charger_fonction("notes","inc");
			$notes($page['notes'],'restaurer_etat');
		}

		ob_start();
		xml_hack($page, true);
		eval('?' . '>' . $page['texte']);
		$page['texte'] = ob_get_contents();
		xml_hack($page);
		$page['process_ins'] = 'html';
		ob_end_clean();
	}
	page_base_href($page['texte']);

	// Lever un drapeau (global) si le fond utilise #SESSION
	// a destination de public/parametrer
	// pour remonter vers les inclusions appelantes
	// il faut bien lever ce drapeau apres avoir evalue le fond
	// pour ne pas faire descendre le flag vers les inclusions appelees
	if (isset($page['invalideurs'])
	AND isset($page['invalideurs']['session']))
		$GLOBALS['cache_utilise_session'] = $page['invalideurs']['session'];

	return $page;
}