Ignore:
Timestamp:
Jan 7, 2011, 2:52:51 PM (10 years ago)
Author:
cedric@…
Message:

refactoring du compresseur :
Separer par groupes fonctionnel :

  • minifier pour tout ce qui concerne la minification css ou js d'un fichier
  • concatener pour le regroupement de plusieurs fichiers en un (au passage, la fonction est generalisee et les specificites css/js sont simplement gerees par les callbacks passees en appel)
  • embarquer pour tout ce qui concerne(ra) l'inclusion des images en base64 dans les css (a developper)

On rationalise les nommage

File:
1 edited

Legend:

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

    r37345 r43373  
    11<?php
    22
    3 // Si la source est un chemin, on retourne un chemin avec le contenu compacte
    4 // dans _DIR_VAR/cache_$format/
    5 // Si c'est un flux on le renvoit compacte
    6 // Si on ne sait pas compacter, on renvoie ce qu'on a recu
    7 // http://doc.spip.org/@compacte
    8 function compacte($source, $format = null) {
     3/***************************************************************************\
     4 *  SPIP, Systeme de publication pour l'internet                           *
     5 *                                                                         *
     6 *  Copyright (c) 2001-2011                                                *
     7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
     8 *                                                                         *
     9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
     10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
     11\***************************************************************************/
     12
     13if (!defined("_ECRIRE_INC_VERSION")) return;
     14
     15/**
     16 * Minifier un fichier js ou css :
     17 * Si la source est un chemin, on retourne un chemin avec le contenu minifie
     18 * dans _DIR_VAR/cache_$format/
     19 * Si c'est un flux on le renvoit compacte
     20 * Si on ne sait pas compacter, on renvoie ce qu'on a recu
     21 *
     22 * @param string $source
     23 * @param string $format
     24 * @return string
     25 */
     26function minifier($source, $format = null) {
    927        if (!$format AND preg_match(',\.(js|css)$,', $source, $r))
    1028                $format = $r[1];
    11         include_spip('inc/compresseur');
    12         if (!function_exists($compacte = 'compacte_'.$format))
     29        include_spip('inc/compresseur_minifier');
     30        if (!function_exists($minifier = 'minifier_'.$format))
    1331                return $source;
    1432
     
    2341                $f = basename($source,'.'.$format);
    2442                $f = sous_repertoire (_DIR_VAR, 'cache-'.$format)
    25                 . preg_replace(",(.*?)(_rtl|_ltr)?$,","\\1-compacte-"
    26                 . substr(md5("$source-compacte"), 0,4) . "\\2", $f, 1)
     43                . preg_replace(",(.*?)(_rtl|_ltr)?$,","\\1-minify-"
     44                . substr(md5("$source-minify"), 0,4) . "\\2", $f, 1)
    2745                . '.' . $format;
    2846
     
    3553
    3654                // traiter le contenu
    37                 $contenu = $compacte($contenu);
     55                $contenu = $minifier($contenu);
    3856
    3957                // ecrire le fichier destination, en cas d'echec renvoyer la source
     
    4462        }
    4563
    46         // Sinon simple compactage de contenu
    47         return $compacte($source);
     64        // Sinon simple minification de contenu
     65        return $minifier($source);
     66}
     67/**
     68 * Synonyme historique de minifier, pour compatibilite
     69 *
     70 * @param string $source
     71 * @param string $format
     72 * @return string
     73 */
     74function compacte($source, $format = null){
     75        return minifier($source, $format = null);
    4876}
    4977
     
    6492        if (!defined('_INTERDIRE_COMPACTE_HEAD')){
    6593                // dans l'espace prive on compacte toujours, c'est concu pour
    66                 if ($GLOBALS['meta']['auto_compress_css'] == 'oui' OR (test_espace_prive() AND !defined('_INTERDIRE_COMPACTE_HEAD_ECRIRE')))
    67                         $flux = compacte_head_css($flux);
    68                 if ($GLOBALS['meta']['auto_compress_js'] == 'oui' OR (test_espace_prive() AND !defined('_INTERDIRE_COMPACTE_HEAD_ECRIRE')))
    69                         $flux = compacte_head_js($flux);
     94                if ((!test_espace_prive() AND $GLOBALS['meta']['auto_compress_css'] == 'oui') OR (test_espace_prive() AND !defined('_INTERDIRE_COMPACTE_HEAD_ECRIRE')))
     95                        $flux = compacte_head_files($flux,'css');
     96                if ((!test_espace_prive() AND $GLOBALS['meta']['auto_compress_js'] == 'oui') OR (test_espace_prive() AND !defined('_INTERDIRE_COMPACTE_HEAD_ECRIRE')))
     97                        $flux = compacte_head_files($flux,'js');
    7098        }
    7199        return $flux;
     
    119147function filtre_embarque_src ($img, $maxsize = 4096){
    120148        $src = extraire_attribut($img,'src');
    121         if ($src2=filtre_embarque_fichier($src) AND $src2!= $src) {
     149        if ($src2=filtre_embarque_fichier($src, "", $maxsize) AND $src2!= $src) {
    122150                $img = inserer_attribut($img, 'src', $src2);
    123151        }
Note: See TracChangeset for help on using the changeset viewer.