Module widget_meteo

lemimi
lemimi Messages 470Moderateur

Bonjour vous tous,

Jusqu'ici j'insérais celui-ci via une iframe. Voir ici.*

J'ai donc (presque) réussi à le transformer en module dédié à ZwiiCMS.

La version qui tourne sans problème, dans cette configuration, est ici.

Le mode config admin de ce même module dans cette configuration, ici, pose encore un Schmilblick ☺

Dans un premier temps, j'ai pensé que cela était dû au module inséré dans un tableau, J'ai donc configuré avec la même structure cet autre page comprenant le module annonces, aucun soucis.

Si quelqu'un a une idée pour pousser ce nouveau module à son terme...

Bonne journée... Michel

*Le problème de météo à H+1 au lieu de H, a été résolu :-)

Commentaires

  • lemimi
    lemimi Messages 470Moderateur

    C'est résolu :-) Merci à Mistral pour le coup de main !

    Ce qui se passait :

    En mode admin, la page de configuration du widget (widget/config) est insérée directement dans la cellule d'un tableau de la page visiteur, au lieu de s'afficher seule.

    Le formulaire de configuration est bien présent, mais il est entouré du contenu de la page visiteur (tableau, texte, etc.), ce qui n'est pas le comportement attendu.

    Cause :

    ZwiiCMS ne parvient pas à isoler la vue de configuration du module lorsque celui-ci est inséré dans un tableau ou un container.

    La directive showPageContent est mal interprétée ou ignorée dans ce contexte.           

    Solution :

    Dans la méthode config() de la classe widget_meteo, modification de l'appel à addOutput() pour désactiver explicitement l'affichage du contenu parent et forcer un rendu autonome :

    $this->addOutput([
      'title' => 'Configuration Widget Météo',
      'view' => 'config',
      'showBarEditButton' => true,
      'showPageContent' => false, // Désactive l'affichage du contenu parent
      'template' => 'empty',    // Utilise un template vide si possible
    ]);
    

    Voici la version 1.1 (toujours en test) :


  • fred
    fred Messages 2,481Administrateur

    Salut

    Je teste ce très beau Widget mais tu ne donnes pas d'informations sur ce fichier

    /../../site/data/weather_openmeteo/weather.json'

    Du coup cela ne fonctionne pas.

    Je m'interroge sur ceci :

    $this->addOutput([
      'title' => 'Configuration Widget Météo',
      'view' => 'config',
      'showBarEditButton' => true,
      'showPageContent' => false, // Désactive l'affichage du contenu parent
      'template' => 'empty',    // Utilise un template vide si possible
    ]);
    


    Cette ligne n'est pas nécessaire puisque la valeur vaut false par défaut (core.php 136)

    showPageContent' => false, // Désactive l'affichage du contenu parent
    

    Au premier abord, je suis partagé sur cette ligne, la clé template ne fait pas partie des éléments traités par le routeur.

    'template' => 'empty',    // Utilise un template vide si possible
    

    Après la configuration du widget est vide, donc je ne peux pas en dire plus.

    Fred

    The f....g boss
  • lemimi
    lemimi Messages 470Moderateur
    5 nov. modifié

    Bonjour @fred,

    J'ai préparé un readme où j'indique ce qu'il faut faire... mais c'est mieux si je ne le garde pas pour moi seulement ;-)

    J'y indique notamment :

    🛠️ Configuration
    Paramètres disponibles
    URL de redirection Lien vers une page météo détaillée (laisser vide pour désactiver). | https://mon-site.com/meteo |
    Fichier de données
    Le module lit les données météo depuis : site/data/weather_openmeteo/weather.json
     Ce fichier doit être généré par le module forecast_openmeteo (à installer séparément).
    
    • Je viens de penser qu'il ne serait pas bête d'inscrire cela dans le formulaire de configuration, on ne lit pas toujours les readme !

    Ce module tourne actuellement dans un container ici, et ici dans un tableau à deux colonnes, à la place d'une iframe.

    Avec le readme inclus =>

    J'étais bien content ☺ que cela fonctionne et n'ai donc pas testé sans cette ligne, (ne suis pas allé voir plus loin) :

    showPageContent' => false, // Désactive l'affichage du contenu parent
    

    Bonne soirée à tous... Michel (c'est aussi chez Codeberg ici )

  • fred
    fred Messages 2,481Administrateur

    Bonsoir @lemimi,

    Tout fonctionne parfaitement ! C'est deux modules sont vraiment splendides et bravo pour le codage.

    Je peux te confirmer que ceci est suffisant :

            // Utiliser le système de vues ZwiiCMS
            $this->addOutput([
                'title' => 'Configuration Widget Météo',
                'view' => 'config'
            ]);
    

    En enfin, un petit truc, en sortie de formulaire, c'est la propriété "state" qui définit la couleur de la bannière de confirmation :

                // Redirection avec le système ZwiiCMS
                $this->addOutput([
                    'redirect' => helper::baseUrl() . $this->getUrl(0) . '/config',
                    'notification' => 'Configuration enregistrée',
                    'state' => true,
                ]);
    True : vert
    False : rouge
    Autre valeur : orange
    

    Le return à l'issue du addOutput n'est pas utile.

    Good job Michel !!!

    The f....g boss
  • lemimi
    lemimi Messages 470Moderateur

    Merci @fred :-)

    Suite à un de tes commentaires, j'essaye d'adapter ce module qui fait actuellement appel aux données stockées dans un fichier json et qui a besoin du module forecast_openmeteo pour fonctionner, avec une version complètement autonome avec un appel direct à l'API OpenMeteo.

    Ceci pour les personnes qui n'auraient pas l'utilité d'installer le module de météo complète forecast_openmeteo.

    Un dessin est parfois plus explicite :

    Bonne journée à tous... Michel

  • lemimi
    lemimi Messages 470Moderateur

    Bonjour vous tous,

    La dernière version (1.4) est ici en version autonome, et en test ici et ici.

    Bon dimanche... Michel

  • lemimi
    lemimi Messages 470Moderateur

    Bonjour vous tous,

    La version 1.5 est en ligne sur le Store.

    - Version 1.5 - Amélioration de la détection jour/nuit par lever/coucher du soleil (au lieu de > 6h00 et < 20h00).
      -             Changement émoji lune.
    
Connectez-vous ou Inscrivez-vous pour répondre.