Rainette v1, la méteo au quotidien

Ce plugin permet d’afficher les conditions et les prévisions météorologiques d’une ville donnée à partir du flux xml fourni par le site weather.com®.

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 :

Répertoire des icônes personnalisés
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
Intervalle de mise à jour des prévisions météo
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
Intervalle de mise à jour des prévisions météo
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
Nombre de jour de prévisions
variable _RAINETTE_JOURS_PREVISION
défaut 10
valeurs [1..10]
Système de mesure
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.

Modèle rainette_conditions
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.

Modèle rainette_previsions sur une journée
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.

Modèle rainette_previsions sur plusieurs jours
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).

Modèle rainette_infos
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 :

Balise #RAINETTE_INFOS
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 :

  1. appeler un filtre unique appliqué à un code météorologique - rainette_croaaaaa_conditions(), rainette_croaaaaa_previsions(), rainette_croaaaaa_infos() - qui enchaînera :
  2. la récupération des données météorologiques pour la période choisie
  3. 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

Description des filtres et environnements des 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.

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

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.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom