Je trouve un peu tout de bizarre dans la structure de ton code, perso pour un module j'aurai plutôt fait un truc de ce genre:
Supposons que ton fichier s'appelle test.php
<?php
if ( !include("../../mainfile.php") ) {
die("XOOPS root path not defined");
}
include(XOOPS_ROOT_PATH."/header.php");
global $xoopsDB; // si tu dois faire des requêtes sur tes bases
$uid = $GLOBALS['xoopsUser']->getVar('uid'); // si tu as besoin du uid
$module_dirname = $xoopsModule->getVar('dirname') ;
//recupere toutes les variables POST
foreach ($_POST as $k => $v){ ${$k} = $v; }
if (!isset($_POST['op'])){ $op=isset($_GET['op']) ? $_GET['op']:'new'; }
else { $op = $_POST['op'];}
// tu teste la variable op renvoyée//
switch ($op){
case 'new':
//creation de ton formulaire ici
$formulaire = new XoopsThemeForm(_MD_NOMDUMODULE_DISCLAIMER,"createform","test.php?op=sendmail");
//etc....//
break;
}
//envoie de ton mail avec template et redirection page d'accueil
case 'sendmail':
$xoopsMailer =& getMailer();
$xoopsMailer->useMail();
$xoopsMailer->setTemplateDir(XOOPS_ROOT_PATH."/modules/".$module_dirname."/language/".$xoopsConfig['language']."/mail_template/");
$xoopsMailer->setTemplate('nomdumodule_userreg.tpl');
$xoopsMailer->setSubject(sprintf(_NOMDUMODULE_USERREG));
$xoopsMailer->assign('USERNAME', $uname);
$xoopsMailer->assign('SITENAME', $xoopsConfig['sitename']);
$xoopsMailer->assign('USEREMAIL', $GLOBALS['xoopsUser']->getVar('email'));
$xoopsMailer->assign('ADMINMAIL', $xoopsConfig['adminmail']);
$xoopsMailer->assign('SITEURL', XOOPS_URL."/");
$xoopsMailer->setToEmails($GLOBALS['xoopsUser']->getVar('email'));
$xoopsMailer->setFromEmail($xoopsConfig['adminmail']);
$xoopsMailer->setFromName($xoopsConfig['sitename']);
$xoopsMailer->send();
redirect_header('index.php',3,_MD_NOMDUMODULE_MESSAGE);
break;
}
include XOOPS_ROOT_PATH."/footer.php";
?>
Aprés, je ne suis pas un pro, il nous faudrait l'avis d'un spécialiste