Eclydre Web Manager > Développeur > Les fichiers DB > Définition des champs du DB

Définition des champs du DB

Introduction

Les champs du formulaire sont définis dans $record[DB]['table'].
C'est un tableau qui définit le nom du champ dans la base et la manière de l'afficher dans le formulaire. On doit normalement trouver tous les champs d'une table MySQL dans le DB.

Exemple

    #______________________ description formulaire
    'table'=> array(
        'id'=> array(
                'type'=>'long',
                'label'=>'id',
                'input'=>'hiddenlabel',
                'defaut'=>'0',
                'write'=>'all',
                'show'=>'all'
            ),
        'zorder'=> array(
                'type'=>'long',
                'label'=>'position',
                'input'=>'zorder',
                'defaut'=>'1',
                'write'=>'all',
                'show'=>'all'
            ),
        'nom'=> array(
                'type'=>'text',
                'label'=>'icono_type_image.nom',
                'input'=>'text',
                'maxlen'=>'200',
                'traduction'=>array(
                        'champ'=>'nom_trad_id',
                        'write'=>$recordDroits['icono_type_image']['table']['nom_trad_id']['write'],
                        'show'=>$recordDroits['icono_type_image']['table']['nom_trad_id']['show'],
                ),
                'required'=>'yes',
                'defaut'=>'',
                'write'=>'all',
                'show'=>'all'
            ),
        #_________________________ champs de traduction
        'nom_trad_id'=> array(
                'type'=>'long',
                'input'=>'hidden',
                'defaut'=>'0',
                'write'=>'all',
                'show'=>'all'
            ),
        )

On forme ici un formulaire avec les champs suivant :
id -> champ non modifiable
zorder -> position et flèches de positionnement de l'élement
nom -> saisie d'un texte simple de 200 caractères maximum et traductible
nom_trad_id -> champ caché contenant l'ID de la traduction du champs NOM

Syntaxe générale

'nom'=> array(
       'type'=>'text',
       'label'=>'icono_type_image.nom',
       'input'=>'text',
       'showtest'=>array( 'is_defined'=>array('id')),
       'jsControl'=>array(
           'aide'=>'format_date',
           'ereg'=>'^(([d]{0})|(0000-00-00s00:00:00)|(0000-00-00)|((20[0-9]{2})-(0[1-9]|1[0-2])-([012][0-9]|3[01])))(([d]{0})|(([s])([01][0-9]|2[0123]):([0-5][0-9])(([d]{0})|:([0-5][0-9]))))$',
           ),

       'maxlen'=>'200',
       'style'=>'width: 200px;',
       'inline'=>'yes',
       'required'=>'yes',
       'disabled'=>'yes',
       'defaut'=>'',
       'write'=>'all',
       'show'=>'all' ,
       'aide'=>'aide_format_champ'
   ),

 'nom'=>array  c'est le nom du champs dans la base MySQL
 type  indique le type du contenu dans la base :
text : texte
long : valeur numérique entière
float : valeur numérique décimale
date : date au format mysql YYYY-MM-JJ
datetime : date-heure au format mysql YYYY-MM-JJ HH:MN:SS
mail : adresse mail
php : c'est une valeur calculée à la volée qui ne correspond pas à un champ dans la base
rte : texte mis en forme par le RTE (Rich Text Editor)
 label  code texte du libellé du champ
label_nogetlt
=1, label sera affiché tel quel sans appel à la fonction getLT()
 input  table : cela sert à afficher une sous-liste d'un autre DB dans le formulaire
inline : idem que table mais sous forme de liste en ligne
showtest permet de définir une ou des conditions d'affichage du champ de formulaire
maxlen
obligatoire pour les types text, indique la longueur max autorisée pour la saisie, une contribution plus longue est tronquée à l'enregistrement
style
facultatif, permet d'ajouter un style CSS au champ de formulaire
inline
=yes, le champ s'affiche en mode inline, par défaut non
required
=yes signifie que le champ est obligatoire
disabled
=yes le champ est en lecture seule
defaut
indique la valeur par défaut du champ
defaut=>'1'
defaut=>'php:date("Y-m-d")'
defaut=>'# [id]#'
peut contenir une valeur fixe, une valeur calculée en php, une valeur de l'enregistrement en cours, ici ID
show
définit qui peut voir le champ
all ou ADMIN : le champ est visible
rien : le champ passe en HIDDEN
les droits des autres profils sont définis via Administration/Profils
write
définit qui peut modifier le champ
all ou ADMIN : le champ est inscriptible
rien : le champ est en lecture seul même pour les ADMINs
les droits des autres profils sont définis via Administration/Profils
jsControl
permet d'ajouter un contrôle javascript sur le format de la saisie
aide
permet d'ajouter une icône avec lien sur un texte d'aide pour le champ
nocopy
=1, le champ ne sera pas copié lors d'une copie de l'enregistrement