Date de création : | 23 septembre 2004 | |
Dernière modification : | ||
Diffusion : | internet |
Notre canal d'exemple affiche un menu proposant d'accéder à un formulaire d'envoi de mail, avec des options différentes. Ce qui nous proposons ici est bien sûr qu'un exemple d'utilisation.
Mettez la liste des actions MAG de votre canal. Dans notre exemple, une seule action suffit. C'est l'action par défaut. Elle va afficher un menu.
<action name="default" classname="org.esupportail.portal.channels.CtestMail.Home" xslfile="test.xsl" rendertype="xsl" log="debug" />
Pour utiliser le canal mailto en "servant", définissez une action qui pointe vers la classe "org.esupportail.portal.channels.CMailTo.CMailToServant". Le paramètre "servantfinish" correspond à l'action que va executer votre canal une fois que le servant a terminé son action.
<action name="std" type="servant" classname="org.esupportail.portal.channels.CMailTo.CMailToServant" servantfinish="default" />
Dans notre exemple, nous préremplissons le formulaire gràce aux paramètres passé à l'action. Les 3 "values" d'un paramètre sont :
* la valeur par défaut de l'attribut du mail (chaine)
* la possibilité de l'utilisateur de modifier cette valeur (true|false)
* la visibilité par l'utilisateur de la valeur (true|false)
Ce schéma est spécifique à notre exemple puisque c'est dans votre canal que vous exploiterez ces paramètres, qui sont bien évidement optionnels.
<action name="case3"
type="servant"
classname="org.esupportail.portal.channels.CMailTo.CMailToServant"
servantfinish="default"> <!-- les 3 values sont précisées -->
<param name="to" >
<value>sgaudin@univ-nancy2.fr</value>
<value>false</value>
<value>true</value>
</param>
<param name="cc" >
<value></value>
<value>false</value>
<value>false</value>
</param>
<param name="bcc" >
<value></value>
<value>false</value>
<value>false</value>
</param>
<param name="subject" >
<value>Coucou</value>
</param>
<param name="content" >
<value>Ceci est un text proposé que vous pouvez modifier.</value>
</param>
</action>
Vous devez écrire la méthode "initServant();". C'est par cette méthode que passe le canal MAG avant de lancer le servant.
Remarque : Vous pouvez ecrire une méthode spéciale pour chaque action faisant référence à un servant à condition de faire un test dans la méthode initServant. En fonction de l'action en cours, effectuer telle ou telle méthode.
Dans notre exemple, nous envoyons les paramètres de l'action en cours
au canal servant.
En fait les paramètres ne sont pas envoyé directement au canal.
Ils sont positionnés dans les "runtimedata" que va utilisé
le canal servant.
Toute la partie instanciation du canal servant est faite automatiquement. Vous n'avez donc que celà à faire pour utiliser le canal mailto.
Vous devez mettre un hyperlien dans votre feuille de style (.xsl) pour acceder à l'action de type servant.
Par exemple dans le menu, un lien va pointer sur l'action "std" qui correspond ici à l'instanciation du canal servant sans paramètre.
<li><a href="{$baseActionURL}?action=std">Formulaire standard</a></li><br/>
Dans le fichier de configuration, une action peut faire reference à une classe specialement dediée à l'envoie automatique de mail :
<action name="case4" classname="org.esupportail.portal.channels.CTestMailToMag.SendAuto" xslfile="test.xsl" rendertype="xsl"> <param name="to" > <value>sgaudin@univ-nancy2.fr</value> <value>false</value> <value>true</value> </param> <param name="cc" > <value></value> <value>false</value> <value>false</value> </param> <param name="bcc" > <value></value> <value>false</value> <value>false</value> </param> <param name="subject" > <value>Coucou</value> </param> <param name="content" > <value>Ceci est le texte du mail envoyé automatiquement.</value> </param> </action>
Dans notre exemple, la classe SendAuto ne me met en place que le constructeur pour positionner les paramètres saisis dans ce fichier de configuration. Pour ceci, vous devez créer un Mail :
Mail myMail = new Mail();
Bouclez sur les paramètres pour les ajouter.
Puis envoyez les mail.
try {
myMail.send();
} catch (MalFormedMailException e) {
//catch of MalFormedMailException
e.printStackTrace();
}
Vous remarquerez que dans le cas de l'envoi automatique le servant n'est pas executé. Comme il n'est pas necessaire d'afficher l'interface d'envoi, il est possible d'utiliser directement la methode send de l'objet Mail.
Création : 23 septembre 2004 - Sébastien GAUDIN (N2) | |
Modifications : |