X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fecrire%2Finc%2Fminipres.php;fp=www%2Fecrire%2Finc%2Fminipres.php;h=29ac1130cb2961f3588dbd8e9ef920db0d4cc17b;hb=4f443dce95ff6f8221c189880a70c74ce1c1f238;hp=63249d5bb3dc13634d0606dfb0e448a25d5fc963;hpb=4a628e9b277d3617535f99d663ca79fa2e891177;p=lhc%2Fweb%2Fwww.git diff --git a/www/ecrire/inc/minipres.php b/www/ecrire/inc/minipres.php index 63249d5b..29ac1130 100644 --- a/www/ecrire/inc/minipres.php +++ b/www/ecrire/inc/minipres.php @@ -3,147 +3,214 @@ /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * - * Copyright (c) 2001-2016 * + * 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. * \***************************************************************************/ -if (!defined('_ECRIRE_INC_VERSION')) return; +/** + * Présentation des pages d'installation et d'erreurs + * + * @package SPIP\Core\Minipres + **/ +if (!defined('_ECRIRE_INC_VERSION')) { + return; +} include_spip('inc/headers'); include_spip('inc/texte'); //inclue inc/lang et inc/filtres -// -// Presentation des pages d'installation et d'erreurs -// /** - * http://doc.spip.org/@install_debut_html + * Retourne le début d'une page HTML minimale (de type installation ou erreur) + * + * Le contenu de CSS minimales (reset.css, clear.css, minipres.css) est inséré + * dans une balise script inline (compactée si possible) + * + * @uses utiliser_langue_visiteur() + * @uses http_no_cache() + * @uses html_lang_attributes() + * @uses compacte() si le plugin compresseur est présent + * @uses url_absolue_css() * * @param string $titre + * Titre. `AUTO`, indique que l'on est dans le processus d'installation de SPIP * @param string $onLoad + * Attributs pour la balise `` * @param bool $all_inline - * inliner les css et js dans la page (limiter le nombre de hits) + * Inliner les css et js dans la page (limiter le nombre de hits) * @return string + * Code HTML */ function install_debut_html($titre = 'AUTO', $onLoad = '', $all_inline = false) { - global $spip_lang_right,$spip_lang_left; - + utiliser_langue_visiteur(); http_no_cache(); - if ($titre=='AUTO') - $titre=_T('info_installation_systeme_publication'); + if ($titre == 'AUTO') { + $titre = _T('info_installation_systeme_publication'); + } # le charset est en utf-8, pour recuperer le nom comme il faut # lors de l'installation - if (!headers_sent()) + if (!headers_sent()) { header('Content-Type: text/html; charset=utf-8'); + } $css = ""; - $files = array('reset.css','clear.css','minipres.css'); - if ($all_inline){ + $files = array('reset.css', 'clear.css', 'minipres.css'); + if ($all_inline) { // inliner les CSS (optimisation de la page minipres qui passe en un seul hit a la demande) - foreach ($files as $name){ + foreach ($files as $name) { $file = direction_css(find_in_theme($name)); - if (function_exists("compacte")) + if (function_exists("compacte")) { $file = compacte($file); - else + } else { $file = url_absolue_css($file); // precaution - lire_fichier($file,$c); + } + lire_fichier($file, $c); $css .= $c; } - $css = ""; - } - else{ - foreach ($files as $name){ + $css = ""; + } else { + foreach ($files as $name) { $file = direction_css(find_in_theme($name)); $css .= "\n"; } } // au cas ou minipres() est appele avant spip_initialisation_suite() - if (!defined('_DOCTYPE_ECRIRE')) define('_DOCTYPE_ECRIRE', ''); - return _DOCTYPE_ECRIRE. - html_lang_attributes(). - "\n". - "". - textebrut($titre). - "\n". - "\n". - $css . -" - + if (!defined('_DOCTYPE_ECRIRE')) { + define('_DOCTYPE_ECRIRE', ''); + } + + return _DOCTYPE_ECRIRE . + html_lang_attributes() . + "\n" . + "" . + textebrut($titre) . + "\n" . + "\n" . + $css . + " +
-

". - $titre . - "

+

" . + $titre . + "

\n"; } -// http://doc.spip.org/@install_fin_html +/** + * Retourne la fin d'une page HTML minimale (de type installation ou erreur) + * + * @return string Code HTML + */ function install_fin_html() { return "\n\t
\n\t
\n\n"; } /** - * http://doc.spip.org/@minipres + * Retourne une page HTML contenant, dans une présentation minimale, + * le contenu transmis dans `$titre` et `$corps`. + * + * Appelée pour afficher un message d’erreur (l’utilisateur n’a pas + * accès à cette page par exemple). + * + * Lorsqu’aucun argument n’est transmis, un header 403 est renvoyé, + * ainsi qu’un message indiquant une interdiction d’accès. + * + * @example + * ``` + * include_spip('inc/minipres'); + * if (!autoriser('configurer')) { + * echo minipres(); + * exit; + * } + * ``` + * @uses install_debut_html() + * @uses install_fin_html() * * @param string $titre - * titre de la page + * Titre de la page * @param string $corps - * corps de la page - * @param string $onload - * attribut onload de - * @param bool $all_inline - * inliner les css et js dans la page (limiter le nombre de hits) + * Corps de la page + * @param array $options + * string onload : Attribut onload de `` + * bool all_inline : Inliner les css et js dans la page (limiter le nombre de hits) + * int status : status de la page * @return string + * HTML de la page */ -function minipres($titre='', $corps="", $onload='', $all_inline = false) -{ - if (!defined('_AJAX')) define('_AJAX', false); // par securite +function minipres($titre = '', $corps = "", $options = array()) { + + // compat signature old + // minipres($titre='', $corps="", $onload='', $all_inline = false) + $args = func_get_args(); + if (isset($args[2]) and is_string($args[2])) { + $options = array('onload' => $args[2]); + } + if (isset($args[3])) { + $options['all_inline'] = $args[3]; + } + + $options = array_merge(array( + 'onload' => '', + 'all_inline' => false, + ), $options); + + if (!defined('_AJAX')) { + define('_AJAX', false); + } // par securite if (!$titre) { - if (!_AJAX) - http_status(403); + if (!isset($options['status'])) { + $options['status'] = 403; + } if (!$titre = _request('action') - AND !$titre = _request('exec') - AND !$titre = _request('page')) + and !$titre = _request('exec') + and !$titre = _request('page') + ) { $titre = '?'; + } $titre = spip_htmlspecialchars($titre); $titre = ($titre == 'install') - ? _T('avis_espace_interdit') - : $titre . ' : '. _T('info_acces_interdit'); + ? _T('avis_espace_interdit') + : $titre . ' : ' . _T('info_acces_interdit'); $statut = isset($GLOBALS['visiteur_session']['statut']) ? $GLOBALS['visiteur_session']['statut'] : ''; - $nom = isset($GLOBALS['visiteur_session']['nom']) ? $GLOBALS['visiteur_session']['nom'] : ''; + $nom = isset($GLOBALS['visiteur_session']['nom']) ? $GLOBALS['visiteur_session']['nom'] : ''; if ($statut != '0minirezo') { $titre = _T('info_acces_interdit'); } - $corps = generer_form_ecrire('accueil', '','', - $statut ? _T('public:accueil_site') : _T('public:lien_connecter') + $corps = generer_form_ecrire('accueil', '', '', + $statut ? _T('public:accueil_site') : _T('public:lien_connecter') ); spip_log($nom . " $titre " . $_SERVER['REQUEST_URI']); } - if (!_AJAX) - return install_debut_html($titre, $onload, $all_inline) + if (!_AJAX) { + if (isset($options['status'])) { + http_status($options['status']); + } + + return install_debut_html($titre, $options['onload'], $options['all_inline']) . $corps . install_fin_html(); - else { + } else { include_spip('inc/headers'); include_spip('inc/actions'); - $url = self('&',true); - foreach ($_POST as $v => $c) + $url = self('&', true); + foreach ($_POST as $v => $c) { $url = parametre_url($url, $v, $c, '&'); - ajax_retour("
".$titre . redirige_formulaire($url)."
",false); + } + ajax_retour("
" . $titre . redirige_formulaire($url) . "
", false); } } -?>