Input : table

input => table

Ce type de contenu très utile permet d'inclure dans un formulaire des sous-formulaires provenant d'un autre DB.
Par exemple pour un bloc de contenu (c_bloc), on affiche directement sa liste de liens (c_bloc_lien) ou sa liste de fichiers à télécharger (c_bloc_file).
Pour cela il suffit de disposer d'une sous-table avec une clé étrangère vers le DB en cours.

Il faut prévoir la suppression des sous-fiches en cas de suppression de l'élément DB en cours
        'urls'=> array(
                'type'=>'c_bloc_lien',
                'showtest'=>array('is_defined'=>array('id', 'contenu'), ),
                'label'=>'c_bloc.urls',
                'icon_item'=>'core/images/link_edit.png',
                'nolabelentete'=>'yes',
                'input'=>'table',
                'table_entete'=>'yes',
                'zorder'=>'zorder',
                'valeurs'=>'SELECT id FROM c_bloc_lien WHERE c_bloc_id='#[id]#' ORDER BY zorder, id DESC',
                'add'=>'yes',
                'del'=>'yes',
                'add_default'=>array(
                    'c_bloc_id'=>'php:id',
                ),
                'write'=>'all',
                'show'=>'all',
            ),

 type  contient le nom du DB du sous-formulaire
 showtest  obligatoire sur is_defined(id) si présence d'une clé étrangère de jointure
icon_item
permet d'afficher une icone sur chaque ligne de sous-formulaire
nolabelentete
=yes, supprime le titre affiché avant la liste
table_entete
=yes, affiche une ligne d'entête au début de la liste
input
= table
zorder
si défini, indique le champ dans le sous DB contenant le champ zorder ainsi que le contrainte (clé étrangère) sur le tri, affiche les boutons de positionnement dans la liste
valeurs
requêtes SQL ramenant les listes des IDs du sous DB à afficher
add
=yes, affiche le bouton Ajout d'élément dans la liste
del
=yes, affiche le bouton de suppression d'élément dans la liste
add_default
tableau indiquant les champs de clés étrangères à renseigner lors de la création de ligne dans le sous DB, on trouvera en général 'clé_étrangère'=>'php:id', php:id indiquant de prendre l'ID de l'élement en cours
maxitems
si défini, bloque l'affichage du bouton Ajout à un nombre d'éléments
nom
nom du champ dans l'enregistrement à afficher dans l'entête de ligne

Création automatique d'élement dans la liste

On peut forcer la création d'un élément dans la liste si celle-ci est vide
'autocreate'=>'yes',
'autocreate_id'=>'champ',
 autocreate  =yes, si la liste est vide, force la création d'un élément dans celle-ci (équivaut à l'appui sur le bouton Ajout)
 autocreate_id  =champ du DB, si renseigné, le champ est rempli avec la valeur de l'ID de l'élément autocréé