redirection else { if (_FILE_CONNECT and !in_array(_request('action'),array('logout')) and !in_array(_request('exec'),array('install', 'mutualisation')) ){ if (!autoriser('travaux')){ spip_initialisation_suite(); // si on est loge : die() avec travaux if (isset($GLOBALS['visiteur_session']['id_auteur']) AND $GLOBALS['visiteur_session']['id_auteur'] != ''){ $travaux = recuperer_fond("inclure/entravaux",array()); // fallback : le fond renvoie parfois du vide ... if (!strlen($travaux)){ @define('_SPIP_SCRIPT','spip.php'); echo "Acces interdit (en travaux) Deconnexion"; } else echo $travaux; die(); } // sinon retour sur login_sos else { $redirect = parametre_url(generer_url_public('login_sos'),'url',self(),'&'); include_spip('inc/headers'); redirige_par_entete($redirect); } } } } } /** * Pipeline styliser pour rerouter tous les fonds vers en_travaux * sauf si l'auteur connecte est celui qui a active le plugin * * @param array $flux * @return array */ function entravaux_styliser($flux){ if (is_entravaux()){ include_spip('inc/autoriser'); // les pages exceptions $pages_ok = array('login_sos','robots.txt','spip_pass','favicon.ico','informer_auteur'); // des squelettes autorisés configurables via mes_options if (defined('_SKEL_HORS_TRAVAUX')) $skels_ok = explode(',',_SKEL_HORS_TRAVAUX); else $skels_ok = array(); if (!autoriser('travaux') AND !in_array($flux['args']['fond'], $pages_ok) AND !in_array($flux['args']['fond'], $skels_ok) AND !(isset($flux['args']['contexte'][_SPIP_PAGE]) and in_array($flux['args']['contexte'][_SPIP_PAGE], $pages_ok)) AND !((_request('var_mode') === 'preview') AND (_request('var_previewtoken') != '') AND autoriser('previsualiser')) // et on laisse passer modeles et formulaires, // qui ne peuvent etre inclus ou appeles que legitimement AND strpos($flux['args']['fond'],'/')===false){ $fond = trouver_fond('inclure/entravaux','',true); $flux['data'] = $fond['fond']; } } return $flux; } /** * Afficher une icone de travaux sur tout le site public pour que le webmestre n'oublie pas * de retablir le site * * @param string $flux * @return string */ function entravaux_affichage_final($flux){ if (is_entravaux() AND !test_espace_prive() AND $GLOBALS['html'] AND !_AJAX){ include_spip('inc/filtres'); // pour http_img_pack $x = '
' . http_img_pack(chemin_image('entravaux-64.png'), _T('entravaux:en_travaux'), '', _T('entravaux:en_travaux')) . '
'; if (!$pos = strpos($flux, '')) $pos = strlen($flux); $flux = substr_replace($flux, $x, $pos, 0); } return $flux; } /** * Afficher une notice sur l'accueil de ecrire * @param array $flux * @return array */ function entravaux_affiche_milieu($flux){ if (is_entravaux()){ if ($flux['args']['exec']=='accueil'){ $notice = recuperer_fond('inclure/entravaux_notice_ecrire',array()); if (strlen(trim($notice))) $flux['data'] = $notice . $flux['data']; } } if ($flux['args']['exec']=='configurer_identite'){ $flux['data'] .= recuperer_fond('prive/squelettes/contenu/configurer_entravaux',array()); } return $flux; }