Description
Synopsis
Le plugin Rainette est destiné à afficher les données météorologiques d’une ville choisie par son code météo standard (FRXX0076 pour Paris, par exemple). Les données météorologiques sont fournies par le site weather.com®.
Le plugin propose d’afficher, d’une part, les conditions courantes, rafraîchies toutes les 30mn, et, d’autre part, les prévisions sur plusieurs jours, rafraîchies toutes les 2h.
L’affichage des données météorologiques se fait au travers de modèles, ce qui permet l’inclusion dans un squelette ou dans un article. Cet affichage est totalement paramétrable (icônes, libellés, unités, présentation...).
Une page « Météo » est aussi disponible pour le squelette ZPIP, voir l’article Rainette v1 et les squelettes Z pour plus de détails.
Il est aussi possible d’afficher des informations sur la ville observée via un modèle spécifique ou une balise.
Exclusions
La recherche du code météo des villes et la gestion des dites villes ne fait pas partie du plugin. Ces fonctions doivent être développées dans les squelettes ou plugins qui utilisent Rainette.
Crédits
Rainette s’inspire dans son principe du plugin Grenouille mais ne stocke aucune information en base de données ni ne gère le choix des villes. Merci donc à Artégo et Touti pour la grenouille originelle.
Installation
Se référer à l’installation d’un plugin sur spip.net. L’ensemble des sources est installé dans plugins/. Rien n’est créé en base de données.
Le plugin est déposé sur la zone et peut être téléchargé en zip ou en SVN.
Désinstallation
Désactiver le plugin dans la page d’administration de l’espace privé. Ensuite supprimer le dossier du plugin Rainette dans plugins/.
Pour enlever toutes traces du plugin il est possible de supprimer aussi le cache du plugin à l’emplacement tmp/cache/rainette/.
Configuration
Le plugin propose des paramètres de configuration, définis dans rainette_options.php, et qui s’appliquent à l’ensemble des villes observées par Rainette (aucune configuration CFG n’est proposée). Ce sont :
variable | _RAINETTE_ICONES_PATH |
défaut | ’rainette/’ |
valeurs | Ce sous-répertoire est à créer dans le dossier squelettes/ ou dans le dossier du plugin utilisateur. Il accueille alors les icônes de temps personnalisés |
variable | _RAINETTE_RELOAD_TIME_PREVISIONS |
défaut | 2*3600 (soit 2 heures) |
valeurs | Ce que l’on veut mais il n’y a aucun intérêt à choisir une valeur inférieure à 2 heures car c’est la récurrence minimale de weather.com |
variable | _RAINETTE_RELOAD_TIME_CONDITIONS |
défaut | 1800 (soit 30 minutes) |
valeurs | Ce que l’on veut mais il n’y a aucun intérêt à choisir une valeur inférieure à 30 minutes car c’est la récurrence minimale de weather.com |
variable | _RAINETTE_JOURS_PREVISION |
défaut | 10 |
valeurs | [1..10] |
variable | _RAINETTE_SYSTEME_MESURE |
défaut | ’m’ |
valeurs | ’m’ pour métrique, ’s’ pour standard (impérial US) |
Utilisation
Une page de démo demo/rainette.html est fournie avec le plugin et illustre l’ensemble des cas d’utilisation décrit ci-après. La page doit être appelée par l’url http://monsite/spip.php?page=demo/rainette&ville=frxxnnnn
, où frxxnnnn représente le code météo de la ville observée (Paris par défaut).
Insertion de la balise #INSERT_HEAD
Le plugin utilise des CSS pour personnaliser ses affichages. Pour bénéficier de ces styles il est nécessaire d’insérer la balise #INSERT_HEAD dans le header de vos pages. Rainette intégrera alors automatiquement les styles rainette.css dans le header.
Méthodes d’affichage des données météorologiques
Le plugin propose uniquement deux modèles à inclure dans les squelettes ou les articles. Ils permettent d’afficher l’ensemble des données météorologiques prévisionnelles ou temps réel disponibles. Les possibilités de paramétrage de ces modèles font qu’il n’est point besoin de les modifier pour personnaliser la présentation des données (cf. paragraphe Personnalisation).
— rainette_previsions : modèle d’affichage des données prévisionnelles pour une journée ou plusieurs jours
— rainette_conditions : modèle d’affichage des données temps réel
L’intégration de ces modèles dans un squelette se fait, par exemple, de la manière suivante :
[(#MODELE{rainette_previsions, code=FRXX0023, type=1_jour, jour=1, sous_modele=previsions_2x12h})]
[(#MODELE{rainette_previsions, code=FRXX0023, type=x_jours, jour=5, sous_modele=previsions_24h})]
[(#MODELE{rainette_conditions, code=FRXX0023, sous_modele=conditions_tempsreel})]
et dans le texte d’un article :
<rainette_previsions|code=FRXX0023|type=x_jours|jour=3|sous_modele=previsions_2x12h>
<rainette_conditions|code=FRXX0023|sous_modele=conditions_tempsreel>
Méthodes d’affichage des informations d’une ville
Le plugin propose également un modèle paramétrable (cf. paragraphe Personnalisation) et une balise pour afficher les informations générales sur la ville observée.
— rainette_infos : modèle d’affichage des informations sur une ville
— #RAINETTE_INFOS : balise d’affichage des informations sur une ville
L’intégration du modèle ou de la balise dans un squelette se fait, par exemple, de la manière suivante :
[(#MODELE{rainette_infos, code=FRXX0023, sous_modele=infos_ville})]
#RAINETTE_INFOS{FRXX0023, ville}
#RAINETTE_INFOS{FRXX0023, longitude}
et dans le texte d’un article :
<rainette_infos|code=FRXX0023|sous_modele=infos_ville>
Affichage des conditions temps réel
Rainette propose en premier lieu d’afficher les données météorologiques de la journée en cours, en utilisant le modèle rainette_conditions. Les données collectées et l’affichage par défaut sont les suivants :
— les températures, mesurées et ressenties,
— le statut météorologique, libellé et icône,
— la pression et sa tendance,
— la vitesse du vent et sa direction,
— le pourcentage d’humidité et le point de rosée,
— la visibilité,
— la station météorologique d’observation (qui peut différer de la ville) et la date de dernière mise à jour des données.
1. | code | obligatoire, désigne le code météo standard de la ville |
2. | sous_modele | facultatif, détermine la présentation des données temps réel. La valeur par défaut correspond au sous-modèle fourni par Rainette, à savoir, conditions_tempsreel. |
Affichage des prévisions sur une journée
Rainette propose, d’autre part, d’afficher les prévisions météorologiques d’une journée, en utilisant le modèle rainette_previsions. Les données sont collectées par demi-journée, à savoir, « jour » et « nuit ». L’affichage par défaut présente donc les informations dans un tableau à deux colonnes, une pour chaque demi-journée.
Dans le cas où l’on observe les prévisions du jour courant, les informations « jour » ne sont accessibles que jusqu’à 14h00. À partir de cette heure, les informations « jour » sont positionnées à N/D (non déterminée). Pour éviter de présenter des informations sans intérêt, le modèle par défaut de Rainette remplace à partir de 14h00, les informations « jour » et « nuit » par les informations « nuit » et « demain matin ».
Les données collectées par demi-journée et les affichages par défaut (jour courant et surlendemain) sont les suivants :
— la température (max. pour le « jour », min. pour la « nuit »),
— le statut météorologique, libellé et icône,
— la vitesse du vent et sa direction,
— le pourcentage d’humidité et le risque de précipitation,
— l’heure de lever (« jour ») ou du coucher (« nuit ») du soleil,
et la date de dernière mise à jour des données.
1. | code | obligatoire, désigne le code météo standard de la ville |
2. | type | obligatoire, détermine le type de prévisions, sur une journée ou sur plusieurs jours. Dans le cas présent, type doit prendre la valeur 1_jour |
3. | jour | facultatif, dans le cas présent (type=1_jour), détermine le jour à observer : 0 pour le jour courant, 1 pour le lendemain... La valeur par défaut est 0, la valeur maximale _RAINETTE_JOURS_PREVISION-1 |
4. | sous_modele | facultatif, détermine la présentation des données prévisionnelles d’une journée. La valeur par défaut correspond au sous-modèle fourni par Rainette, à savoir, previsions_2x12h |
Affichage des prévisions sur plusieurs jours
Rainette propose, aussi, d’afficher les prévisions météorologiques sur plusieurs jours, en utilisant également le modèle rainette_previsions. Les données sont aussi collectées par demi-journée, à savoir, « jour » et « nuit ». Cependant, l’affichage par défaut présente un résumé des informations « jour » ou « nuit ».
En effet, dans le cas où l’on observe les prévisions du jour courant, les informations « jour » n’étant accessibles que jusqu’à 14h00, le modèle par défaut de Rainette remplace à partir de 14h00, les informations « jour » par les données « nuit ». Par contre, dans le cas où l’on observe les prévisions des jours suivants, seules les informations « jour » sont présentées.
Les données collectées par demi-journée ainsi que l’affichage par défaut sont les suivants :
— la température (max. pour le « jour », min. pour la « nuit »),
— le statut météorologique, libellé et icône,
— la vitesse du vent et sa direction,
— le pourcentage d’humidité et le risque de précipitation,
— l’heure de lever (« jour ») ou du coucher (« nuit ») du soleil,
et la date de dernière mise à jour des données.
1. | code | obligatoire, désigne le code météo standard de la ville |
2. | type | obligatoire, détermine le type de prévisions, sur une journée ou sur plusieurs jours. Dans le cas présent, type doit prendre la valeur x_jours |
3. | jour | facultatif, dans le cas présent (type=1_jour), détermine le nombre de jours à observer. La valeur par défaut est la valeur maximale, soit _RAINETTE_JOURS_PREVISION |
4. | sous_modele | facultatif, détermine la présentation des données prévisionnelles sur plusieurs jours. La valeur par défaut correspond au sous-modèle fourni par Rainette, à savoir, previsions_24h |
Affichage des informations sur la ville observée
Rainette permet d’afficher des informations succinctes sur la ville observée, informations qui sont incluses dans les données transmises par weather.com. Ces informations peuvent être affichées, soit en utilisant le modèle rainette_infos, soit en utilisant la balise #RAINETTE_INFOS.
Les données disponibles pour une ville et l’affichage du modèle par défaut sont les suivantes :
— le code météo et le nom standard de la ville,
— sa longitude et latitude,
— et la zone d’appartenance (celle des DVD).
1. | code | obligatoire, désigne le code météo standard de la ville |
2. | sous_modele | facultatif, détermine la présentation des données de la ville. La valeur par défaut correspond au sous-modèle fourni par Rainette, à savoir, infos_ville |
Ces mêmes informations peuvent être manipulées avec la balise #RAINETTE_INFOS. l’intérêt de cette balise est de pouvoir introduire le nom ou les coordonnées de la ville à loisir dans les modèles météorologiques temps réel ou prévisionnels. La description de la balise est la suivante :
1. | code | obligatoire, désigne le code météo standard de la ville |
2. | information | facultatif, détermine l’information requise pour la ville choisie. Les valeurs possibles sont : code_meteo (sans intérêt, correspond déjà à l’argument 1), ville, longitude, latitude et zone Si cet argument est absent, la balise retourne le tableau sérialisé des données de la ville |
Personnalisation
Si l’affichage proposé par défaut par Rainette ne convient pas il existe plusieurs méthodes pour le personnaliser.
Les CSS
Si on ne souhaite pas toucher aux sous-modèles previsions_2x12h, previsions_24h et conditions_tempsreel, il suffit de modifier les CSS associées à ces modèles. En effet, chaque donnée météo est incluse dans une structure HTML associée à un style précis. Il suffit donc de surcharger ces styles pour adapter l’affichage.
Les modèles
Le mode opératoire des modèles rainette_conditions, rainette_previsions et rainette_infos est le suivant :
- appeler un filtre unique appliqué à un code météorologique - rainette_croaaaaa_conditions(), rainette_croaaaaa_previsions(), rainette_croaaaaa_infos() - qui enchaînera :
- la récupération des données météorologiques pour la période choisie
- et l’affichage des données collectées en évaluant le sous-modèle choisi.
[(#REM)<!-- modèle rainette_conditions
Afficher les données météo temps reel pour le code #ENV{code} avec le sous-modèle #ENV{sous_modele}
-->]
[(#ENV{code}|rainette_croaaaaa_conditions{#ENV{sous_modele,conditions_tempsreel}})]
Il n’y a donc pas d’intérêt à modifier ces modèles sauf si l’on désire changer le contexte d’évaluation des sous-modèles (cad, la liste des informations météorologiques transmise au sous-modèle). Dans ce cas, il faudra créer un nouveau filtre et un nouveau modèle pour Rainette.
Les sous-modèles
Toutefois, l’affichage étant entièrement géré par les sous-modèles, les personnalisations les plus fréquentes passeront par la surcharge ou la création de sous-modèles à l’instar de previsions_conditions, previsions_24h, previsions_2x12h et infos_ville. Ces sous-modèles gèrent l’affichage des unités, des libellés et icônes, mais aussi le fonctionnement jour/nuit.
Pour créer de nouveaux modèles, il est donc nécessaire de connaître l’environnement exact des données passé au sous-modèle (#ENV) et les filtres nécessaires pour présenter les informations (par exemple, les unités).
Les icônes de temps
Par défaut, Rainette utilise les icônes de temps du pack Sticker provenant du site liquidweather.net. Ces icônes sont stockés dans le répertoire img_meteo/petit/ ou img_meteo/grand/ suivant leur taille, et se nomment nn.png, où nn correspond à un numéro entre 0 et 47 ou à na. Les grands icônes sont utilisés dans les conditions et prévisions d’une journée tandis que les petits icônes sont utilisés dans les prévisions à plusieurs jours.
Il est possible de personnaliser les icônes en stockant un autre jeu d’icônes dans le sous-dossier _RAINETTE_ICONES_PATH d’un squelette ou d’un plugin. Les filtres d’image de SPIP sont applicables (image_reduire() en particulier).
Vous pouvez trouver de multiples jeux d’icônes en 32x32 (petit) et en 110x110 (grand) sur le net ou créer vous même de nouveaux icônes.
Les items de langue
Les libellés des statuts météorolgiques, les unités, les libellés de tendance de pression, les directions du vent... sont tous des items de langue. Il est donc possible de surcharger ces libellés par des libellés personnalisés.
Recherche des codes météo standard
Rainette ne propose pas d’interface pour la détermination de ces codes. Cependant il est très facile de trouver un code en faisant une interrogation au site weather.com® avec une URL du type :
http://wxdata.weather.com/wxdata/weather/search/search?where=paris
On obtient le flux xml suivant :
<search ver="3.0">
<loc id="FRXX0076" type="1">Paris, 75, France</loc>
<loc id="USAR0433" type="1">Paris, AR</loc>
<loc id="USID0192" type="1">Paris, ID</loc>
<loc id="USIL0920" type="1">Paris, IL</loc>
<loc id="USKY1218" type="1">Paris, KY</loc>
<loc id="USME0309" type="1">Paris, ME</loc>
<loc id="USMI0655" type="1">Paris, MI</loc>
<loc id="USMO0675" type="1">Paris, MO</loc>
<loc id="USMS0280" type="1">Paris, MS</loc>
<loc id="USOH0748" type="1">Paris, OH</loc>
</search>
On sélectionne ensuite le Paris que l’on souhaite, par exemple, la capitale de la France, soit FRXX0076. Les autres villes sont localisées aux États-Unis ;-). On voit donc qu’en parsant le flux XML il est assez simple de renvoyer les informations dans un formulaire de sélection. Une noisette en perspective...
Mises à jour
- 7 Juin 2011 : Mise à jour 1.4.0, avec les modifications suivantes :
- Rainette devient compatible SPIP 3,
- les pages Z du plugin sont maintenant utilisables sous Zpip-dist avec SPIP 2 et Z-Dist avec SPIP 3,
- plugin.xml est revu en prévision de la migration sous paquet.xml (ajout du slogan)
- réorganisation de la page de démo et des css
Todo...
Plus rien sur cette branche v1 qui est remplacée par la Rainette v3+, une évolution majeure.
Discussions par date d’activité
50 discussions
Bonjour,
J’ai un souci avec ce plugin, je travaille en prévisions 2*12h, et sur 2 jours. Ce qui me donne 4 prévisions en tout.
Lorsque j’appelle le plugin dans un squelette, il m’affiche, pour chaque journée, un tableau avec la cellule de gauche contenant les infos du matin et du soir, et la cellule de droite vide. Alors qu’il devrait afficher les infos du matin à gauche, celles du soir à droite.
De toute façon, je souhaite précisément changer cet affichage par défaut, en mettant mes 4 prévisions les unes sous les autres, avec une largeur de 240px maximum. C’est pourquoi je suis très intéressé par ta copie d’écran dans ton article sur les prévisions à 5 jours. La seule différence, c’est que je veux placer mes blocs les uns sous les autres... Aurais-tu le fichier CSS correspondant à tes 5 blocs (du lundi 25 août au vendredi 29 août), car ça me ferait gagner du temps ?
Merci !
Répondre à ce message
Arf, j’avais essayé de surcharger directement le fichier rainette_options.php, alors qu’il suffisait en effet d"intégrer les variables dans mon mes_options.php.
Ca fonctionne, merci du coup de pouce.
Répondre à ce message
J’ai un problème : impossible de surcharger rainette_options.php.
j’ai essayé de le copier + éditer dans :
- squelettes/
- config/
- squelettes/rainette/
rien à faire, c’est toujours celui par défaut du plugin qui est sélectionné.
C’est problématique, parce qu’à chaque mise à jour du plugin, les options vont sauter...
Y-a-t-il un truc que j’ai loupé ?
(spip 2.0.9)
Simon,
As tu bien surchargé les constantes en les redéfinissant dans le fichier config/mes_options.php ? Je suis vraiment étonné sinon car je l’ai souvent fait...
Répondre à ce message
Bonjour,
Je viens de voir qu’il n’y a plus de données transmises par weather.Com au plugin. Y’a t’il eu un changement de version pour le flux sur weather.com ?
Salut
Je le constate en meme temps que toi, j’en parle avec _Eric_
Salut,
J’ai constaté ça depuis hier soir, je ne sais pas d’où cela peut venir. J’attends demain pour voir si ça revient et après on avise.
Bonjour, j’ai le même problème, cela a fonctionné puis un jour les données transmises ont disparues, sans que je change quoi que ce soit au code. Impossible de savoir d’ou cela provient, quelqu’un a une idée ?
Bonjour,
Il faut mettre à jour le plugin avec la dernière version. L’url du flux a été modifiée et donc corrigée dans le plugin.
Répondre à ce message
Ce matin, c’est revenu ! Youpi =D
Répondre à ce message
Bonjour,
Sur le site de weather.com, on donne également le lever et le coucher du soleil. Est il possible de récupérer cette information via rainette ? Et éventuellement l’heure locale ?
Bonjour,
Le lever et le coucher du soleil existe déjà. Ces informations sont fournies dans le modèle
previsions_2x12h.html
. Il est de plus toujours possible de te créer un sous-modèle comme indiqué dans la doc afin d’afficher les informations que tu souhaites.Pour l’heure locale, c’est exacte que cette information n’est pas stockée. Ca pourrait faire l’objet d’une évolution.
Répondre à ce message
Le plus important est d’abord que la ville qui t’interesse soit prise en compte.
Pokhara (200.000 hab) est dispo chez accuweather.com mais pas chez weather.com
Maintenant, il y a plusieurs façons d’afficher les données, par script, ou façon maison comme toi. A chacun son choix.
Le flux xml est peut-être disponible sur accuweather, je ne sais pas. Apparemment il faut payer un abonnement !
S’ils le fournissent gratuitement, alors ton plugin pourrait m’intéresser.
Répondre à ce message
Bonjour,
le nombre de villes du site weather.com est trés limite, il ne trouve pas ma ville de pourtant plus de 200.000 habitants !
J’utilise accuweather.com qui est plus complet, et permet en plus d’afficher via un script gratuit la météo détaillée sur un site.
voir sur www.nepalairsport.org
C quoi ta ville ?
Salut,
Super, c’est chouette ça ! Et donc ? On fait quoi maintenant ?
Si tu avais regardé le plugin en détail tu aurais vu que le but c’était pas d’inclure un script dans un squelette...
Maintenant, si accuweather, renvoie un flux xml plus intéressant que weather.com je suis preneur. Yahoo le fait aussi mais il utilise les mêmes données source...
En tout cas merci du message :p
Répondre à ce message
Salut José,
Je suis étonné car je l’ai sorti en aout dernier et la version 2.0 est sortie en décembre 2008. Par contre, 1.9.2d c’est vieux, la version 1.9.2 la plus à jour doit être la f je crois. Peux tu essayer avec la dernière 1.9.2 et me dire ?
Merci
_Eric_ Non c’est la 1.9.2h la dernière version de 1.9 avec les corrections de sécurité.
Merçi. J’ai actualisé a spip 2.0.8 et tout va bien.
Salut !
Répondre à ce message
Merçi par votre travail, mais je me trouve avec cet erreur :
« Fatal error : Call to undefined function : spip_xml_match_nodes() in /home/pirineos/public_html/plugins/rainette/inc/rainette_utils.php on line 124 »
Il est spip 1.9.2d et le dernier rainette 1.1
Salut !
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |