/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
- * Copyright (c) 2001-2014 *
+ * Copyright (c) 2001-2017 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
+/**
+ * Chargement (et affichage) d'une page ou d'un appel public
+ *
+ * @package SPIP\Core\Affichage
+ **/
+
// Distinguer une inclusion d'un appel initial
// (cette distinction est obsolete a present, on la garde provisoirement
// par souci de compatiilite).
-if (isset($GLOBALS['_INC_PUBLIC']) AND $GLOBALS['_INC_PUBLIC']) {
+if (isset($GLOBALS['_INC_PUBLIC']) and $GLOBALS['_INC_PUBLIC']) {
echo recuperer_fond($fond, $contexte_inclus, array(), _request('connect'));
} else {
$GLOBALS['_INC_PUBLIC'] = 1;
- define('_PIPELINE_SUFFIX', test_espace_prive()?'_prive':'');
+ define('_PIPELINE_SUFFIX', test_espace_prive() ? '_prive' : '');
// Faut-il initialiser SPIP ? (oui dans le cas general)
- if (!defined('_DIR_RESTREINT_ABS'))
+ if (!defined('_DIR_RESTREINT_ABS')) {
if (defined('_DIR_RESTREINT')
- AND @file_exists(_ROOT_RESTREINT . 'inc_version.php')) {
+ and @file_exists(_ROOT_RESTREINT . 'inc_version.php')
+ ) {
include_once _ROOT_RESTREINT . 'inc_version.php';
- }
- else
+ } else {
die('inc_version absent ?');
-
-
- // $fond defini dans le fichier d'appel ?
-
- else if (isset($fond) AND !_request('fond')) { }
-
- // fond demande dans l'url par page=xxxx ?
- else if (isset($_GET[_SPIP_PAGE])) {
- $fond = (string)$_GET[_SPIP_PAGE];
-
- // Securite
- if (strstr($fond, '/')
- AND !(
- isset($GLOBALS['visiteur_session']) // pour eviter d'evaluer la suite pour les anonymes
- AND include_spip('inc/autoriser')
- AND autoriser('webmestre'))) {
- include_spip('inc/minipres');
- echo minipres();
- exit;
}
- // l'argument Page a priorite sur l'argument action
- // le cas se presente a cause des RewriteRule d'Apache
- // qui permettent d'ajouter un argument dans la QueryString
- // mais pas d'en retirer un en conservant les autres.
- if (isset($_GET['action']) AND $_GET['action'] === $fond)
- unset($_GET['action']);
- # sinon, fond par defaut
- } else {
- // sinon fond par defaut (cf. assembler.php)
- $fond = pipeline('detecter_fond_par_defaut','');
+ } // $fond defini dans le fichier d'appel ?
+
+ else {
+ if (isset($fond) and !_request('fond')) {
+ } // fond demande dans l'url par page=xxxx ?
+ else {
+ if (isset($_GET[_SPIP_PAGE])) {
+ $fond = (string)$_GET[_SPIP_PAGE];
+
+ // Securite
+ if (strstr($fond, '/')
+ and !(
+ isset($GLOBALS['visiteur_session']) // pour eviter d'evaluer la suite pour les anonymes
+ and include_spip('inc/autoriser')
+ and autoriser('webmestre'))
+ ) {
+ include_spip('inc/minipres');
+ echo minipres();
+ exit;
+ }
+ // l'argument Page a priorite sur l'argument action
+ // le cas se presente a cause des RewriteRule d'Apache
+ // qui permettent d'ajouter un argument dans la QueryString
+ // mais pas d'en retirer un en conservant les autres.
+ if (isset($_GET['action']) and $_GET['action'] === $fond) {
+ unset($_GET['action']);
+ }
+ # sinon, fond par defaut
+ } else {
+ // sinon fond par defaut (cf. assembler.php)
+ $fond = pipeline('detecter_fond_par_defaut', '');
+ }
+ }
}
$tableau_des_temps = array();
// Particularites de certains squelettes
- if ($fond == 'login')
+ if ($fond == 'login') {
$forcer_lang = true;
+ }
- if (isset($forcer_lang) AND $forcer_lang AND ($forcer_lang!=='non')
- AND !_request('action')
- AND $_SERVER['REQUEST_METHOD'] != 'POST') {
+ if (isset($forcer_lang) and $forcer_lang and ($forcer_lang !== 'non')
+ and !_request('action')
+ and $_SERVER['REQUEST_METHOD'] != 'POST'
+ ) {
include_spip('inc/lang');
verifier_lang_url();
}
// Charger l'aiguilleur des traitements derogatoires
// (action en base SQL, formulaires CVT, AJax)
- if (_request('action') OR _request('var_ajax') OR _request('formulaire_action')){
+ if (_request('action') or _request('var_ajax') or _request('formulaire_action')) {
include_spip('public/aiguiller');
if (
// cas des appels actions ?action=xxx
traiter_appels_actions()
- OR
+ or
// cas des hits ajax sur les inclusions ajax
traiter_appels_inclusions_ajax()
- OR
+ or
// cas des formulaires charger/verifier/traiter
- traiter_formulaires_dynamiques()){
+ traiter_formulaires_dynamiques()
+ ) {
// lancer les taches sur affichage final, comme le cron
// mais sans rien afficher
$GLOBALS['html'] = false; // ne rien afficher
- pipeline('affichage_final'._PIPELINE_SUFFIX, '');
+ pipeline('affichage_final' . _PIPELINE_SUFFIX, '');
exit; // le hit est fini !
}
}
// Content-Type ?
if (!isset($page['entetes']['Content-Type'])) {
- $page['entetes']['Content-Type'] =
- "text/html; charset=" . $GLOBALS['meta']['charset'];
+ $charset = isset($GLOBALS['meta']['charset']) ? $GLOBALS['meta']['charset'] : "utf-8";
+ $page['entetes']['Content-Type'] = 'text/html; charset=' . $charset;
$html = true;
} else {
- $html = preg_match(',^\s*text/html,',$page['entetes']['Content-Type']);
+ $html = preg_match(',^\s*text/html,', $page['entetes']['Content-Type']);
}
// Tester si on est admin et il y a des choses supplementaires a dire
// type tableau pour y mettre des choses au besoin.
- $debug = ((_request('var_mode') == 'debug') OR $tableau_des_temps) ? array(1) : array();
+ $debug = ((_request('var_mode') == 'debug') or $tableau_des_temps) ? array(1) : array();
- $affiche_boutons_admin = ($html AND (
- (isset($_COOKIE['spip_admin']) AND (!isset($flag_preserver) OR !$flag_preserver))
- OR $debug
- OR (defined('_VAR_PREVIEW') AND _VAR_PREVIEW)
- ));
+ // affiche-t-on les boutons d'administration ? voir f_admin()
+ $affiche_boutons_admin = ($html and (
+ (isset($_COOKIE['spip_admin']) and (!isset($flag_preserver) or !$flag_preserver))
+ or ($debug and include_spip('inc/autoriser') and autoriser('debug'))
+ or (defined('_VAR_PREVIEW') and _VAR_PREVIEW)
+ ));
- if ($affiche_boutons_admin)
+ if ($affiche_boutons_admin) {
include_spip('balise/formulaire_admin');
+ }
// Execution de la page calculee
// traitements sur les entetes avant envoi
// peut servir pour le plugin de stats
- $page['entetes'] = pipeline('affichage_entetes_final'._PIPELINE_SUFFIX, $page['entetes']);
+ $page['entetes'] = pipeline('affichage_entetes_final' . _PIPELINE_SUFFIX, $page['entetes']);
// eval $page et affecte $res
- include _ROOT_RESTREINT."public/evaluer_page.php";
+ include _ROOT_RESTREINT . "public/evaluer_page.php";
envoyer_entetes($page['entetes']);
if ($res === false) {
- $msg = array('zbug_erreur_execution_page');
+ include_spip('inc/autoriser');
+ $err = _T('zbug_erreur_execution_page');
+ if (autoriser('webmestre')) {
+ $err .= "\n<hr />\n"
+ . highlight_string($page['codephp'], true)
+ . "\n<hr />\n";
+ }
+ $msg = array($err);
erreur_squelette($msg);
}
//
// (c'est ici qu'on fait var_recherche, validation, boutons d'admin,
// cf. public/assembler.php)
- echo pipeline('affichage_final'._PIPELINE_SUFFIX, $page['texte']);
+ echo pipeline('affichage_final' . _PIPELINE_SUFFIX, $page['texte']);
- if ($lang) lang_select();
+ if ($lang) {
+ lang_select();
+ }
// l'affichage de la page a pu lever des erreurs (inclusion manquante)
// il faut tester a nouveau
- $debug = ((_request('var_mode') == 'debug') OR $tableau_des_temps) ? array(1) : array();
+ $debug = ((_request('var_mode') == 'debug') or $tableau_des_temps) ? array(1) : array();
// Appel au debusqueur en cas d'erreurs ou de demande de trace
// at last
if ($debug) {
// en cas d'erreur, retester l'affichage
- if ($html AND ($affiche_boutons_admin OR $debug)) {
+ if ($html and ($affiche_boutons_admin or $debug)) {
$var_mode_affiche = _request('var_mode_affiche');
- $GLOBALS['debug_objets'][$var_mode_affiche][$var_mode_objet . 'tout'] = ($var_mode_affiche== 'validation' ? $page['texte'] :"");
+ $var_mode_objet = _request('var_mode_objet');
+ $GLOBALS['debug_objets'][$var_mode_affiche][$var_mode_objet . 'tout'] = ($var_mode_affiche == 'validation' ? $page['texte'] : "");
echo erreur_squelette(false);
}
} else {
if (isset($GLOBALS['meta']['date_prochain_postdate'])
- AND $GLOBALS['meta']['date_prochain_postdate'] <= time()) {
+ and $GLOBALS['meta']['date_prochain_postdate'] <= time()
+ ) {
include_spip('inc/rubriques');
calculer_prochain_postdate(true);
}
// Effectuer une tache de fond ?
// si _DIRECT_CRON_FORCE est present, on force l'appel
- if (defined('_DIRECT_CRON_FORCE'))
+ if (defined('_DIRECT_CRON_FORCE')) {
cron();
+ }
// sauver le cache chemin si necessaire
save_path_cache();
}
}
-
-?>