<html> <head> <title>Phpcovid : Tableaux d'évolution de la vaccination</title> <meta name=author content="Bernard Chardonneau"> <meta name=copyleft content="Logiciel et données publiés dans le domaine public"> <meta name=robots content="noindex,follow"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link href="css/misenpage.css" rel="stylesheet" type="text/css"> <link href="css/styles.css" rel="stylesheet" type="text/css"> </head> <body> <div id="contenu"> <h1>Tableaux d'évolution de la vaccination</h1> <h2>Tableau d'évolution générale</h2> <h3>Le modèle de fichier HTML et le fichier CSS</h3> C'est le cas le plus simple. Le script PHP va afficher une table qui indique l'évolution de la vaccination pour l'ensemble de la population française, sans distinction de classe d'âge, ni tout autre critère de sélection.<br> <br> C'est donc toujours le même type de table qui sera affiché.<br> <br> La structure du modèle de fichier HTML utilisé est simple :<br> !vsource exemples-code/table-evol-gen.html Comme la quasi totalité des modèles de page HTML de ce site, il fait appel au fichier <tt>misenpage.css</tt> !affiche css/misenpage.css La page est découpée en 2 zones :<br> <ul> <li>le menu, à gauche sur toute la hauteur de la page</li> <li>le contenu, sur le reste de la largeur et sur toute la hauteur</li> </ul> <h3>Le script PHP</h3> Le script PHP va générer la partie variable du contenu de la page, c'est à dire :<br> <ul> <li>la table, à la place de la ligne <tt>XXXTABLE</tt></li> <li>le menu à la place de la ligne <tt>XXXMENU</tt></li> </ul> Pour le menu, c'est toujours pareil. On va donc juste s'intéresser à la table.<br> <br> Après avoir copié l'entête de la page HTML et s'être positionné dans la zone contenu, on vérifie si le fichier <tt>vacsi-a-fra.csv</tt> (évolution de la vaccination par classe d'âge) et les fichiers dérivés sont à jour. Si nécessaire, on les actualise par un appel de la fonction <tt>testmaj_a_fra ()</tt><br> <br> On n'a pas besoin du fichier <tt>vacsi-a-fra.csv</tt> (il servira pour générer des graphiques), mais on va utiliser une partie des données qu'il contient et qui est mémorisé dans le fichier <tt>vacsi-age-ta.csv</tt> (synthèse de l'évolution de la vaccination tous âges confondus à raison d'une information tous les 10 jours, normalement, le 1<sup>er</sup>, 11<sup>ème</sup> et 21<sup>ème</sup> jour de chaque mois, plus l'information du dernier jour disponible.<br> !vsource exemples-code/acces-vacsi-age-ta.php Le contenu de ce fichier est presque ce qu'il faut pour générer la table. Il suffit de franciser les nombres décimaux, de rajouter des symboles % et de mettre les données au format HTML.<br> !vsource exemples-code/affiche-table-evol.php Ce traitement est identique à celui expliqué dans la page <a href="voir.php?page=tabjour">Tableaux de vaccination à ce jour</a><br> <br> <h2>Autres tableaux d'évolution de la vaccination</h2> Pour les autres tableaux d'évolution de la vaccination :<br> <ul> <li>évolution par classe d'âge</li> <li>évolution par région</li> <li>évolution par département d'outre-mer</li> </ul> Plusieurs tables seraient nécessaires pour représenter la totalité des éléments de chaque catégorie. Et comme chaque table comporte 3 lignes de plus chaque mois (sauf en ce moment pour les DOM pour lesquels 11 mois sont mémorisés), out afficher sur la même page web prendrait un grand nombre de lignes.<br> <br> On a donc recours à un formulaire pour demander à l'utilisateur quelle table de la catégorie qu'il a choisi, il veut voir.<br> <br> De ce fait, il va y avoir 2 cas à traiter par le script PHP <ul> <li>l'utilisateur n'a pas encore choisi de table</li> <li>l'utilisateur a choisi une table qu'il faut afficher, mais ensuite, il doit pouvoir en sélectionner une autre.</li> </ul> <h3>Les modèles de fichier HTML et les fichiers CSS</h3> On va utiliser 2 modèles de fichiers HTML, un pour chaque cas.<br> <br> En prenant comme exemple l'évolution de la vaccination par région, le premier modèle de fichier de nom <tt>table-evol-select-reg.html</tt> a la structure suivante :<br> !vsource exemples-code/struct-evol-select-reg.html Il utilise les mêmes fichiers CSS que les autres pages du site et va permettre de générer une page avec en partie gauche le menu et en partie droite une liste déroulante permettant de sélectionner la région.<br> <br> La liste des régions possibles sera générée par le script PHP à la place de la ligne <tt>XXXOPTIONS</tt><br> <br> La partie droite de la page aura l'aspect visuel suivant :<br> <br> <iframe src="exemples-code/iframe-evol-select-reg.html" width="650" height="250"></iframe><br> <br> Une fois la région sélectionnée, une autre page est affichée selon le modèle suivant :<br> !vsource exemples-code/struct-evol-reg.html Cette page comporte 3 zones :<br> <ul> <li>barre_haut : situé en haut de la page du coté droit. Elle contient la zone de sélection d'une région (pour pouvoir en choisir une autre)</li> <li>contenu : situé sur la partie droite de la page et sur la partie restante en hauteur. Elle contient la table de la région sélectionnée</li> <li>menu : situé sur la partie gauche de la page et sur toute la hauteur</li> </ul> La structure de la page étant différente, on fait appel à un autre fichier CSS : <tt>misenpage2.css</tt> !affiche css/misenpage2.css <h3>Le script PHP</h3> Nous continuons de prendre comme exemple l'évolution de la vaccination par région.<br> <br> Le premier travail du script PHP consiste à vérifier si une région a déjà été sélectionnée. En fonction de la réponse, il choisira le bon modèle de fichiers HTML.<br> !vsource exemples-code/recup-regsel.php Ensuite, on recopie le début du fichier HTML jusqu'à l'endroit où il faut rajouter la liste d'options dans le formulaire.<br> !vsource exemples-code/posit-option.php Dans le cas des régions, on va utiliser 2 tableaux :<br> <ul> <li>un qui contient la liste des codes de régions utilisés dans les noms des fichiers csv locaux,</li> <li>un qui contient les noms de ces régions.</li> </ul> !vsource exemples-code/tabregions.php Le principe est strictement le même pour les départements d'outre-mer.<br> <br> Dans le cas des classes d'âge, seul le premier tableau (codes des classes d'âge sur 2 chiffres) est présent. Le texte à générer est fabriqué de la même manière que pour le tableau de vaccination par classe d'âge à ce jour :<br> !vsource exemples-code/gen-cl-age.php avec <tt>$agemin</tt> qui vaut 0 la première fois.<br> <br> On va alors utiliser les deux tableaux pour générer la liste permettant de sélectionner une région (ou un DOM, ou une classe d'âge).<br> !vsource exemples-code/gen-options.php Dans le cas où l'une des régions a été sélectionnée, le mot clé <tt>selected</tt> dans la ligne HTML correspondante fera que c'est le nom de cette région qui apparaîtra par défaut dans le menu déroulant.<br> <br> Par exemple, si la région sélectionnée est "Bourgogne-Franche-Comté", le code HTML du menu déroulant sera :<br> !vsource exemples-code/select-region.html Ensuite, si une région a été sélectionnée, il faut afficher la table d'évolution de la vaccination. Pour cela, on commence par vérifier si les fichiers csv locaux concernés doivent être mis à jour. Puis on ouvre en lecture le fichier csv qui contient la table à afficher.<br> !vsource exemples-code/acces-vacci-evol-reg.php L'affichage de la table se fait strictement de la même manière que pour le tableau d'évolution générale de la vaccination (voir plus haut pour les détails).<br> <br> Ensuite, qu'il y ait eu ou non une table à afficher, on termine la page HTML en générant le menu qui apparaîtra du coté gauche.<br> <br> </div> <div id="menu"> XXXMENU </div> </body> </html>