Changeset 77033 in spip-zone


Ignore:
Timestamp:
Oct 6, 2013, 2:38:16 PM (8 years ago)
Author:
esj@…
Message:

Rainette Eviter de produire les attributs width/height lorsque getimagesize ne fonctionne pas, et partager le code autour de ça.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/rainette/branches/v1/inc/rainette_filtres.php

    r77021 r77033  
    1010 **/
    1111# cf pour le choix des icones http://liquidweather.net/icons.php
     12
    1213function rainette_icone_meteo($code_icon, $taille='petit', $chemin='', $extension="png"){
    13         $html_icone = '';
    14         include_spip('inc/rainette_utils');
     14
     15        return rainette_icone(code2icone($code_icon),
     16                        rainette_resume_meteo($code_icon),
     17                        $chemin,
     18                        $extension,
     19                        $taille);
     20}
     21
     22function rainette_icone($nom, $texte, $chemin='', $extension="png", $taille=''){
     23
    1524        if (!$chemin) $chemin = _RAINETTE_ICONES_PATH.$taille.'/';
    16         $temps = code2icone($code_icon);
    17 
    18         // Le dossier personnalise ou le dossier passe en argument a bien l'icone requise
    19         if ($img = find_in_path($chemin.$temps.'.'.$extension)) {
    20                 list ($l,$h) = @getimagesize($img);
    21                 $html_icone = '<img src="'.$img.'" alt="'.rainette_resume_meteo($code_icon).'" title="'.rainette_resume_meteo($code_icon).'" width="'.$l.'" height="'.$h.'" />';
    22         }
    23         // Le dossier personnalise n'a pas d'image, on prend l'icone par defaut dans le repertoire img_meteo/
    24         elseif (($chemin = 'img_meteo/'.$taille.'/') && ($img = find_in_path($chemin.$temps.'.'.$extension))) {
    25                 list ($l,$h) = @getimagesize($img);
    26                 $html_icone = '<img src="'.$img.'" alt="'.rainette_resume_meteo($code_icon).'" title="'.rainette_resume_meteo($code_icon).'" width="'.$l.'" height="'.$h.'" />';
     25        $file = $nom . '.' . $extension;
     26        // Le dossier personnalise ou le dossier passe en argument
     27        // a-t-il bien l'icone requise ?
     28        $img = find_in_path($file, $chemin);
     29        if (!$img) {
     30        // Non, on prend l'icone par defaut dans le repertoire img_meteo/
     31                $img = find_in_path($file, 'img_meteo/'.$taille.'/');
     32                if (!$img)  return ''; //???
    2733        }
    28         return $html_icone;
     34        $a = ($a = @getimagesize($img)) ? " width='$a[0]' height='$a[1]'":'';
     35        $r = attribut_html($texte);
     36        return "<img src='$img' alt='$r' title='$r'$a />";
    2937}
    3038
    3139function rainette_resume_meteo($code_icon){
    3240        include_spip('inc/rainette_utils');
    33         $resume = ucfirst(_T('rainette:meteo_'.code2icone($code_icon)));
    34         return $resume;
     41        return ucfirst(_T('rainette:meteo_'.code2icone($code_icon)));
    3542}
    3643
     
    6269
    6370function rainette_afficher_tendance($tendance_en, $methode='texte', $chemin='', $extension="png"){
    64         $html = '';
    65         include_spip('inc/rainette_utils');
    66        
    67         if ($methode == 'texte') {
    68                 $html = _T('rainette:tendance_texte_'.$tendance_en);
    69         }
    70         else if ($methode == 'symbole') {
    71                 $html = _T('rainette:tendance_symbole_'.$tendance_en);
    72         }
    73         else if ($methode == 'icone') {
    74                 if (!$chemin) $chemin = _RAINETTE_ICONES_PATH;
    75        
    76                 // Le dossier personnalise ou le dossier passe en argument a bien l'icone requise
    77                 if ($img = find_in_path($chemin.$tendance_en.'.'.$extension)) {
    78                         list ($l,$h) = @getimagesize($img);
    79                         $html = '<img src="'.$img.'" alt="'._T('rainette:tendance_texte_'.$tendance_en).'" title="'._T('rainette:tendance_texte_'.$tendance_en).'" width="'.$l.'" height="'.$h.'" />';
    80                 }
    81                 // Le dossier personnalise n'a pas d'image, on prend l'icone par defaut dans le repertoire img_meteo/
    82                 elseif (($chemin = 'img_meteo/') && ($img = find_in_path($chemin.$tendance_en.'.'.$extension))) {
    83                         list ($l,$h) = @getimagesize($img);
    84                         $html = '<img src="'.$img.'" alt="'._T('rainette:tendance_texte_'.$tendance_en).'" title="'._T('rainette:tendance_texte_'.$tendance_en).'" width="'.$l.'" height="'.$h.'" />';
    85                 }
    86         }
    87         return $html;
     71
     72        if ($methode == 'texte')
     73                return _T('rainette:tendance_texte_'.$tendance_en);
     74        if ($methode == 'symbole')
     75                return _T('rainette:tendance_symbole_'.$tendance_en);
     76        return rainette_icone($tendance_en, _T('rainette:tendance_texte_'.$tendance_en), $chemin, $extension);
    8877}
    8978
Note: See TracChangeset for help on using the changeset viewer.