Présentation

Introduction

Les fichiers DB servent à générer les listes et formulaires du modules d'administration.
Ils peuvent aussi servir sur le frontal ou pour des fonctions du "core" qui réclament une définition de table.

Les DBs du core sont stockés dans /core/db. Ils ne doivent pas être directement modifiés sous peine de perdre les mises à jour lors de la montée en version du cms.
Les DBs "clients", de modules et les extensions de DB sont stockés dans /modules/XXX/db.

La fonction d'un DB est de décrire un objet MySQL ou LDAP :
  • nom de l'objet
  • nature de l'objet
  • description des menus / actions associés
  • description des DeleteCascade
  • description de l'affichage de la liste des objets
  • description des champs de l'objet
Un fichier DB crée ou met à jour un élément du tableau global $record.

Pour voir la liste générée par un DB, faire xx/administrator/adm_liste_table?table=NOMDUDB
Pour voir le formulaire généré par un DB, faire xx/administrator/adm_fiche_table?table=NOMDUDB[&id=ID]

Exemple

$record['adm_user'] = array(
    'adm_actions'=>array(
        'fiche'=>'administrator/action/adm_user_fiche.php',
        'liste'=>'',
    ),
    'adm_menu'=>array(
        'fiche'=>'',
        'liste'=>'',
        'fiche_top'=>'',
        'liste_top'=>'',
    ),
    'droits'=>array(
        'show'=>'ADMIN',
        'add'=>'ADMIN',
        'write'=>'ADMIN',
        'delete'=>'ADMIN'
    ),
    'aide'=>array(
            'ADMIN'=>'aide_admin_adm_user',
        ),
    'libelle'=>'adm_user',
    'icon'=>'core/images/user_edit.png',
    'unique'=>array('email'),
    'delete_cascade'=>array('adm_arbo'=>'adm_user_id', 'adm_user_note'=>'adm_user_id', 'adm_menu'=>'adm_user_id', ),

    'list_select'=>"SELECT a.id, concat(a.nom , ' ' , a.prenom) nom, a.email, a.type, l.nom as langue, a.societe FROM adm_user a LEFT OUTER JOIN lg_langue l ON l.id=a.lg_langue_id ".($find?" WHERE ".$find." ":"")." ORDER BY ".$tri,
    'list'=>array(
        array('libelle'=>'id',
                'taille'=>140,
                'field'=>'id',
                'url'=>$php_liste.'?table='.$table.'&action=delete&id=varID'.getParam('action,ssaction,id'),
                'acces'=>array('show'=>$recordDroits[$table]['droits']['delete']),
                'find'=>'a.id=#VAL#',
                'tri_up'=>'a.id',
                'tri_down'=>'a.id desc',
                ),
        array('libelle'=>'adm_user.nom',
                'field'=>'nom',
                'taille'=>250,
                'url'=> $php_fiche.'?table='.$table.'&id=varID'.getParam('action,ssaction,id'),
                'acces'=>array('show'=>$recordDroits[$table]['droits']['show']),
                'find'=>"lower(concat(a.nom ,' ', a.prenom)) LIKE lower('%#VAL#%')",
                'tri_up'=>'a.nom, a.prenom',
                'tri_down'=>'a.nom desc, a.prenom desc'
                ),
    ),
    
    'table'=> array(
        'id'=> array(
                'type'=>'long',
                'label'=>'id',
                'input'=>'hiddenlabel',
                'defaut'=>'0',
                'write'=>'all',
                'show'=>'ADMIN'
            ),
        'nom'=> array(
                'type'=>'text',
                'label'=>'adm_user.nom',
                'input'=>'text',
                'maxlen'=>'45',
                'required'=>'yes',
                'defaut'=>getLT('nouvel_administrateur'),
                'write'=>'ADMIN',
                'show'=>'ADMIN'
            ),
        )
);