D'abord, on réalise un MCD très simplifié :


CREATE TABLE entreprise (
ent_id int NOT NULL,
ent_nom varchar(40),
ent_type varchar(30),
ent_tel varchar(15),
ent_fax varchar(15),
ent_adresse varchar(50),
ent_cp varchar(6),
ent_ville varchar(30)
);
Pas besoin de contraintes SQL, le framework le gére
Voici le menu en javascript : il suffit de modifier dyn/menu.inc et d'insérer le lien.

Génération de la Liste : (le gros bouton bleu +, c'est pour ajouter un enregistrement. La + rouge c'est pour supprimer l'enregistrement)

Génération du Formulaire :

Ensuite on peut décider d'avoir le type d'activité comme une table à part, et avoir un select dans le formualre.
On peut aussi avoir un champ mail avec un petit bouton à coté du champ ou devant la ligne de la liste, sur lequel on clique pour envoyer un mail directement (ouverture du logiciel de messagerie avec le champ destinataire pré-rempli).
J'ai mis moins de 20 minutes pour générer la classe entreprise avec le framework.
Le framework OpenMairie gére déjà les droits d'accés. On peut créer des groupes en fonction des droits que l'on veut attribuer aux utilisateurs.
La présentation se personnalise à l'aide des CSS.
Voici le code pour générer la liste (sql/mysql/entreprise.inc):

Pour générer le formulaire c'est un peu la même chose avec le fichier sql/mysql/entreprise.form.inc, sauf qu'il y a un fichier obj/entreprise.class.php en plus pour créer l'objet entreprise. Il faut surcharger les fonctions :
par exempple :
<code>
function setType(&$form,$maj) {
if ($maj < 2) { //ajouter et modifier
$form->setType('ent_id', 'hidden');
$form->setType('ent_nom', 'text');
$form->setType('ent_type', 'text');
$form->setType('ent_tel', 'text');
$form->setType('ent_fax', 'text');
$form->setType('ent_adresse', 'text');
$form->setType('ent_cp', 'text');
$form->setType('ent_ville', 'text');
if ($maj==1){ //modifier
$form->setType('ent_id', 'hidden');
}
}else{ // supprimer
$form->setType('ent_id', 'hiddenstatic');
}
}
</code>
Si vous vouler un champ pour attacher un fichier, il suffit de mettre 'upload' à la place de 'text'.
Un bouton 'upload' apparaitra dans le formulaire pour télécharger le fichier à partir de l'ordinateur.
Un bouton 'voir' apparaitre pour afficher le fichier pdf,jpg,gif... (les paramétres du upload peuvent être modifiés dans le fichier spg/upload.class.php)
Pour un champ mail avec le bouton d'envoie : 'mail'.
Pour un champ select : 'select' et surcharger la fonction setSelect(&$form, $maj,$db,$debug) en fesant référence à la requéte du select contenu dans '/sql/mysql/entreprise.form.inc.
Il y a aussi 'textarea'... et d'autres types de champs générés automatiquement par la librairie OpenMairie.
Ensuite pour obliger l'utilisateur de remplir un champs, il faut surcharger la fonction suivante :
<code>
function verifier(){
$this->correct=True;
// obligatoire
if ($this->valF['ent_nom']==""){
$this->correct=false;
$this->msg= $this->msg."nom obligatoire";
}
if ($this->valF['ent_type']==""){
$this->correct=false;
$this->msg= $this->msg."type obligatoire";
}
}//verifier
</code>
