Changeset 77039 in spip-zone


Ignore:
Timestamp:
Oct 7, 2013, 10:48:09 AM (6 years ago)
Author:
esj@…
Message:

Rainette version 1.5.2:

  • ajout du filtre rainette_croaaaaa_previsions_css qui produit une feuile de style dont les sélecteurs sont les jours et les propriété l'icone de la prévision météo;
  • ajout d'un exemple de ce filtre dans le squelette de démo, qu'on passe en XHTML Basic 1.1 pour l'occasion.
Location:
_plugins_/rainette/branches/v1
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/rainette/branches/v1/demo/rainette.html

    r76827 r77039  
    11#CACHE{1800}
    2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
     2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN"
     3        "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
     4<html xml:lang="#LANG" lang="#LANG" xmlns="http://www.w3.org/1999/xhtml">
    45<head>
     6<meta http-equiv='Content-Type' content='text/html; charset=#CHARSET' />
    57        <title>Rainette - Demo</title>
    6         #INSERT_HEAD
     8[
     9<link rel="stylesheet" href="#CHEMIN{agenda.css}" type="text/css" />
     10<style type='text/css'>
     11(#ENV{ville, FRXX0076}|rainette_croaaaaa_previsions_css)
     12</style>]
     13 #INSERT_HEAD
    714</head>
    815<body style="color: #000000;font-family: Arial,Helvetica,sans-serif;font-size: 11px;margin: auto;width: 640px;">
    9         <span style="float: left; margin-right: 20px;">
     16        <div style="float: left; margin-right: 20px;">
    1017                <img height="32" width="32" title="Plugin Rainette" alt="Plugin Rainette" src="#CHEMIN{rainette-64.png}"/>
    11         </span>
    12         <h1 style="margin-bottom: 20px; color: #798F74;">PLUGIN RAINETTE[ \((#PLUGIN{RAINETTE, version})\)]</h1>
     18        </div>
     19        <h1 style="margin-bottom: 20px; color: #798F74;">PLUGIN RAINETTE[ ((#PLUGIN{RAINETTE, version}))]</h1>
    1320        <p style="font-size: 12px;">Pour appeler la page de demo:</p>
    1421        <ul>
     
    1825        <p style="font-size: 12px;">Pour chercher le code d'une ville composer l'url:</p>
    1926        <ul><li><strong>http://xoap.weather.com/search/search?where=nom_de_la_ville</strong></li></ul>
    20         <br /><br />
    2127       
    22         <div id="#ENV{ville, FRXX0076}">
     28        <div id="#ENV{ville, FRXX0076}" style='margin-top:5em'>
    2329                <p id='rainette_infos' style="font-size: 12px">&gt;&gt;&nbsp;Utilisation du mod&eacute;le <strong>rainette_infos</strong></p>
    2430                [(#MODELE{rainette_infos,code=#ENV{ville, FRXX0076},sous_modele=infos_ville})]
    25                 <br clear="all"/><br /><br />
     31                <br style='clear:both' /><br /><br />
    2632                <p style="font-size: 12px;">&gt;&gt;&nbsp;Utilisation de la balise <strong>RAINETTE_INFOS</strong></p>
    2733                <ul>
     
    3238                        <li>Appel sans argument, on renvoie une chaine vide:&nbsp;[<strong>(#RAINETTE_INFOS)</strong>]</li>
    3339                </ul>
    34                 <br clear="all"/><br /><br />
     40                <br style='clear:both' /><br /><br />
    3541                <p id='rainette_conditions' style="font-size: 12px">&gt;&gt;&nbsp;Utilisation du mod&eacute;le <strong>rainette_conditions</strong></p>
    3642                [(#MODELE{rainette_conditions,code=#ENV{ville, FRXX0076},sous_modele=conditions_tempsreel})]
    37                 <br clear="all"/><br /><br />
     43                <br style='clear:both' /><br /><br />
    3844                <p style="font-size: 12px">&gt;&gt;&nbsp;Utilisation du mod&eacute;le <strong>rainette_previsions</strong>, pour le jour courant (jour=0, type=1_jour, sous-modele=previsions_2x12h)<br />
    3945                Avant 14h00 on affiche jour et nuit, apr&egrave;s 14h00 on affiche nuit et le lendemain matin</p>
    4046                [(#MODELE{rainette_previsions,code=#ENV{ville, FRXX0076},type=1_jour,jour=0,sous_modele=previsions_2x12h})]
    41                 <br clear="all"/><br /><br />
     47                <br style='clear:both' /><br /><br />
    4248                <p id='rainette_previsions_2x12' style="font-size: 12px">&gt;&gt;&nbsp;Utilisation du mod&eacute;le <strong>rainette_previsions</strong>, pour le surlendemain (jour=2, type=1_jour, sous-modele=previsions_2x12h)</p>
    4349                [(#MODELE{rainette_previsions,code=#ENV{ville, FRXX0076},type=1_jour,jour=2,sous_modele=previsions_2x12h})]
    44                 <br clear="all"/><br /><br />
     50                <br style='clear:both' /><br /><br />
    4551                <p id='rainette_previsions_24' style="font-size: 12px">&gt;&gt;&nbsp;Utilisation du mod&eacute;le <strong>rainette_previsions</strong>, pour les jours &agrave; venir (jour=3, type=x_jours, sous-modele=previsions_24h)</p>
    4652                [(#MODELE{rainette_previsions,code=#ENV{ville, FRXX0076},type=x_jours,jour=5,sous_modele=previsions_24h})]
    4753        </div>
     54        <div id="agenda-#ENV{ville, FRXX0076}">
     55                <p  style="font-size: 12px">&gt;&gt;&nbsp;Utilisation du filtre <strong>rainette_previsions_css</strong></p>
     56                <br style='clear:both' />
     57                <div class="page_agenda"><BOUCLE_mois(ARTICLES){agenda date, mois, #ENV{annee}, #ENV{mois}}>[
     58                        (#DATE|agenda_memo{#DESCRIPTIF,#TITRE,#URL_ARTICLE,calendrier-couleur[(#ID_SECTEUR|modulo{14,1})]})]</BOUCLE_mois>[(#DATE|
     59                        agenda_affiche{<:aucun_article:>, 'mois'})
     60                        ]<//B_mois>
     61                </div>
     62        </div>
    4863</body>
    4964</html>
  • _plugins_/rainette/branches/v1/inc/rainette_filtres.php

    r77033 r77039  
    1313function rainette_icone_meteo($code_icon, $taille='petit', $chemin='', $extension="png"){
    1414
    15         return rainette_icone(code2icone($code_icon),
    16                         rainette_resume_meteo($code_icon),
    17                         $chemin,
    18                         $extension,
    19                         $taille);
    20 }
    21 
    22 function rainette_icone($nom, $texte, $chemin='', $extension="png", $taille=''){
    23 
     15        list($src, $w, $h) = rainette_icone(code2icone($code_icon), $chemin, $extension, $taille);
     16        if (!$src) return '';
     17        $r = attribut_html(rainette_resume_meteo($code_icon));
     18        return "<img src='$src' alt='$r' title='$r' width='$w' height='$h' />";
     19}
     20
     21function rainette_icone($nom, $chemin='', $extension='', $taille='', $size=true){
    2422        if (!$chemin) $chemin = _RAINETTE_ICONES_PATH.$taille.'/';
    25         $file = $nom . '.' . $extension;
     23        $file = $nom . '.' . ($extension ? $extension : 'png');
    2624        // Le dossier personnalise ou le dossier passe en argument
    2725        // a-t-il bien l'icone requise ?
     
    3028        // Non, on prend l'icone par defaut dans le repertoire img_meteo/
    3129                $img = find_in_path($file, 'img_meteo/'.$taille.'/');
    32                 if (!$img)  return ''; //???
    33         }
    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 />";
     30                if (!$img) return array('',0,0); //???
     31        }
     32
     33        @list($w, $h) = $size ? getimagesize($img) : array();
     34        return array($img, intval($w), intval($h));
    3735}
    3836
     
    7472        if ($methode == 'symbole')
    7573                return _T('rainette:tendance_symbole_'.$tendance_en);
    76         return rainette_icone($tendance_en, _T('rainette:tendance_texte_'.$tendance_en), $chemin, $extension);
     74        list($src, $w, $h) = rainette_icone($tendance_en, $chemin, $extension);
     75        if (!$src) return '';
     76        $r = attribut_html( _T('rainette:tendance_texte_'.$tendance_en));
     77        return "<img src='$src' alt='$r' title='$r' width='$w' height='$h' />";
    7778}
    7879
     
    166167        return $texte;
    167168}
     169
     170/**
     171 * Charger le fichier des previsions meteos
     172 * et retourne une feuille de styles,
     173 * un style ayant pour selecteur #D$annee-$mois-$jour sur 8 chiffres
     174 * et pour propriete un background-url sur l'icone de la prevision.
     175 *
     176 * @param string $code_meteo
     177 * @return string
     178 */
     179function rainette_croaaaaa_previsions_css($code_meteo){
     180        include_spip('inc/rainette_utils');
     181
     182        $texte = $vus = array();
     183        lire_fichier(charger_meteo($code_meteo, 'previsions'), $previsions);
     184        foreach(unserialize($previsions) as $j => $prevision) {
     185                if (empty($prevision['date'])) continue;
     186                $icone = code2icone($prevision["code_icone_jour"]);
     187                list($src,,) = rainette_icone($icone, '', '', 'petit', false);
     188                if ($src) {
     189                        $src = "{ background: url($src) }";
     190                        $sel = "#D" . $prevision['date'];
     191                        // Si deja vu, partager pour reduire la feuille
     192                        $k = array_search($src, $vus);
     193                        if (!$k) {
     194                                $vus[$j] = $src;
     195                                $texte[$j] = "$sel $src";
     196                        } else {
     197                                $texte[$k] = "$sel, " . $texte[$k];
     198                        }
     199                }
     200        }
     201        return join("\n", $texte);
     202}
    168203?>
  • _plugins_/rainette/branches/v1/plugin.xml

    r77031 r77039  
    22        <nom>Rainette</nom>
    33        <auteur>Cedric Morin, Eric Lupinacci, Emmanuel Saint-James, Anne-lise Martenot</auteur>
    4         <version>1.5.1</version>
    5         <etat>stable</etat>
     4        <version>1.5.2</version>
     5        <etat>test</etat>
    66        <licence>GNU/GPL</licence>
    77        <slogan>La m&#233;t&#233;o au quotidien</slogan>
Note: See TracChangeset for help on using the changeset viewer.