Code source du fichier pages-doc/tabevol.html

<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&nbsp;:<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&nbsp;:<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&nbsp;:<br>
      <ul>
          <li>la table, à la place de la ligne <tt>XXXTABLE</tt></li>
          <li>le menu à la place de la ligne <tt>XX&#88;MENU</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&nbsp;()</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&nbsp;:<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&nbsp;:<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&nbsp;:<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&nbsp;:<br>
!vsource exemples-code/struct-evol-reg.html
      Cette page comporte 3 zones&nbsp;:<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&nbsp;: <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&nbsp;:<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&nbsp;:<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&nbsp;:<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>