{{{pagetoc .:forms }}} ====== Utilisation des formulaires dans l'administration de Dotclear ======= Dotclear intègre une classe PHP pour créer des formulaires, c'est la classe ''form'' que nous allons utiliser. On placera les champs des formulaires dans une balise ''
'' : ...

formNonce(); ?>

Tous les formulaires doivent intégrer ''formNonce(); ?>''. En englobant un champ et le texte qui l'accompagne dans une balise '''', on peut avoir des champs accessibles sans avoir à gérer les correspondances entre les attributs ''for=""'' des '''' et les ''id=""'' des balises cibles. Exemple :

===== Groupe d'éléments ===== {{:2.0:resources:plugins:admin:form:fieldset.png|}} La balise ''
'' permet de grouper des éléments et de leur donner un intitulé grâce à la balise '' '' :
...
Exemple :

===== Les paramètres communs ===== Toutes les fonctions de cette classe utilisent le même premier paramètre : ''nid'', il sert à définir les attributs ''name=""'' et ''id=""'', il accepte deux types de valeurs : * un tableau avec une ou deux valeurs : * une valeur : ''name=""'' est le premier élément du tableau et ''id=""'' est vide, c'est utile quand on définit des éléments radio pour éviter d'utiliser plusieurs fois le même ''id'' * deux valeurs : ''name=""'' est le premier élément du tableau et ''id=""'' le second * une chaîne de caractères, ''name=""'' et ''id=""'' prennent sa valeur Les derniers paramètres sont aussi communs, ils sont tous facultatifs et sont vides par défaut : * class : la classe CSS (une chaîne de caractères) * tabindex : l'index du champ, pour la navigation au clavier (un nombre entier) * disabled : désactiver (un booléen) (valeur par défaut : non) * extra_html : un attribut supplémentaire pour la balise (une chaîne de caractères) ===== Champ textuel ===== {{:2.0:resources:plugins:admin:form:field.png|}} C'est la fonction ''form::field()'', qui prend les arguments suivants : * nid * la taille du champ, en nombre de caractères * la taille maximale du texte, en nombre de caractères * la valeur par défaut, on prendra soin de l'échapper en utilisant la fonction ''html::escapeHTML()'' (une chaîne de caractères) * class (avec la classe //maximal//, le champ occupe toute la largeur disponible, indépendamment de sa taille) * tabindex * disabled * extra_html Exemple :

Pour un champ obligatoire, il est nécessaire d'ajouter la classe ''required'' à l'élément