C'est assez simple :
1/ Ajouter les variables du templates
$xoopsTpl->assign(...);
2/ utiliser la class XoopsThemeForm normalement et y ajouter les éléments
$form = new XoopsThemeForm(....)
...
...
3/ déclarer le template
$xoopsOption['template_main'] = 'nom du template'
4/ Assigner les variables des templates au formulaire
$form->assign($xoopsTpl);
5/ Le templateVoici les variables smarty correspondant au formulaire
<{$form.javascript}> = script de validation des éléments du formulaire
<{$form.name}> = name de la balise html form
<{$form.action}> = action de la balise html form
<{$form.method}> = methode de la balise html form
<{$form.extra}> = onsubmit de la balise html form
<{$form.elements}> = les éléments du formulaire (array/tableau)
<{$form.elements.caption}> = nom d'un élément du formulaire
<{$form.elements.body}> = balise input d'un élément du formulaire
<{$form.elements.hidden}> = détermine si l'élément du formulaire est caché
en pratique, hormis les variables standard des templates, voici comment utiliser le formulaire dans un template
<{$form.javascript}>
<form name="<{$form.name}>" action="<{$form.action}>" method="<{$form.method}>" <{$form.extra}>>
<!-- start of form elements loop -->
<{foreach item=element from=$form.elements}>
<div align = 'center'>
<{if $element.hidden != true}>
<b>
<{$element.caption}>
</b><br />
<{$element.body}>
<br /><br />
<{else}>
<{$element.body}>
<{/if}>
</div>
<{/foreach}>
<!-- end of form elements loop -->
</form>
Bon les explications ne sont peut-être pas très clair pour les non développeurs,
mais si quelqu’un veux écrire un article à ce sujet qui serait plus clair que mes explications, je suis prêt à aider et à corriger.