2. Les choix techniques
2.1 Organisation générale
2.1.1 Les templates
La programmation se fait très simplement par des modèles de fichiers html. En plus des commandes spécifiques à HTMLDB, le langage Perl5 est directement utilisable au sein de ces htmls. Chaque template peut être utilisé pour n'importe quel flux. Pour faciliter la compréhension il faut imaginer ces modèles comme des décors (intelligents) qui accompageront les données en provenance ou allant vers les bases de données.
Voici les différents types de modèles de fichier html.
Fichier modèle saisie d'enregistrement. Ce type de modèle peut contenir des contrôles de validité.
Fichier modèle d'erreur de saisie.
Fichier modèle de format d'un enregistrement de la base.
Fichier modèle d'erreur de saisie.
2.1.2 Les flux
Il faut distinguer plusieurs flux.
Le flux entrant HTTP e.g. les données saisies par le client.
Le flux sortant HTTP e.g. message d'erreur, confirmation d'opération , listing de base de données.
Le flux entrant sur la base de données e.g. modification de la base de données.
Le flux sortant de la base de données e.g. le ou les enregistrements qui seront extraits de la base de données et qui seront redirigés vers le flux sortant HTTP.
Bien sûr il est possible d'organiser toute combinaisons des flux ainsi un nouvel enregistrement est ajouté à une base en envoyant dans le flux entrant de la base son flux sortant ajouté du flux entrant http contenant les informations du nouvel enregistrement.
2.1.3 Appel de htmldb
Chaque opérateur est défini par un caractère majuscule et un template est défini par un caractère minuscule. Le template s'applique à l'opérateur précédent et suit immédiatement l'opérateur. Les opérateurs sont spécifiques à un flux et peuvent avoir différents fonctionnement définis après le caractère spécifiant le template. Si un fichier template n'existe pas dans un répertoire, il sera recherché dans le niveau superieur du répertoire, ce qui permet des héritages de templates et donc d'avoir des templates communs à plusieurs base de données.
2.1.3.1 Dans un modèle de formulaire
D'abord il faut préciser le nom de la base ainsi.
<input type=hidden name="file" value="../usr/clients.htm">
Ce qui veut dire que tous les fichiers de type ../usr/clients?*.htm constituent la base de données.
Tous les templates seront définis avec ../usr/?clients.tpl où ? sera le caractère définissant le template.
Ensuite suivant les options sélectionnées par l'utilisateur htmldb plusieurs types d'appel peuvent être générés.
<INPUT TYPE="SUBMIT" name="action-gAvMvpHs" Value="Save">
g
La base est un ensemble de fichier.
Av Le flux entrant HTTTP sera ajouté au flux sortant au travers d'un modèle qui vérifira la validité des données.
Mvp Le flux sortant de la base de données sera redirigé (p) vers le flux entrant de la base de données (patch) au travers du template v.
Hs Le flux sortant HTTTP utilisera le template s qui contiendra l'accusé de modification ou un message d'erreur.
<INPUT TYPE="SUBMIT" name="action-gMvdspHd" Value="Del">
Ici il n'y a pas de flux entrant http. Le flux sortant de la base de donnée sera redirigé sur le flux entrant de la base au travers du template v . A l'opérateur
M
sont ajouté d pour delete et s pour select. Le switch s permet de sélectionner des enregistrements dans la base.
>
HtmlDB Copyright (c) 98 Document en cours de rédaction.
Guy Coslado