Changeset 48831 in spip-zone


Ignore:
Timestamp:
Jun 16, 2011, 10:21:03 AM (10 years ago)
Author:
cedric@…
Message:

(oups, il manquait un morceau de commit dans r48830)
Ne pas compiler une meme less deux fois dans le hit (cas si echec au premier coup)
Generer une erreur de compilation SPIP en cas d'erreur de compilation LESS
Definir le importDir de la LESS compilee pour résoudre les @import less
Corriger un bug sur l'import qui provoque une erreur fatale si le fichier importé commence par des commentaires (on fix ici sans reporter au dev de lessPHP car le modele interne de compilation LESS a completement changé depuis cette release)

Location:
_plugins_/less-css/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/less-css/trunk/lesscss_fonctions.php

    r48829 r48831  
    66 * @return string
    77 */
    8 function less_compile($style){
     8function less_compile($style, $import_dir="", $contexte = array()){
    99        require_once 'lessphp/lessc.inc.php';
    1010
    1111        // le compilateur lessc compile le contenu
    1212        $less = new lessc();
     13        if ($import_dir){
     14                $less->importDir = rtrim($import_dir,"/")."/";
     15        }
    1316        try {
    1417                $out = $less->parse($style);
     
    1821        catch (exception $ex) {
    1922                spip_log('lessc fatal error:'.$ex->getMessage(),'less'._LOG_ERREUR);
     23                erreur_squelette(
     24                        "LESS : Echec compilation"
     25                        . (isset($contexte['file'])?" fichier ".$contexte['file']:"")
     26                  . "<br />".$ex->getMessage()
     27                );
    2028                return '';
    2129        }
     
    4149          AND preg_match(',\.(less|css)$,i', $source, $r)
    4250          AND file_exists($source)) {
     51                static $done = array();
     52                // ne pas essayer de compiler deux fois le meme fichier dans le meme hit
     53                // si on a echoue une fois, on echouera pareil
     54                if (isset($done[$source])) return $done[$source];
    4355
    4456                $f = basename($source,$r[0]);
     
    5870
    5971                # compiler le LESS
    60                 $contenu = less_compile($contenu);
     72                $contenu = less_compile($contenu, dirname($source), array('file'=>$source));
    6173                // si erreur de compilation on renvoit la source, et il y a deja eu un log
    6274                if (!$contenu)
    63                         return $source;
     75                        return $done[$source] = $source;
    6476                # passer la css en url absolue (on ne peut pas le faire avant, car c'est du LESS, pas des CSS)
    6577                $contenu = urls_absolues_css($contenu, $source);
     
    6779                // ecrire le fichier destination, en cas d'echec renvoyer la source
    6880                if (ecrire_fichier($f, $contenu, true))
    69                         return $f;
     81                        return $done[$source] = $f;
    7082                else
    71                         return $source;
     83                        return $done[$source] = $source;
    7284        }
    7385        $source = less_compile($source);
  • _plugins_/less-css/trunk/plugin.xml

    r48765 r48831  
    33        <auteur>Jean-Baptiste Bourgoin</auteur>
    44        <licence>MIT</licence>
    5         <version>0.3.0</version>
     5        <version>0.3.1</version>
    66        <etat>test</etat>
    77        <icon>img/lesscss-32.png</icon>
Note: See TracChangeset for help on using the changeset viewer.