vmlib : librairie PHP pour la génération automatiques de formulaires de saisie

Documents pareils
ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

Publier dans la Base Documentaire

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Installation d'un serveur FTP géré par une base de données MySQL

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Pratique et administration des systèmes

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

Groupe Eyrolles, 2003, ISBN : X

Module pour la solution e-commerce Magento

Manuel du composant CKForms Version 1.3.2

OpenOffice Base Gestionnaire de Base de Données

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

PHP 4 PARTIE : BASE DE DONNEES

Utiliser un CMS: Wordpress

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

Olivier Mondet

PHP 5. La base de données MySql. A. Belaïd 1

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

Intranet d'établissement avec Eva-web Installation configuration sur serveur 2000 ou 2003 Document pour les administrateurs

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

équipement radio Procédure

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

SUPPORT DE COURS / PHP PARTIE 3

Créer et gérer des catégories sur votre site Magento

contact@nqicorp.com - Web :

Configuration de plusieurs serveurs en Load Balancing

TUTORIEL D INSTALLATION D ORACLE ET DE SQL DEVELOPPER TUTORIEL D INSTALLATION D ORACLE...1 ET DE SQL DEVELOPPER...1

I. MySQL : Serveur et SGBD

Formation Webmaster : Création de site Web Initiation + Approfondissement

Principales Evolutions Version

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

1 / Introduction. 2 / Gestion des comptes cpanel. Guide débuter avec WHM. 2.1Créer un package. 2.2Créer un compte cpanel

Création d un formulaire de contact Procédure

Manuel de déploiement sous Windows & Linux

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Stockage du fichier dans une table mysql:

Maarch V1.4

KWISATZ MODULE PRESTASHOP

Manuel d utilisateur 1

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Publication dans le Back Office

Application web de gestion de comptes en banques

Tapez le titre de la page «BASTIA ville méditerranéenne», puis allez deux fois à la ligne à l aide de la touche Entrée.

1. Base de données SQLite

Manuel d utilisateur du site de covoiturage «Etucovoiturage»

CREATION WEB DYNAMIQUE

NOTICE TELESERVICES : Créer mon compte personnel

Apprendre à gérer son serveur web grâce à Windows Server 2008 R2

Guide Numériser vers FTP

Bases de données élémentaires Maude Manouvrier

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

TP JAVASCRIPT OMI4 TP5 SRC

OUAPI Guide d installation Outil d administration de parc informatique. Documentation d installation et de paramétrage

contact@nqicorp.com - Web :

Créer une base de données

Espace pro. Installation des composants avec Firefox. Pour. Windows XP Vista en 32 et 64 bits Windows 7 en 32 et 64 bits

KWISATZ_TUTO_module_magento novembre 2012 KWISATZ MODULE MAGENTO

Thème : Création, Hébergement et référencement d un site Web

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Publier un Carnet Blanc

Peut être utilisée à l intérieur du site où se trouve la liste de référence.

Soyez accessible. Manuel d utilisation du CMS

Documentation module hosting

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

INFORM :: DEMARRAGE RAPIDE A service by KIS

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

04/02/2014 Tutoriel. Lubuntu & glpi. thomas [NOM DE LA SOCIETE]

LISTES DE DISTRIBUTION GÉRÉES PAR SYMPA DOCUMENT EXPLICATIF DE L'INTERFACE WEB À L'INTENTION DES ABONNÉS

Manuel utilisateur du CMS Anan6

2 LES BASES DU HTML 19 Qu est-ce que le HTML? 20 De quand date le HTML? 20 Écrire son propre code HTML 22

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES?

Guide d utilisation 2012

Utilisation de GalaxShare

Guide d'installation sous Windows

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Joomla! Création et administration d'un site web - Version numérique

Les BASES de DONNEES dans WampServer

Campagnes d ings v.1.6

ISPConfig Documentation

Guide d utilisation des services My Office

STATISTICA Version 12 : Instructions d'installation

Cette fonctionnalité est paramétrable et accessible dans le module administration via le menu "Dossier / Administration".

webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09

Architectures web/bases de données

1 Position du problème

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

Gestion Electronique de Document (ECM/GED)

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Transcription:

vmlib : librairie PHP pour la génération automatiques de formulaires de saisie Installation de la version 1.0 Veremes 42, avenue des Jardins 66240 Saint Esteve 04-68-38-65-27 vmlib : librairie PHP pour la génération automatiques de formulaires de saisie version 1.0

Titre du document Emetteur vmlib : librairie PHP pour la génération automatiques de formulaires de saisie Installation de la version 1.0 Veremes Référence commerciale Date de publication 31/10/2005 Nombre de page 11 Auteur Fonction Organisme Téléphone Fax e-mail Visa Date Olivier Gayte Directeur technique Veremes 04-68-38-65-27 olivier.gayte@veremes.com 06/07/200 4 Diffusion Liste des versions et révisions Version Révision Date Objet de la modification 1 0 31/10/2005 Original version 1.0 Page : 2 / 16

Table des matières 1. Fonctionnement général... 4 2. Installation de la librairie vmlib... 6 2.1 Décompacter l archive et lancer le script d installation... 6 2.1.1 Procédure... 6 2.1.2 Test... 6 2.2 Configuration de php.ini... 6 2.2.1 Procédure... 6 2.2.2 Test... 6 2.3 Les fichiers de librairies... 8 2.3.1 Localisation... 8 2.3.2 Description... 8 2.3.3 Utilisation... 9 2.4 L application exemple... 9 2.4.1 Présentation... 9 2.4.2 Configuration... 9 2.4.3 Utilisation... 10 version 1.0 Page : 3 /16

1. Fonctionnement général La librairie vmlib présentée dans ce document est un ensemble de ressources PHP qui permet de générer automatiquement des formulaires de saisie à partir des indications fournies par une base de métadonnées PostgreSql. Cette base décrit la liste des tables devant être mises à jour par les formulaires et les requêtes à utiliser pour accéder aux données. Les principales fonctionnalités de cette librairie sont : Gestion de session Création d'un formulaire de recherche Affichage d'une liste d'enregistrements Affichage d'un enregistrement en mode consultation Affichage d'un enregistrement en mode édition Ajout d'un enregistrement Présentation de liste de référence pour la saisie des champs liés Vérification de la conformité des données saisies (type, valeur nulle...) Suppression d'un enregistrement Les fonctions d'édition (boutons) ne sont visibles que si l'utilisateur dispose du droit correspondant version 1.0 Page : 4 /16

Exemple de formulaire de recherche Exemple de présentation d'une liste d'enregistrements Exemple de formulaire de saisie version 1.0 Page : 5 /16

2. Installation de la librairie vmlib 2.1 Décompacter l archive et lancer le script d installation 2.1.1 Procédure Se logger en tant que root. Décompacter l archive vmlib-1.0.0.tar.gz dans le répertoire utilisateur choisi (par exemple : /home/veremes). Exemple de commande de décompactage : tar xzf vmlib-1.0.0.tar.gz /home/veremes Lors du décompactage, un nouveau répertoire «vmlib-1.0.0» est créé (dans notre exemple : /home/veremes/vmlib-1.0.0). Depuis ce répertoire, lancer le script d installation nommé : install_vmlib-1.0.0.sh. Lancement du script l installation : cd /home/veremes/vmlib-1.0.0./install_vmlib-1.0.0.sh Le script effectue la copie des ressources nécessaires au fonctionnement de la librairie vmlib dans le répertoire racine du serveur Web : /var/www/html. Dans ce document, le répertoire racine du serveur Web sera appelé DOCROOT. 2.1.2 Test Les répertoires exemple, lib/vmlib et testlib doivent avoir été créés dans DOCROOT. 2.2 Configuration de php.ini 2.2.1 Procédure Editer le fichier php.ini (si l application veremap.pro a déjà été installée, alors ce fichier se trouve dans le répertoire /usr/local/php-cgi-4.3.7). Décommenter la ligne «include_path» et y ajouter «DOCROOT/lib». Exemple de modification à apporter au fichier php.ini : AVANT MODIFICATION : ; UNIX: "/path1:/path2" ;include_path = ".:/php/includes" APRES MODIFICATION : ; UNIX: "/path1:/path2" include_path = ".:/var/www/html/lib:/php/includes" 2.2.2 Test Dans le navigateur Web, taper l URL : localhost/testlib/test.phtml. version 1.0 Page : 6 /16

Le message «Le fichier php.ini est correctement configuré.» doit apparaître. Si ce n est pas le cas, vérifier le contenu du fichier php.ini. version 1.0 Page : 7 /16

2.3 Les fichiers de librairies 2.3.1 Localisation La librairie vmlib est constituée de plusieurs fichiers localisés dans le répertoire DOCROOT/lib/vmlib. 2.3.2 Description Fichier Type Description Auteur adminutil.inc Fichier d inclusion Ce fichier contient la fonction getvm_tableinfo qui permet d interroger la table vm_table contenue dans chaque base de données utilisant la vmlib. BD.class.inc Fichier de Classe PHP Ce fichier contient la classe PHP BD. Cette classe permet de gérer toutes les communications entre PHP et un sgbd (MySQL, PostgreSQL, Oracle) grâce à la couche d'abstraction PDO. Ph.Rigaux Modifié par dbutil.inc Fichier d inclusion Ce fichier contient la fonction connectfromsession qui permet de récupérer une connexion BD (voir classe PHP BD) en utilisant les paramètres de session PHP. Formulaire.class. inc Fichier de Classe PHP Ce fichier contient la classe PHP Formulaire. Cette classe permet de générer des formulaires HTML dynamiquement. Philippe Rigaux Modifié par formutil.inc Fichier d inclusion Ce fichier contient des fonctions permettant de mettre en place des tableaux HTML dynamiquement. formverif.inc Fichier d inclusion Ce fichier contient des fonctions permettant de vérifier la validité du contenu d un formulaire avant envoi. FormVirtual.class.inc Fichier de Classe PHP Ce fichier contient la classe PHP FormVirtual. Cette classe permet d associer un objet Formulaire (voir classe PHP Formulaire) à une table de données, elle est utilisée comme modèle générique pour des sousclasses chacune associées à une table de données en particulier. logutil.inc Fichier d inclusion Ce fichier contient des fonctions de mise en place de logs. version 1.0 Page : 8 /16

MysqldataAccess.class.inc Fichier de Classe PHP Ce fichier contient la classe PHP MysqldataAccess. Cette classe permet de gérer les droits des utilisateurs MySQL. phputil.inc Fichier d inclusion Ce fichier contient des fonctions PHP diverses. stringutil.inc Fichier d inclusion Ce fichier contient des fonctions PHP sur les chaînes de caractères. 2.3.3 Utilisation Une application exemple est fournie pour illustrer l utilisation de la vmlib. 2.4 L application exemple 2.4.1 Présentation L application exemple permet de présenter la mise en place d une application basée sur la librairie vmlib. Cette application contient tous les fichiers de traitement PHP et Javascript nécessaires à l exploitation de la librairie vmlib. Elle repose sur une base de données dont la structure et le contenu sont fournis. L application exemple se trouve dans le répertoire DOCROOT/exemple. 2.4.2 Configuration BASE DE DONNÉES Pour faire fonctionner l application exemple, il est nécessaire de créer une nouvelle base de données MySQL appelée «exemple». Une fois cette base de données créée, il suffit d importer le fichier exemple.sql contenu dans le répertoire DOCROOT/exemple/database_dump pour générer la structure et le contenu de la base de données. Pour utiliser les ressources de la vmlib, la base de données doit contenir une table nommée vm_table. Structure de la table MySQL vm_table : CREATE TABLE `vm_table` ( `TABLE_ID` int(11) NOT NULL auto_increment, `TABLE_NAME` varchar(40) NOT NULL default '', `ID_FIELD` varchar(40) default NULL, `ID_FIELD_TYPE` varchar(15) default NULL, `ID_FIELD_LABEL` varchar(40) NOT NULL default '', `SQL_LIST` text, `FORM_CLASS` varchar(255) NOT NULL default '', `SQL_FORM` text NOT NULL, `TITRE_LISTE` varchar(80) NOT NULL default '', `TITRE_FORMULAIRE` varchar(80) NOT NULL default '', PRIMARY KEY (`TABLE_ID`) ) TYPE=MyISAM AUTO_INCREMENT=0 ; version 1.0 Page : 9 /16

Chaque enregistrement contenu dans cette table fait référence à une autre table de la base de données. FICHIER DE PARAMÉTRAGE Dans le répertoire DOCROOT/exemple, le fichier properties.inc permet de paramétrer l application exemple. Voici la liste des paramètres existant : Paramètre $properties["log_mode"] $properties["debug_mode"] $properties["log_delim"] $properties["sql_log_file"] $properties["error_log_file"] $properties["connexion_log_file"] $properties["debug_log_file"] $properties["sgbd"] $properties["database"] $properties["server"] $properties["socket"] $properties["port"] $properties["row_per_page"] Description Booléen (true/false). Permet d activer/désactiver la génération de fichiers de log Booléen (true/false). Permet d activer/désactiver la génération de fichiers de log pour le débuggage Caractères délimiteur utilisé dans les fichiers de logs Chemin complet vers le fichier de log concernant les requêtes SQL Chemin complet vers le fichier de log concernant les erreurs Chemin complet vers le fichier de log concernant les connexions Chemin complet vers le fichier de log concernant les débuggages Nom du sgbd utilisé : 'mysql', 'pgsql' ou 'oci' Nom de la base de données utilisée par l application Nom du serveur hébergeant la base de données utilisée Socket utilisé pour MySQL Port utilisé par le sgbd Nombre d enregistrements affichés par liste (si vaut 0 alors pas de limites d affichage) Ce fichier permet notamment de définir le nom de la base de données utilisée par l application. 2.4.3 Utilisation Plusieurs fichiers spécifiques doivent être mis en place pour exploiter la librairie vmlib. Ces fichiers sont déjà présents dans l application exemple. Pour mettre en place une nouvelle application, il faudra créer des fichiers équivalents. LES SOUS-CLASSES DE FORMVIRTUAL Un fichier doit être créé pour chaque table exploitée par un formulaire. Chaque fichier se nomme : Form.nomdelatable.class.inc (pour la table «acteur» le fichier se nomme «Form.acteur.class.inc»). Dans l application exemple, les fichiers de sous-classes de FormVirtual se trouvent dans le répertoire DOCROOT/exemple/forms. Chacun de ces fichiers contient une classe PHP qui hérite de la classe PHP FormVirtual. Le nom de chaque sous-classe doit être du type : FormNomdelatable (pour la table «acteur», le nom de la sous-classe est «FormActeur»). Attention au respect des minuscules et majuscules. Pour chaque sous-classe créée, deux méthodes doivent être implémentées : version 1.0 Page : 10 /16

Verify : cette méthode permet de vérifier la validité d un formulaire avant de le poster. Voici la liste des fonctions qui peuvent être appelées dans cette méthode : Fonction Paramètre(s) Description VerifIsNotNull $attributevalue : la valeur de Cette fonction teste si la valeur passée l attribut à tester. ne vaut pas null ou chaîne vide. $attributelabel : le libellé de l attribut à tester. VerifIsNumeric VerifIsInteger VerifIsDate VerifIsLogin $attributevalue : la valeur de l attribut à tester. $attributelabel : le libellé de l attribut à tester. $attributevalue : la valeur de l attribut à tester. $attributelabel : le libellé de l attribut à tester. $attributevalue : la valeur de l attribut à tester. $attributelabel : le libellé de l attribut à tester. $attributevalue : la valeur de l attribut à tester. $attributelabel : le libellé de l attribut à tester. Cette fonction teste si la valeur passée est un de type numérique. Cette fonction teste si la valeur passée est de type entier. Cette fonction teste si la valeur passée est de type date. Cette fonction teste si la valeur passée est un identifiant utilisateur valide. Exemples d appels des fonctions de vérification : $serror=""; $serror.=verifisnotnull($_request['layer_name'], "Nom"); $serror.=verifisnumeric($_request['longueur'], "Longueur"); $serror.=verifisinteger($_request['acteur_age'], "Age"); $serror.=verifisdate($_request['mtd_date_validite'], "Date de validité des données sources"); $serror.=verifislogin($arequest["login"], "Login"); gethtmlform : cette méthode permet de structurer le formulaire HTML à éditer selon les cas de figure (mode ajout, mise à jour, recherche ). Voici la liste des méthodes de la classe PHP Formulaire qui peuvent être appelées dans cette méthode : Méthode Paramètre(s) Description champtexte version 1.0 Page : 11 /16

$pval : valeur du champ. $ptaille : largeur du champ. $ptaillemax=0 : longueur maximum de la chaîne de caractères contenue dans le champ. champ HTML de type texte. champlabel champmotdepasse champradio champliste champfenetre champbouton champlien $pval : valeur du champ. $pval : valeur du champ. $ptaille : largeur du champ. $ptaillemax=0 : longueur maximum de la chaîne de caractères contenue dans le champ. $pval : valeur du champ. $pliste : liste des boutons radios appartenant à ce groupe (tableau). $pinactivemode=false : créer les boutons radios en mode inactif (oui/non). $pval : valeur du champ. $ptaille : largeur du champ. $pliste : liste des champ option appartenant à cette liste (tableau). $pval : valeur du champ. $plig : nombre de lignes du champ. $pcol : largeur du champ. $plibelle : libellé du bouton. $pnom : nom du bouton. $ponclick : action déclenchée sur le clic du bouton. $plibelle : libellé du lien. $pnom : nom du lien. $phref : action sur clic du lien. $pstyle : style CSS associé au lien. $pimage : image associée au lien. champ HTML de type libellé. champ HTML de type mot de passe. groupe de champs HTML de type radio. Cette méthode peut être appelée en mode inactif, ce mode permet de gérer les boutons radios créés comme des champs case à cocher. champ HTML de type liste (SELECT). champ HTML de type fenêtre de texte (TEXTEAREA). champ HTML de type bouton et d y associer une action JavaScript. champ HTML de type lien et d y associer une action JavaScript. version 1.0 Page : 12 /16

champgroupedeliens $pparams : liste des liens appartenant à ce groupe de liens (tableau) groupe de champs HTML de type liens. champboutonsubmit champfichier $plibelle : libellé du bouton. $pnom : nom du bouton. $ponclick : action déclenchée sur le clic du bouton. $ptaille : largeur du champ. champ HTML de type submit (bouton de validation de formulaire) et d y associer une action JavaScript. champ HTML de type transfert de fichier. champcache $pvaleur : valeur du champ. champ HTML de type invisible (champ caché). ajouttexte $texte : texte HTML à insérer. Cette méthode permet de créer du texte HTML. addline addimage champlistecascade champupload champdeuxlistes $texte : texte à insérer. $salign="center" : alignement du texte. $sclass="" : style CSS associé au texte. $slabel : libellé de l image. $sbasedir : chemin de répertoire contenant l image. $ssource : nom du fichier image. $iwidth : largeur de l image. $iheight :hauteur de l image. $pval : valeur du champ. $ptaille : largeur du champ. $pliste : liste des champ option appartenant à cette liste (tableau). $sonchange : Événement sur changement. $ptaille : largeur du champ. $pvaleur : valeur du champ. $ponchange : Événement sur changement. $pid : Id du champ fichier. $pnom1 : nom du premier champ. $pnom2 : nom du deuxième champ. $pval : valeur du champ. $ptaille : largeur des champs. $pliste1 : e ligne de tableau HTML contenant un texte quelconque. e ligne de tableau HTML contenant une image. champ HTML de type liste (SELECT) avec un évènement sur le changement. Cette peut permettre de mettre à jour un deuxième champ. champ HTML de type transfert de fichier ainsi qu'un champ de type caché. Le champ caché permet de stocker la valeur à poster. Cette méthode permet de créer deux champs HTML de type liste (SELECT). Des flèches permettent de faire basculer des valeurs d'une liste à l'autre. Le résultat est stocké sous forme de chaine dans un champ caché. version 1.0 Page : 13 /16

liste des champ option appartenant à la première liste (tableau). $pliste2 : liste des champ option appartenant à la deuxième liste (tableau). $plargeur : largeur des champs. $sobjetliste1 : Objet javascript de la première liste. $sobjetliste2 : Objet javascript de la deuxième liste. $sobjetstock : Objet javascript qui stocke les valeurs sélectionnées. $sobjetaffiche=objet javascript qui affiche les valeurs sélectionnées (option). Le résultat peut aussi être affiché dans un champ HTML. Exemples d appels des méthodes de la classe PHP Formulaire : $oform->champtexte ("Nom","LAYER_NAME",$aValues['LAYER_NAME'],30); $oform->champlabel ("ID", "LAYER_ID", $avalues['layer_id']); $form->champmotdepasse ("Mot de passe", "password", '', 30); $oform->champradio("couche active","active",$avalues['active'],$alistbool,($avalues["mode"]=="search")); $oform->champliste ("Système de coordonnées", "COORDSYS_ID", $avalues['coordsys_id'], 1, $acoordsys); $oform->champfenetre ("Objectifs production","mtd_objectif_prod",$avalues['mtd_objectif_prod'],10,100); $oform->champbouton ("Rechercher","btn_search","parent.searchTable('".$this- >stable."')"); $oform->champlien("retour à la liste","link_list","parent.refreshlist()","boutons","../images/ovale_vert.gif") ; $alinksearchgrp[0]=array("texte"=>"rechercher","nom"=>"link_search","href"=>"pa rent.searchtable('".$this- >stable."')","style"=>"boutons","image"=>"../images/ovale_vert.gif"); $oform->champgroupedeliens($alinksearchgrp); $oform->champboutonsubmit ("Remplacer", "SUBMIT", "return confirm('les couches de la carte vont être remplacées.')"); $oform->champcache ("PHPSESSID", session_id()); $oform->addline("métadonnées propres à la DDE du Var","left","texteFormulaireCentre"); $oform->addimage ("","/data/vignette/",$avalues['mtd_apercu'], "", ""); Exemple de sous-classe de FormVirtual pour la table «genre» utilisée dans l application exemple : <?php require_once ("vmlib/formvirtual.class.inc"); version 1.0 Page : 14 /16

class FormGenre extends FormVirtual{ function verify($arequest){ $serror = ""; if (($arequest['mode'] == "update") ($arequest['mode'] == "insert")){ $serror.= VerifIsNotNull($_REQUEST['GENRE_NOM'], "Nom"); } return $serror; } function gethtmlform($avalues, $bd) { // Formulaire en mode table, vertical switch($avalues["mode"]){ case "display" : $oform=$this->oform; $oform->cssvalue="attributevalueindisplaymode"; $oform->csstable="formbackground"; $oform->debuttable(); $oform->champlabel ("ID", "GENRE_ID", $avalues['genre_id']); $oform->champlabel ("Nom","GENRE_NAME",$aValues['GENRE_NAME'],30); break; case "search" : $oform=$this->initform($avalues); $oform->champlabel ("ID", "GENRE_ID", $avalues['genre_id']); $oform->champtexte ("Nom","GENRE_NOM",$aValues['GENRE_NOM'],30); break; default : $oform=$this->initform($avalues); $oform->champlabel ("ID", "GENRE_ID", $avalues['genre_id']); $oform->champtexte ("Nom","GENRE_NOM",$aValues['GENRE_NOM'],30); break; } $oform->fintable(); switch ($avalues["mode"]){ case "display" : break; case "search" : $oform- >champlien("rechercher","link_search","parent.searchtable('".$this- >stable."')"); break; case "update" : $oform->champlien("mettre à jour","link_update","document.forms[0].submit();"); break; default: $oform->champlien("créer","link_default","document.forms[0].submit();"); break; } return $oform->fin(false); } }?> version 1.0 Page : 15 /16

LES AUTRES FICHIERS Voici la liste des autres fichiers nécessaires à l exploitation de la vmlib et qui présents dans l application exemple : Fichier Localisatio Description index.phtml n Point d entrée de l application, détermine si un utilisateur est / connecté ou non à l application. formlogin.inc /forms/ Appelé par index.phml pour mettre en place le formulaire de connexion. formlogin.vhtml /forms/ Rendu visuel du formulaire de connexion. exemple.vhtml / Document HTML contenant le formulaire listform sur lequel se basent toutes les requêtes de demandes de listes / formulaires effectuées dans l application. forms.phtml /forms/ Fichier de traitement PHP utilisé pour toutes les requêtes concernant les formulaires HTML dans l application. forms.vhtml /forms/ Rendu visuel des traitements effectués dans forms.phtml. list.phtml /forms/ Fichier de traitement PHP utilisé pour toutes les requêtes concernant les listes HTML dans l application. list.vhtml /forms/ Rendu visuel des traitements effectués dans list.phtml. scripts.js /javascript/ Scripts Javascript permettant de gérer les soumissions du formulaire listform. scripts_list.js /javascript/ Scripts Javascript permettant de gérer le statut des cases à cocher dans les listes HTML en vue d une suppression des enregistrements dans la base. En plus des fichiers indispensables à l exploitation de la vmlib, l application exemple utilise un menu Javascript spécifique ainsi que des styles CSS propres. version 1.0 Page : 16 /16