| 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 | 
           ?>
  |