Changeset 93099 in spip-zone


Ignore:
Timestamp:
Nov 23, 2015, 8:42:45 AM (4 years ago)
Author:
marcimat@…
Message:

Suivre les évolutions qu'il y avait eu sur inc/minipres dans le core.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/dev/inc/minipres.php

    r88959 r93099  
    44 *  SPIP, Systeme de publication pour l'internet                           *
    55 *                                                                         *
    6  *  Copyright (c) 2001-2013                                                *
     6 *  Copyright (c) 2001-2015                                                *
    77 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
    88 *                                                                         *
     
    1111\***************************************************************************/
    1212
     13/**
     14 * Présentation des pages d'installation et d'erreurs
     15 *
     16 * Surcharge simplement pour modifier `install_fin_html()`
     17 *
     18 * @package SPIP\Dev\Minipres
     19**/
    1320if (!defined('_ECRIRE_INC_VERSION')) return;
    1421
     
    1623include_spip('inc/texte'); //inclue inc/lang et inc/filtres
    1724
    18 //
    19 // Presentation des pages d'installation et d'erreurs
    20 //
    21 
    22 // http://code.spip.net/@install_debut_html
    23 function install_debut_html($titre = 'AUTO', $onLoad = '') {
     25
     26/**
     27 * Retourne le début d'une page HTML minimale (de type installation ou erreur)
     28 *
     29 * Le contenu de CSS minimales (reset.css, clear.css, minipres.css) est inséré
     30 * dans une balise script inline (compactée si possible)
     31 *
     32 * @uses utiliser_langue_visiteur()
     33 * @uses http_no_cache()
     34 * @uses html_lang_attributes()
     35 * @uses compacte() si le plugin compresseur est présent
     36 * @uses url_absolue_css()
     37 *
     38 * @param string $titre
     39 *    Titre. `AUTO`, indique que l'on est dans le processus d'installation de SPIP
     40 * @param string $onLoad
     41 *    Attributs pour la balise `<body>`
     42 * @param bool $all_inline
     43 *    Inliner les css et js dans la page (limiter le nombre de hits)
     44 * @return string
     45 *    Code HTML
     46 */
     47function install_debut_html($titre = 'AUTO', $onLoad = '', $all_inline = false) {
    2448        global $spip_lang_right,$spip_lang_left;
    2549       
     
    2852        http_no_cache();
    2953
    30         if ($titre=='AUTO')
     54        if ($titre=='AUTO') {
    3155                $titre=_T('info_installation_systeme_publication');
     56        }
    3257
    3358        # le charset est en utf-8, pour recuperer le nom comme il faut
    3459        # lors de l'installation
    35         if (!headers_sent())
     60        if (!headers_sent()) {
    3661                header('Content-Type: text/html; charset=utf-8');
    37        
     62        }
     63
     64        $css = "";
     65        $files = array('reset.css','clear.css','minipres.css');
     66        if ($all_inline){
     67                // inliner les CSS (optimisation de la page minipres qui passe en un seul hit a la demande)
     68                foreach ($files as $name){
     69                        $file = direction_css(find_in_theme($name));
     70                        if (function_exists("compacte")) {
     71                                $file = compacte($file);
     72                        } else {
     73                                $file = url_absolue_css($file); // precaution
     74                        }
     75                        lire_fichier($file,$c);
     76                        $css .= $c;
     77                }
     78                $css = "<style type='text/css'>".$css."</style>";
     79        }
     80        else{
     81                foreach ($files as $name){
     82                        $file = direction_css(find_in_theme($name));
     83                        $css .= "<link rel='stylesheet' href='$file' type='text/css' />\n";
     84                }
     85        }
     86
    3887        // au cas ou minipres() est appele avant spip_initialisation_suite()
    3988        if (!defined('_DOCTYPE_ECRIRE')) define('_DOCTYPE_ECRIRE', '');
     
    4392                "<title>".
    4493                textebrut($titre).
    45                 "</title>
    46                 <link rel='stylesheet' href='".direction_css(find_in_theme('reset.css'))."' type='text/css' />\n" .
    47                 "<link rel='stylesheet' href='".direction_css(find_in_theme('clear.css'))."' type='text/css' />\n" .
    48                 "<link rel='stylesheet' href='".direction_css(find_in_theme('minipres.css'))."' type='text/css' />\n" .
    49     // cet appel permet d'assurer un copier-coller du nom du repertoire a creer dans tmp (esj)
    50                 http_script('',  "spip_barre.js") .
     94                "</title>\n".
     95                "<meta name='viewport' content='width=device-width' />\n".
     96                $css .
    5197"</head>
    5298<body".$onLoad." class='minipres'>
     
    58104}
    59105
    60 // http://code.spip.net/@install_fin_html
     106/**
     107 * Retourne la fin d'une page HTML minimale (de type installation ou erreur)
     108 *
     109 * @return string Code HTML
     110 */
    61111function install_fin_html() {
    62112        if (!_request('exec')=='install' && _DEBUG_MINIPRES) {
     
    68118}
    69119
    70 // http://code.spip.net/@minipres
    71 function minipres($titre='', $corps="", $onload='')
    72 {
     120
     121/**
     122 * Retourne une page HTML contenant, dans une présentation minimale,
     123 * le contenu transmis dans `$titre` et `$corps`.
     124 *
     125 * Appelée pour afficher un message d’erreur (l’utilisateur n’a pas
     126 * accès à cette page par exemple).
     127 *
     128 * Lorsqu’aucun argument n’est transmis, un header 403 est renvoyé,
     129 * ainsi qu’un message indiquant une interdiction d’accès.
     130 *
     131 * @example
     132 *   ```
     133 *   include_spip('inc/minipres');
     134 *   if (!autoriser('configurer')) {
     135 *      echo minipres();
     136 *      exit;
     137 *   }
     138 *   ```
     139 * @uses install_debut_html()
     140 * @uses install_fin_html()
     141 *
     142 * @param string $titre
     143 *   Titre de la page
     144 * @param string $corps
     145 *   Corps de la page
     146 * @param array $options
     147 *   string onload : Attribut onload de `<body>`
     148 *   bool all_inline : Inliner les css et js dans la page (limiter le nombre de hits)
     149 *   int status : status de la page
     150 * @return string
     151 *   HTML de la page
     152 */
     153function minipres($titre = '', $corps = "", $options = array()){
     154
     155        // compat signature old
     156        // minipres($titre='', $corps="", $onload='', $all_inline = false)
     157        $args = func_get_args();
     158        if (isset($args[2]) AND is_string($args[2])){$options = array('onload' => $args[2]);}
     159        if (isset($args[3])) {$options['all_inline'] = $args[3];}
     160
     161        $options = array_merge(array(
     162                'onload' => '',
     163                'all_inline' => false,
     164        ),$options);
     165
    73166        if (!defined('_AJAX')) define('_AJAX', false); // par securite
    74167        if (!$titre) {
    75                 if (!_AJAX)
    76                         http_status(403);
     168                if (!isset($options['status']))
     169                        $options['status'] = 403;
    77170                if (!$titre = _request('action')
    78171                AND !$titre = _request('exec')
     
    80173                        $titre = '?';
    81174
    82                 $titre = htmlspecialchars($titre);
     175                $titre = spip_htmlspecialchars($titre);
    83176
    84177                $titre = ($titre == 'install')
    85178                  ?  _T('avis_espace_interdit')
    86179                  : $titre . '&nbsp;: '. _T('info_acces_interdit');
     180
     181                $statut = isset($GLOBALS['visiteur_session']['statut']) ? $GLOBALS['visiteur_session']['statut'] : '';
     182                $nom    = isset($GLOBALS['visiteur_session']['nom']) ? $GLOBALS['visiteur_session']['nom'] : '';
     183
    87184                $corps = generer_form_ecrire('accueil', '','',
    88                                                 $GLOBALS['visiteur_session']['statut']?_T('public:accueil_site'):_T('public:lien_connecter')
     185                                                $statut ? _T('public:accueil_site') : _T('public:lien_connecter')
    89186                );
    90                 spip_log($GLOBALS['visiteur_session']['nom'] . " $titre " . $_SERVER['REQUEST_URI']);
    91         }
    92 
    93         if (!_AJAX)
    94                 return install_debut_html($titre, $onload)
     187                spip_log($nom . " $titre " . $_SERVER['REQUEST_URI']);
     188        }
     189
     190        if (!_AJAX){
     191                if (isset($options['status']))
     192                        http_status($options['status']);
     193                return install_debut_html($titre, $options['onload'], $options['all_inline'])
    95194                . $corps
    96195                . install_fin_html();
     196        }
    97197        else {
    98198                include_spip('inc/headers');
Note: See TracChangeset for help on using the changeset viewer.