From 053f12ded143181482bde761d4e08994feeee8fa Mon Sep 17 00:00:00 2001 From: Laurent Destailleur <eldy@users.sourceforge.net> Date: Sun, 6 Aug 2006 13:35:19 +0000 Subject: [PATCH] New: Ajout bouton annuler sur formulaire envoi mail --- htdocs/html.formmail.class.php | 426 +++++++++++++++++---------------- 1 file changed, 224 insertions(+), 202 deletions(-) diff --git a/htdocs/html.formmail.class.php b/htdocs/html.formmail.class.php index c310600b20d..690dbc94c92 100644 --- a/htdocs/html.formmail.class.php +++ b/htdocs/html.formmail.class.php @@ -1,5 +1,5 @@ <?PHP -/* Copyright (C) 2005 Laurent Destailleur <eldy@users.sourceforge.net> +/* Copyright (C) 2005-2006 Laurent Destailleur <eldy@users.sourceforge.net> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -37,67 +37,69 @@ require_once(DOL_DOCUMENT_ROOT ."/html.form.class.php"); class FormMail { - var $db; - - var $fromname; - var $frommail; - var $replytoname; - var $replytomail; - var $toname; - var $tomail; - - var $withfrom; - var $withto; - var $withtocc; - var $withtopic; - var $withfile; - var $withbody; - - var $withfromreadonly; - var $withreplytoreadonly; - var $withtoreadonly; - var $withtoccreadonly; - var $withtopicreadonly; - var $withdeliveryreceipt; - - var $substit=array(); - var $param=array(); - - var $errorstr; - - /** \brief Constructeur - \param DB handler d'acc�s base de donn�e - */ + var $db; - function FormMail($DB) - { - $this->db = $DB; - - $this->withfrom=1; - $this->withto=1; - $this->withtocc=1; - $this->withtopic=1; - $this->withfile=0; - $this->withbody=1; + var $fromname; + var $frommail; + var $replytoname; + var $replytomail; + var $toname; + var $tomail; + + var $withfrom; + var $withto; + var $withtocc; + var $withtopic; + var $withfile; + var $withbody; + + var $withfromreadonly; + var $withreplytoreadonly; + var $withtoreadonly; + var $withtoccreadonly; + var $withtopicreadonly; + var $withdeliveryreceipt; + var $withcancel; + + var $substit=array(); + var $param=array(); + + var $errorstr; - $this->withfromreadonly=1; - $this->withreplytoreadonly=1; - $this->withtoreadonly=0; - $this->withtoccreadonly=0; - $this->withtopicreadonly=0; - $this->withbodyreadonly=0; - $this->withdeliveryreceiptreadonly=0; - - return 1; - } + + /** + \brief Constructeur + \param DB handler d'acc�s base de donn�e + */ + function FormMail($DB) + { + $this->db = $DB; + + $this->withfrom=1; + $this->withto=1; + $this->withtocc=1; + $this->withtopic=1; + $this->withfile=0; + $this->withbody=1; + + $this->withfromreadonly=1; + $this->withreplytoreadonly=1; + $this->withtoreadonly=0; + $this->withtoccreadonly=0; + $this->withtopicreadonly=0; + $this->withbodyreadonly=0; + $this->withdeliveryreceiptreadonly=0; + + return 1; + } - /* - * \brief Effectue les substitutions des mots cl�s par les donn�es en fonction du tableau $this->substit - * \param chaine chaine dans laquelle faire les substitutions - * \return string chaine avec les substitutions effectu�es - */ - function make_substitutions($chaine) + /* + * \brief Effectue les substitutions des mots cl�s par les donn�es en fonction du tableau $this->substit + * \param chaine chaine dans laquelle faire les substitutions + * \return string chaine avec les substitutions effectu�es + */ + function make_substitutions($chaine) { foreach ($this->substit as $key=>$value) { $chaine=ereg_replace($key,$value,$chaine); @@ -106,161 +108,181 @@ class FormMail } - /* - * \brief Affiche la partie de formulaire pour saisie d'un mail en fonction des propri�t�s - */ - function show_form() { - global $conf, $langs, $user; + /* + * \brief Affiche la partie de formulaire pour saisie d'un mail en fonction des propri�t�s + */ + function show_form() + { + global $conf, $langs, $user; + + $langs->load("other"); + $langs->load("mails"); + + $form=new Form($DB); + + print "\n<!-- Debut form mail -->\n"; + print "<form method=\"post\" ENCTYPE=\"multipart/form-data\" action=\"".$this->param["returnurl"]."\">\n"; + foreach ($this->param as $key=>$value) + { + print "<input type=\"hidden\" name=\"$key\" value=\"$value\">\n"; + } + print "<table class=\"border\" width=\"100%\">\n"; + + // From + if ($this->withfrom) + { + if ($this->withfromreadonly) + { + print '<input type="hidden" name="fromname" value="'.$this->fromname.'">'; + print '<input type="hidden" name="frommail" value="'.$this->frommail.'">'; + print "<tr><td width=\"180\">".$langs->trans("MailFrom")."</td><td>".$this->fromname.($this->frommail?(" <".$this->frommail.">"):"")."</td></tr>\n"; + print "</td></tr>\n"; + } + } + + // Replyto + if ($this->withreplyto) + { + if ($this->withreplytoreadonly) + { + print '<input type="hidden" name="replyname" value="'.$this->replytoname.'">'; + print '<input type="hidden" name="replymail" value="'.$this->replytomail.'">'; + print "<tr><td>".$langs->trans("MailReply")."</td><td>".$this->replytoname.($this->replytomail?(" <".$this->replytomail.">"):""); + print "</td></tr>\n"; + } + } + + // To + if ($this->withto || is_array($this->withto)) + { + print '<tr><td width="180">'.$langs->trans("MailTo").'</td><td>'; + if ($this->withtoreadonly) + { + print (! is_array($this->withto) && ! is_numeric($this->withto))?$this->withto:""; + } + else + { + print "<input size=\"30\" name=\"sendto\" value=\"".(! is_array($this->withto) && ! is_numeric($this->withto)?$this->withto:"")."\">"; + if (is_array($this->withto)) + { + print " ".$langs->trans("or")." "; + $form->select_array("receiver",$this->withto); + } + } + print "</td></tr>\n"; + } + + // CC + if ($this->withcc) + { + print '<tr><td width="180">'.$langs->trans("MailCC").'</td><td>'; + if ($this->withtoccreadonly) + { + print (! is_array($this->withtocc) && ! is_numeric($this->withtocc))?$this->withtocc:""; + } + else + { + print "<input size=\"30\" name=\"sendtocc\" value=\"".((! is_array($this->withtocc) && ! is_numeric($this->withtocc))?$this->withtocc:"")."\">"; + if (is_array($this->withtocc)) + { + print " ".$langs->trans("or")." "; + $form->select_array("receivercc",$this->withtocc); + } + } + print "</td></tr>\n"; + } - $langs->load("other"); - $langs->load("mails"); - - $form=new Form($DB); + // Accus� r�ception + if ($this->withdeliveryreceipt) + { + print '<tr><td width="180">'.$langs->trans("DeliveryReceipt").'</td><td>'; - print "\n<!-- Debut form mail -->\n"; - print "<form method=\"post\" ENCTYPE=\"multipart/form-data\" action=\"".$this->param["returnurl"]."\">\n"; - foreach ($this->param as $key=>$value) { - print "<input type=\"hidden\" name=\"$key\" value=\"$value\">\n"; - } - print "<table class=\"border\" width=\"100%\">\n"; + if ($this->withdeliveryreceiptreadonly) + { + print yn($this->withdeliveryreceipt); + } + else + { + print $form->select_YesNo(0,'deliveryreceipt'); + } - // From - if ($this->withfrom) - { - if ($this->withfromreadonly) { - print '<input type="hidden" name="fromname" value="'.$this->fromname.'">'; - print '<input type="hidden" name="frommail" value="'.$this->frommail.'">'; - print "<tr><td width=\"180\">".$langs->trans("MailFrom")."</td><td>".$this->fromname.($this->frommail?(" <".$this->frommail.">"):"")."</td></tr>\n"; - print "</td></tr>\n"; - } - } + print "</td></tr>\n"; + } - // Replyto - if ($this->withreplyto) - { - if ($this->withreplytoreadonly) { - print '<input type="hidden" name="replyname" value="'.$this->replytoname.'">'; - print '<input type="hidden" name="replymail" value="'.$this->replytomail.'">'; - print "<tr><td>".$langs->trans("MailReply")."</td><td>".$this->replytoname.($this->replytomail?(" <".$this->replytomail.">"):""); - print "</td></tr>\n"; - } - } - - // To - if ($this->withto || is_array($this->withto)) { - print '<tr><td width="180">'.$langs->trans("MailTo").'</td><td>'; - if ($this->withtoreadonly) { - print (! is_array($this->withto) && ! is_numeric($this->withto))?$this->withto:""; - } else { - print "<input size=\"30\" name=\"sendto\" value=\"".(! is_array($this->withto) && ! is_numeric($this->withto)?$this->withto:"")."\">"; - if (is_array($this->withto)) - { - print " ".$langs->trans("or")." "; - $form->select_array("receiver",$this->withto); - } - } - print "</td></tr>\n"; - } - - // CC - if ($this->withcc) - { - print '<tr><td width="180">'.$langs->trans("MailCC").'</td><td>'; - if ($this->withtoccreadonly) { - print (! is_array($this->withtocc) && ! is_numeric($this->withtocc))?$this->withtocc:""; - } else { - print "<input size=\"30\" name=\"sendtocc\" value=\"".((! is_array($this->withtocc) && ! is_numeric($this->withtocc))?$this->withtocc:"")."\">"; - if (is_array($this->withtocc)) - { - print " ".$langs->trans("or")." "; - $form->select_array("receivercc",$this->withtocc); - } - } - print "</td></tr>\n"; - } - - // Accus� r�ception - if ($this->withdeliveryreceipt) - { - print '<tr><td width="180">'.$langs->trans("DeliveryReceipt").'</td><td>'; - - if ($this->withdeliveryreceiptreadonly) { - print yn($this->withdeliveryreceipt); - } - else - { - print $form->select_YesNo(0,'deliveryreceipt'); - } - - print "</td></tr>\n"; - } + // Topic + if ($this->withtopic) + { + $this->withtopic=$this->make_substitutions($this->withtopic); - // Topic - if ($this->withtopic) - { - $this->withtopic=$this->make_substitutions($this->withtopic); + print "<tr>"; + print "<td width=\"180\">".$langs->trans("MailTopic")."</td>"; + print "<td>"; + if ($this->withtopicreadonly) + { + print $this->withtopic; + print "<input type=\"hidden\" size=\"60\" name=\"subject\" value=\"".$this->withtopic."\">"; + } + else + { + print "<input type=\"text\" size=\"60\" name=\"subject\" value=\"".$this->withtopic."\">"; + } + print "</td></tr>\n"; + } - print "<tr>"; - print "<td width=\"180\">".$langs->trans("MailTopic")."</td>"; - print "<td>"; - if ($this->withtopicreadonly) { - print $this->withtopic; - print "<input type=\"hidden\" size=\"60\" name=\"subject\" value=\"".$this->withtopic."\">"; - } - else - { - print "<input type=\"text\" size=\"60\" name=\"subject\" value=\"".$this->withtopic."\">"; - } - print "</td></tr>\n"; - } + // Si fichier joint + if ($this->withfile) + { + print "<tr>"; + print "<td width=\"180\">".$langs->trans("MailFile")."</td>"; + print "<td>"; + print "<input type=\"file\" class=\"flat\" name=\"addedfile\" value=\"".$langs->trans("Upload")."\"/>"; + print "</td></tr>\n"; + } - // Si fichier joint - if ($this->withfile) - { - print "<tr>"; - print "<td width=\"180\">".$langs->trans("MailFile")."</td>"; - print "<td>"; - print "<input type=\"file\" class=\"flat\" name=\"addedfile\" value=\"".$langs->trans("Upload")."\"/>"; - print "</td></tr>\n"; - } + // Message + if ($this->withbody) + { + $defaultmessage=""; - // Message - if ($this->withbody) - { - $defaultmessage=""; + // \todo A partir du type, proposer liste de messages dans table llx_models + if ($this->param["models"]=='body') { $defaultmessage=$this->withbody; } + if ($this->param["models"]=='facture_send') { $defaultmessage="Veuillez trouver ci-joint la facture __FACREF__\n\nCordialement\n\n"; } + if ($this->param["models"]=='facture_relance') { $defaultmessage="Nous apportons � votre connaissance que la facture __FACREF__ ne semble pas avoir �t� r�gl�e. La voici donc, pour rappel, en pi�ce jointe.\n\nCordialement\n\n"; } + if ($this->param["models"]=='propal_send') { $defaultmessage="Veuillez trouver ci-joint la proposition commerciale __PROPREF__\n\nCordialement\n\n"; } + if ($this->param["models"]=='order_send') { $defaultmessage="Veuillez trouver ci-joint la commande __ORDERREF__\n\nCordialement\n\n"; } - // \todo A partir du type, proposer liste de messages dans table llx_models - if ($this->param["models"]=='body') { $defaultmessage=$this->withbody; } - if ($this->param["models"]=='facture_send') { $defaultmessage="Veuillez trouver ci-joint la facture __FACREF__\n\nCordialement\n\n"; } - if ($this->param["models"]=='facture_relance') { $defaultmessage="Nous apportons � votre connaissance que la facture __FACREF__ ne semble pas avoir �t� r�gl�e. La voici donc, pour rappel, en pi�ce jointe.\n\nCordialement\n\n"; } - if ($this->param["models"]=='propal_send') { $defaultmessage="Veuillez trouver ci-joint la proposition commerciale __PROPREF__\n\nCordialement\n\n"; } - if ($this->param["models"]=='order_send') { $defaultmessage="Veuillez trouver ci-joint la commande __ORDERREF__\n\nCordialement\n\n"; } + $defaultmessage=$this->make_substitutions($defaultmessage); - $defaultmessage=$this->make_substitutions($defaultmessage); - - print "<tr>"; - print "<td width=\"180\" valign=\"top\">".$langs->trans("MailText")."</td>"; - print "<td>"; - if ($this->withbodyreadonly) - { - print nl2br($defaultmessage); - print '<input type="hidden" name="message" value="'.$defaultmessage.'">'; - } - else - { - print '<textarea cols="72" rows="8" name="message">'; - print $defaultmessage; - print '</textarea>'; - } - print "</td></tr>\n"; - } - - print "<tr><td align=center colspan=2><center><input class=\"button\" type=\"submit\" value=\"".$langs->trans("SendMail")."\"></center></td></tr>\n"; - print "</table>\n"; + print "<tr>"; + print "<td width=\"180\" valign=\"top\">".$langs->trans("MailText")."</td>"; + print "<td>"; + if ($this->withbodyreadonly) + { + print nl2br($defaultmessage); + print '<input type="hidden" name="message" value="'.$defaultmessage.'">'; + } + else + { + print '<textarea cols="72" rows="8" name="message">'; + print $defaultmessage; + print '</textarea>'; + } + print "</td></tr>\n"; + } - print "</form>\n"; - print "<!-- Fin form mail -->\n"; - } + print "<tr><td align=center colspan=2><center>"; + print "<input class=\"button\" type=\"submit\" name=\"sendmail\" value=\"".$langs->trans("SendMail")."\">"; + if ($this->withcancel) + { + print " "; + print "<input class=\"button\" type=\"submit\" name=\"cancel\" value=\"".$langs->trans("Cancel")."\">"; + } + print "</center></td></tr>\n"; + print "</table>\n"; + + print "</form>\n"; + print "<!-- Fin form mail -->\n"; + } /* -- GitLab