Changeset 67468 in spip-zone for _plugins_/css_imbriques


Ignore:
Timestamp:
Nov 5, 2012, 11:18:50 AM (7 years ago)
Author:
arno@…
Message:
  • Compatible avec les @keyframes
  • Par cohérence, permet d'utiliser @-spip-keyframes
  • Fabrique @-moz-keyframes, @-webkit-keyframes, etc.
Location:
_plugins_/css_imbriques
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/css_imbriques/css_imbriques_fonctions.php

    r66382 r67468  
    11<?php
    2 
    32if (!defined('_ECRIRE_INC_VERSION')) return;
    43
     
    3938
    4039function css_contruire($css, $niveau, $chemin, $classe, $enfants, $definition) {
    41         $ret = ''; // retour
     40
    4241        $intitule = trim($classe[$niveau]);
     42
     43
    4344        if (substr($intitule, 0, 2) == ". ") {
    4445                $intitule = substr($intitule, 2, strlen($intitule));
     
    6162        }
    6263       
    63 
    64         if (isset($enfants[$niveau]) and $enfants[$niveau]) {
     64        if (preg_match(",^\@(-spip-)?keyframes,", $intitule)) {
     65                // autoriser @keyframes et @-spip-keyframes
     66                $intitule = str_replace("@-spip-keyframes", "@keyframes", $intitule);
     67       
     68                if (isset($enfants[$niveau]) and $enfants[$niveau]) {
     69                        $def_keyframes = "";
     70                        foreach($enfants[$niveau] as $num) {
     71                                 $def_keyframes .= css_contruire($css, $num, "", $classe, $enfants, $definition);
     72                        }
     73                       
     74                        $ret .= preg_replace(",^@keyframes,","@-moz-keyframes",$intitule)." { $def_keyframes }";
     75                        $ret .= preg_replace(",^@keyframes,","@-webkit-keyframes",$intitule)." { $def_keyframes }";
     76                        $ret .= preg_replace(",^@keyframes,","@-o-keyframes",$intitule)." { $def_keyframes }";
     77                        $ret .= $intitule." { $def_keyframes }";
     78                }
     79        }
     80        else if ($enfants[$niveau]) {
    6581                foreach($enfants[$niveau] as $num) {
    6682                        $ret .= css_contruire($css, $num, $chemin, $classe, $enfants, $definition);
     
    94110       
    95111        if (_UTILISER_PIE_HTC) {
    96                 if (function_exists('chemin')) $pie = url_absolue(chemin("PIE.htc"));
     112                if (function_exists("chemin")) $pie = url_absolue(chemin("PIE.htc"));
    97113                else $pie = url_absolue(find_in_path("PIE.htc"));
    98114        }
     
    267283
    268284function css_imbriques_decouper ($css) {
    269        
    270         $compteur = 0;
     285        $compteur = 0; 
    271286       
    272287        $css = preg_replace(",\n[\t\ ]*,", "\n", trim($css));
     
    293308                        if (preg_match(",^@media,", $intitule)) $intitule .= " media@";
    294309
     310                        // le minifieur de CSS vire les intitulés "0%"
     311                        if ($intitule == "0%") $intitule = "from";
     312
     313
    295314                                               
    296315                        $def = trim($regs[2]);
    297316                        $def = css_imbriques_forcer_position($def);
    298 
    299 
    300317
    301318                        $chaine = $regs[0];
     
    326343                        } else {
    327344                       
    328                                
    329                
    330345                                $compteur ++;
    331346                       
     
    356371               
    357372        }
    358 
    359373       
    360374        $css = "";
    361375       
    362376        $css = css_contruire($css, $compteur, "", $classe, $enfants, $definition);
    363 
    364377
    365378       
     
    369382        $css = preg_replace(",\t,", "", $css);
    370383        $css = preg_replace(",\},", "}\n", $css);
     384
     385
    371386
    372387        // Rechercher les media_queries
     
    378393        }
    379394
    380 
    381395        return $css;
    382396}
     
    395409        $GLOBALS["css_imbriques_medias_queries"]["$query"] .= $intitule."{".$definition."}\n";
    396410        return;
     411}
     412function css_imbriques_traiter_keyframe ($flux) {
     413        print_r($flux);
     414        die();
    397415}
    398416
     
    424442
    425443        $contenu = css_imbriques_decouper ($contenu);
     444       
    426445
    427446        // passer les url relatives a la css d'origine en url absolues
    428447        $contenu = preg_replace(",url\s*\(\s*['\"]?([^'\"/][^:]*)['\"]?\s*\),UimsS",
    429448                "url($path\\1)",$contenu);
     449
     450
     451
    430452        // virer les fausses url absolues que l'on a mis dans les import
    431453        if (count($src_faux_abs))
  • _plugins_/css_imbriques/paquet.xml

    r65115 r67468  
    22        prefix="css_imbriques"
    33        categorie="outil"
    4         version="3.0.1"
     4        version="3.0.2"
    55        documentation="http://www.paris-beyrouth.org/tutoriaux-spip/article/plugin-spip-pre-processeur-de-css"
    66        etat="stable"
  • _plugins_/css_imbriques/plugin.xml

    r65115 r67468  
     1<?xml version="1.0" encoding="utf-8"?>
    12<plugin>
    23        <nom>CSS imbriqu&#233;s</nom>
    34        <slogan>Traiter des CSS imbriqu&#233;s</slogan>
    45        <auteur>ARNO*</auteur>
    5         <version>3.0.1</version>
     6        <version>3.0.2</version>
    67        <etat>stable</etat>
    78        <description>
     
    1213                diff&#233;rentes pour viser diff&#233;rents navigateurs.
    1314
    14                 Il permet &#233;galement d'ins&#233;rer des @media queries {&#224; l'int&#233;rieur} des classes elles-m&#234;mes.
     15                Il permet &#233;galement d'ins&#233;rer des @media queries {&#224; l'int&#233;rieur} des classes elles-m&#234;êmes.
    1516        </description>
    16         <lien>http://www.paris-beyrouth.org/tutoriaux-spip/article/plugin-css-imbriques</lien>
     17        <lien>http://www.paris-beyrouth.org/tutoriaux-spip/article/plugin-spip-pre-processeur-de-css</lien>
    1718        <prefix>css_imbriques</prefix>
    1819        <fonctions>css_imbriques_fonctions.php</fonctions>
    1920
    20         <necessite id="SPIP" version="[1.9.0;3.0.99]" />
     21        <necessite id="SPIP" version="[1.9.0;3.9.9]" />
    2122        <categorie>outil</categorie>
    2223</plugin>
Note: See TracChangeset for help on using the changeset viewer.