Skip to content
Extraits de code Groupes Projets
Bifurcation depuis spip / spip
20228 validations de retard le dépôt en amont.
inc-public.php3 4,04 Kio
<?php

// Page inclue ?
if (defined("_INC_PUBLIC")) {
	$page = inclure_page($fond, $delais, $contexte_inclus, $fichier_inclus);

	if ($page['process_ins'] == 'html')
		echo $page['texte'];
	else
		eval('?' . '>' . $page['texte']);

	if ($page['lang_select'])
		lang_dselect();
}

// Premier appel inc-public
else {
	define("_INC_PUBLIC", "1");
	include ("ecrire/inc_version.php3");

	//
	// Initialisations
	//

	// Regler le $delais par defaut
	if ($INSECURE['fond'] || $INSECURE['delais'])
		exit;
	if (!isset($delais))
		$delais = 1 * 3600;
	if ($recherche)
		$delais = 0;

	// les meta
	include_ecrire("inc_meta.php3");

	// authentification du visiteur
	if ($HTTP_COOKIE_VARS['spip_session'] OR
	($PHP_AUTH_USER AND !$ignore_auth_http)) {
		include_ecrire ("inc_session.php3");
		verifier_visiteur();
	}

	// multilinguisme
	if ($forcer_lang AND ($forcer_lang!=='non') AND empty($HTTP_POST_VARS)) {
		include_ecrire('inc_lang.php3');
		verifier_lang_url();
	}
	if ($HTTP_GET_VARS['lang']) {
		include_ecrire('inc_lang.php3');
		lang_select($HTTP_GET_VARS['lang']);
	}

	// Ajout_forum (pour les forums) et $val_confirm signalent des modifications
	// a faire avant d'afficher la page
	if ($ajout_forum) {
		$redirect = '';
		include('inc-messforum.php3');
		if ($redirect) {
			@header("Location: $redirect");
			exit();
		}
	}
	if ($val_confirm) {
		// il nous faut id_article ! C'est donc encore a nettoyer...
		include_local('inc-calcul.php3');
		calculer_contexte();
		include_local('inc-formulaires.php3');
		reponse_confirmation($id_article, $val_confirm);
	}
	include_local ('inc-public-global.php3');

	// demande de debug ?
	if ($var_debug AND ($code_activation_debug == $var_debug
		OR $auteur_session['statut'] == '0minirezo'
	)) {
		$recalcul = 'oui';
		$var_debug = true;
		spip_log('debug !');
	} else
		$var_debug = false;

	// Faut-il preparer les boutons d'admin ?
	$affiche_boutons_admin = (!$flag_preserver
		AND ($HTTP_COOKIE_VARS['spip_admin']
			OR $HTTP_COOKIE_VARS['spip_debug']));
	if ($affiche_boutons_admin)
		include_local('inc-admin.php3');

	$tableau_des_erreurs = array();
	$page = afficher_page_globale ($fond, $delais, $use_cache);

	// Interdire au client de cacher un login, un admin ou un recalcul
	if ($flag_dynamique OR ($recalcul == 'oui')
			OR $HTTP_COOKIE_VARS['spip_admin']) {
			@header("Cache-Control: no-cache,must-revalidate");
			@header("Pragma: no-cache");
		// Pour les autres donner l'heure de modif
		} else if ($lastmodified)
			@Header ("Last-Modified: ".http_gmoddate($lastmodified)." GMT");

		@header("Content-Type: text/html; charset=".lire_meta('charset'));

		// Faudra-t-il post-traiter la page ?
		define('spip_active_ob', $flag_ob AND
		($var_debug OR $var_recherche OR $affiche_boutons_admin));

		// Cas d'une page contenant uniquement du HTML :
		if ($page['process_ins'] == 'html') {
			if (!spip_active_ob) {
				echo $page['texte'];
				$contenu = '';
			} else
				$contenu = $page['texte'];
		}

		// Cas d'une page contenant du PHP :
		else {

			// Evaluer la page
			if (!spip_active_ob) {
				eval('?' . '>' . $page['texte']);
				$contenu = '';
			} else {
				ob_start(); 
				$res = eval('?' . '>' . $page['texte']);
				$contenu = ob_get_contents(); 
				ob_end_clean();

				// en cas d'erreur lors du eval, afficher un message
				// et forcer les boutons de debug
				if ($res === false AND $affiche_boutons_admin
				AND $auteur_session['statut'] == '0minirezo')
					erreur_squelette(_L('erreur d\'execution de la page'));
			}


		}

		// Passer la main au debuggueur le cas echeant 
		if ($var_debug) {
			debug_dumpfile('');
			exit;
		} else if (count($tableau_des_erreurs) > 0
		AND $affiche_boutons_admin)
			affiche_erreurs_page ($tableau_des_erreurs);

		// Traiter var_recherche pour surligner les mots
		if ($var_recherche) {
			include_ecrire("inc_surligne.php3");
			$contenu = surligner_mots($contenu, $var_recherche);
		}

		// Ajouter les boutons admins (les normaux)
		if ($affiche_boutons_admin)
			$contenu = calcul_admin_page($use_cache, $contenu);

		echo $contenu;

		terminer_public_global($use_cache, $page['cache']);
}

?>