Classe de formulaires
Différentes classes sont disponibles pour la création de formulaires :
- les classes de formulaire : xoopsThemeform et xoopsSimpleForm, dérivées de la classe xoopsForm
- les classes d'éléments de formulaire pour l'insertion de champs texte, boutons, cases à cocher, etc. dérivées de la classe xoopsElement
(voir les
éléments standards, voir les
éléments select, check et radio)
Utilisation, principe général :
// Chargement du formloader
include_once XOOPS_ROOT_PATH."/class/xoopsformloader.php"; // Création de l'objet formulaire
$my_form = new XoopsThemeForm(_MD_MYMODULE_FORM_TITLE, 'myform', 'trait_form.php');
// Création des éléments de formulaire
$champ1 = new XoopsFormText(_MD_FORM_TEXT1, "title", 50, 100, $title)
// Ajout des éléments au formulaire
$my_form->addElement($champ1, true);
// Idem pour un bouton
$button = new XoopsFormButton('', 'post', _SEND, 'submit');
$my_form->addElement($button);
// Affichage du formulaire
$my_form->display();
xoopsThemeForm
Création d'un formulaire avec thême sur 2 colonnes.

XoopsThemeForm(string $title, string $name, string $action, [string $method = 'post']);
$title | string | Titre du formulaire |
$name | string | Nom du formulaire |
$action | string | Action à exécuter lors de l'envoi du formulaire |
$method | string | Méthode pour l'envoi du formulaire (post par défaut) |
xoopsSimpleForm
Création d'un formulaire simple.

XoopsSimpleForm(string $title, string $name, string $action, [string $method = 'post']);
addElement
Méthode de la classe xoopsForm.
Ajoute l'élément de formulaire au formulaire.
my_form->addElement(object $formElement, [bool $required = false])
$formelement | object | Objet élément de formulaire |
$required | bool | true pour élément obligatoire |
display
Méthode de la classe xoopsForm.
Provoque l'affichage du formulaire.
my_form->display()
assign
Méthode de la classe xoopsForm.
Assigne le code html du formulaire au template (alternative à my_form->display().
my_form->assign(object $tpl)
insertBreak
Méthode de la classe xoopsForm.
Insêre une ligne de séparation dans le formulaire

my_form->insertBreak([string $extra = ''], [string $class = ''])
$extra | string | Code Html à insérer |
$class | string | classe (CSS) pour cette ligne |
Exemple
$sign_form->insertBreak('<b>Votre message</b>','itemHead');
NB: bug en v2.0.6, corrigé en v2.0.7
setExtra
Méthode de la classe xoopsForm.
Ajout dans la balise <form> de la chaine de caractêres $extra.
my_form->setExtra(string $extra)
Exemple pour un formulaire avec un champ d'upload
$my_form = new XoopsThemeForm(_MD_MYMODULE_FORM_TITLE, 'myform', 'trait_form.php');
$my_form->setExtra("enctype = 'multipart/form-data'");
Eléments de formulaires (1)
xoopsFormHidden
Création d'un champ caché.
xoopsFormHidden (string $name, string $value)
xoopsFormLabel
Création d'un champ de type Label
xoopsFormLabel ([string $caption = ''], [string $value = ''])
$caption | string | intitulé du champ |
$value | string | Valeur par défaut |
xoopsFormText
Création d'un champ texte
xoopsFormText (string $caption , string $name, int $size, int $maxlength, [string $value = ''])
$caption | string | Nom du champ | |
$name | string | Nom de la variable | |
$size | int | Taille du champ | |
$maxlength | int | Longueur maxi de la chaine | |
$value | string | Valeur par défaut | |
Exemple
// code du script Php
$title_text = new XoopsFormText('', "title", 52, 100, $title);
<!-- Code html généré -->
<input type='text' name='title' id='title' size='52' maxlength='100' value='Titre' />
xoopsFormTextArea
Création d'un champ Zone de texte
xoopsFormTextArea (string $caption, string $name, [string $value = ''], [int $rows = 5], [int $cols = 50])
$caption | string | Intitulé du champ |
$name | string | nom de la variable |
$value | string | Valeur par défaut |
$rows | int | nombre de lignes |
$cols | int | nombre de colonnes |
xoopsFormDhtmlTextArea
Création d'un champ Zone de texte avec bbcodes

xoopsFormDhtmlTextArea (string $caption, string $name, [string $value = ''], [int $rows = 5], [int $cols = 50], [string $hiddentext='xoopsHiddenText'])
$caption | string | Intitulé du champ |
$name | string | nom de la variable |
$value | string | Valeur par défaut |
$rows | int | nombre de lignes |
$cols | int | nombre de colonnes |
$hiddentext | string | Texte caché |
xoopsFormPassword
Création d'un champ Mot de passe
xoopsFormPassword (string $caption, string $name, [int $size = ''], , [int $cols = 50], [string $value = ''])
$caption | string | Nom du champ |
$name | string | Nom de la variable |
$size | int | Taille du champ |
$maxlength | int | Longueur maxi du mot de passe |
$value | string | Valeur par défaut |
xoopsFormFile
Création d'un champ file: le code généré contiendra également 2 champs cachés (voir exemple).

xoopsFormfile (string $caption , string $name, int $maxfilesize)
$caption | string | intitulé du champ |
$name | string | nom de la variable |
$maxfilesize | int | Taille maximum du fichier |
Exemple
// code du script Php
$img = new XoopsFormFile(_MD_MYMODULE_PHOTO, "photo", 30000);
$img->setExtra( "size ='20'") ;
$form->addElement($img_text);
<!-- Code html généré -->
<input type='hidden' name='MAX_FILE_SIZE' value='30000' />
<input type='file' name='photo' id='photo' size ='20' />
<input type='hidden' name='xoops_upload_file[]' id='xoops_upload_file[]' value='photo' />
xoopsFormButton
Création d'un bouton.

xoopsFormfile (string $caption , string $name, [string $value = ''], [string $type = 'button'])
$caption | string | intitulé du champ |
$name | string | nom de la variable |
$value | int | Taille maximum du fichier
|
$type | int | Type de bouton (button, submit, reset)
|
Exemple
// code du script Php
$form->addElement(new XoopsFormButton('', 'post', _MD_MYMODULE_SEND, 'submit'));
<!-- Code html généré -->
<input type='submit' class='formButton' name='post' id='post' value='Envoyer' />
xoopsFormElementTray
Permet de mettre plusieurs champs à la suite.
xoopsFormElementTray (string $caption, [string $delimeter=" "], [string $name=""])
$caption | string | Nom du champ | |
$delimiter | string | Délimiteur entre les champs | |
$name | string | Nom de la variable | |
Exemple
// création 'element tray'
$price_tray = new XoopsFormElementTray(_MD_XFADS_PRICE ,'');
// ajout des champs
$price_tray->addElement(new XoopsFormText('', "price", 15, 15, $price));
$price_tray->addElement($monnaie_text);
$price_tray->addElement($price_option_text);
// ajout de 'élément tray' au formulaire
$form->addElement($price_tray);
setDescription
Permet d'ajouter une description sous le titre du champ.
setDescription (string $description)

Exemple
$texte = new XoopsFormTextArea(_MD_XFGB_MESSAGE, 'message', $message, 6, 40);
$texte->setDescription('<span style="font-size:x-small;font-weight:bold;">Entrez ici votre dédicace</span>');
$sign_form->addElement($texte, true);
setRequired
Pour obliger le champ à être rempli.
Alternative au paramêtre $required = true de addElement
setHidden
Testée, mais n'ai pu déterminer l'objectif de cette méthode (buggée ?)
setHidden ()
setExtra
Permet d'ajouter une chaine de caratêres à l'élément de formulaire.
setExtra(string $extra,[bool $replace = false])
$extra | string | Chaine à ajouter au code généré pour le champ |
$replace | bool | si true remplace le code généré par la chaine $extra (au lieu de l'ajouter) |
Ex emples
// Pour fixer la taille du champ
$texte->setExtra("size = '60'")
// Champ en lecture seule
$texte->setExtra("readonly = 'readonly'")
// Action sur changement de sélection
$select = new XoopsFormSelect('', 'user_avatar');
$select->setExtra("onchange='showImgSelected(\"option_color_image[".$i."] .......... )'");