Changeset 43376 in spip-zone


Ignore:
Timestamp:
Jan 7, 2011, 4:56:41 PM (10 years ago)
Author:
cedric@…
Message:

Minification du code HTML produit par les squelettes. Si la compression js et css sont activees, les js et css inline sont aussi minifies. La minification a lieu sur le squelette avant mise en cache.

Attention : reaffectation de la meta 'auto_compress_http' qui ne parametre plus la compression du flux html via un tampon gz (qui est le plus souvent contre-productive en PHP), mais la minification HTML
La compression gz du flux peut etre reactivee par define('_AUTO_GZIP_HTTP', true) mais est vraiment reservee a un public averti qui a verifie que c'etait vraiment benefique et n'a pas acces aux reglages du serveur (ce ne devrait jamais arriver).

Location:
_core_/plugins/compresseur
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/compresseur/compresseur_http.php

    r43373 r43376  
    77 *
    88 * Utilisation deconseillee et desactivee par defaut
    9  * utilisable uniquement via define('auto_compress_http',true)
     9 * utilisable uniquement via define('_AUTO_GZIP_HTTP',true)
    1010 *
    1111 */
     
    1313// si un buffer est deja ouvert, stop
    1414if ($GLOBALS['flag_ob']
    15         AND $GLOBALS['meta']['auto_compress_http'] == 'oui'
     15        AND defined('_AUTO_GZIP_HTTP') AND _AUTO_GZIP_HTTP
    1616        AND strlen(ob_get_contents())==0
    1717        AND !headers_sent()) {
  • _core_/plugins/compresseur/compresseur_pipeline.php

    r43373 r43376  
    2424}
    2525
     26/**
     27 * Afficher le formulaire de configuration sur la page de config avancees
     28 * @param string $flux
     29 * @return string
     30 */
    2631function compresseur_affiche_milieu($flux){
    2732       
     
    3439}
    3540
     41/**
     42 * Lister les metas et leurs valeurs par defaut
     43 * @param array $metas
     44 * @return array
     45 */
    3646function compresseur_configurer_liste_metas($metas){
    3747        $metas['auto_compress_js']='non';
     
    4151}
    4252
     53/**
     54 * Declarer les filtres sur les squelettes mis en cache
     55 * ici minification CSS si la meta la demande
     56 *
     57 * @param array $filtres
     58 * @return array
     59 */
     60function compresseur_declarer_filtres_squelettes($filtres){
     61        if ($GLOBALS['meta']['auto_compress_http']=='oui'){
     62                include_spip("inc/compresseur_minifier");
     63                $filtres[] = 'minifier_html';
     64        }
     65  return $filtres;
     66}
     67
    4368?>
  • _core_/plugins/compresseur/inc/compresseur_minifier.php

    r43374 r43376  
    285285        return $nom;
    286286}
     287
     288/**
     289 * minifier du HTML
     290 *
     291 * @param string $flux
     292 * @return string
     293 */
     294function minifier_html($flux){
     295        // si pas de contenu ni de balise html, ne rien faire
     296        if (!strlen($flux) OR strpos($flux,"<")===FALSE)
     297                return $flux;
     298
     299        static $options = null;
     300        if (is_null($options)){
     301                $options = array();
     302                if ($GLOBALS['meta']['auto_compress_css'] == 'oui')
     303                        $options['cssMinifier'] = 'minifier_css';
     304                if ($GLOBALS['meta']['auto_compress_js'] == 'oui')
     305                        $options['jsMinifier'] = 'minifier_js';
     306                include_spip('lib/minify_html/class.minify_html');
     307        }
     308        return Minify_HTML::minify($flux,$options);
     309}
  • _core_/plugins/compresseur/plugin.xml

    r43373 r43376  
    1616        </pipeline>
    1717        <pipeline>
     18                <nom>declarer_filtres_squelettes</nom>
     19                <inclure>compresseur_pipeline.php</inclure>
     20        </pipeline>
     21        <pipeline>
    1822                <nom>affiche_milieu</nom>
    1923                <inclure>compresseur_pipeline.php</inclure>
Note: See TracChangeset for help on using the changeset viewer.