Changeset 88691 in spip-zone


Ignore:
Timestamp:
Apr 20, 2015, 2:28:00 PM (5 years ago)
Author:
arno@…
Message:

v5.5: ça y est! gestion de la direction artistique « automatique »…

Location:
_plugins_/image_responsive
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/image_responsive/image_responsive_fonctions.php

    r88689 r88691  
    3838
    3939
    40 function _image_responsive($img, $taille=-1, $lazy=0, $vertical = 0, $medias="") {
     40function _image_responsive($img, $taille=-1, $lazy=0, $vertical = 0, $medias="", $proportions="") {
    4141        $taille_defaut = -1;
    4242       
     
    5959        }
    6060
    61        
    6261//      $img = $img[0];
    6362        $type_urls = lire_meta("type_urls");
     
    9998                $img = inserer_attribut($img, "data-l", $l);
    10099                $img = inserer_attribut($img, "data-h", $h);
     100               
     101                $proportions = explode("/", $proportions);
     102                if (count($proportions) > 0) {
     103                        $i = 0;
     104                        foreach($proportions as $prop) {
     105                                $i++;
     106                                if (preg_match(",^([0-9\.]+)(x([0-9\.]*))?(x([a-z]*))?(x([0-9\.]*))?$,", $prop, $regs)) {
     107                                        $p[$i]["l"] = $regs[1];
     108                                        $p[$i]["h"] = $regs[3];
     109                                        $p[$i]["f"] = $regs[5];
     110                                        $p[$i]["z"] = $regs[7];
     111                                }
     112                        }
     113                }
    101114               
    102115               
     
    134147                                                $i++;
    135148                                               
     149                                                $source_tmp = $source;
    136150                                               
     151                                                if (count($p[$i]) > 1) {
     152                                                        $source_tmp = image_proportions($source_tmp, $p[$i]["l"], $p[$i]["h"], $p[$i]["f"], $p[$i]["z"]);
     153                                                        $source_tmp = extraire_attribut($source_tmp,"src");
     154                                                } else if (count($p) == 1) {
     155                                                        $source_tmp = image_proportions($source_tmp, $p[1]["l"], $p[1]["h"], $p[1]["f"], $p[1]["z"]);
     156                                                        $source_tmp = extraire_attribut($source_tmp,"src");
     157                                                }
     158
    137159                                                if ($htactif) {
    138                                                         $set = preg_replace(",\.(jpg|png|gif)$,", "-resp$t$v.$1", $source)." 1x";
    139                                                         $set .= ",".preg_replace(",\.(jpg|png|gif)$,", "-resp$t$v-2.$1", $source)." 2x";
     160                                                        $set = preg_replace(",\.(jpg|png|gif)$,", "-resp$t$v.$1", $source_tmp)." 1x";
     161                                                        $set .= ",".preg_replace(",\.(jpg|png|gif)$,", "-resp$t$v-2.$1", $source_tmp)." 2x";
    140162                                                }
    141163                                                else {
    142                                                         $set = "index.php?action=image_responsive&img=$source&taille=$t$v 1x";
    143                                                         $set .= ","."index.php?action=image_responsive&img=$source&taille=$t$v&dpr=2 2x";
     164                                                        $set = "index.php?action=image_responsive&img=$source_tmp&taille=$t$v 1x";
     165                                                        $set .= ","."index.php?action=image_responsive&img=$source_tmp&taille=$t$v&dpr=2 2x";
    144166                                                }
    145167                                               
     
    149171                                                }
    150172                                                else {
    151                                                         $src = "rien.gif";
     173                                                        $src = find_in_path("rien.gif");
    152174                                                        $srcset[] = $set;
    153175                                                }
     
    177199               
    178200                if ($vertical == 0) {
    179                         $r = (($h/$l)*100);
    180                         $img = "<picture style='padding:0;padding-bottom:$r%' class='conteneur_image_responsive_h'>$sources$img</picture>";
     201                        if (count($p) == 1) $r = ($p[1]["h"]/$p[1]["l"]) * 100;
     202                        else if (count($p) == 0) $r = (($h/$l)*100);
     203                       
     204                        if ($r) $aff_r = "padding-bottom:$r%";
     205                        $img = "<picture style='padding:0;$aff_r' class='conteneur_image_responsive_h'>$sources$img</picture>";
    181206                } else {
    182207                        $r = (($h/$l)*100);
     
    184209                }
    185210        }
     211       
    186212        return $img;
    187213}
     
    190216
    191217
    192 function image_responsive($texte, $taille=-1, $lazy=0, $vertical=0, $medias='') {
     218function image_responsive($texte, $taille=-1, $lazy=0, $vertical=0, $medias='', $proportions='') {
    193219        if (!preg_match("/^<img /i", $texte)) {
    194220                if (strlen($texte) < 256 && file_exists($texte)) $texte = "<img src='$texte'>";
    195221                else return $texte;
    196222        }
    197         return preg_replace_callback(",(<img\ [^>]*>),", create_function('$matches', 'return _image_responsive($matches[0],"'.$taille.'",'.$lazy.','.$vertical.',"'.$medias.'");'), $texte);
     223        return preg_replace_callback(",(<img\ [^>]*>),", create_function('$matches', 'return _image_responsive($matches[0],"'.$taille.'",'.$lazy.','.$vertical.',"'.$medias.'","'.$proportions.'");'), $texte);
    198224}
    199225
  • _plugins_/image_responsive/paquet.xml

    r88689 r88691  
    22        prefix="image_responsive"
    33        categorie="outil"
    4         version="5.3.0"
     4        version="5.5.0"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.1.*]"
Note: See TracChangeset for help on using the changeset viewer.