* * 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 * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * $Id$ * $Source$ */ /** \file htdocs/html.formmail.class.php \brief Fichier de la classe permettant la génération du formulaire html d'envoi de mail unitaire \version $Revision$ */ require_once(DOL_DOCUMENT_ROOT ."/html.form.class.php"); /** \class FormMail \brief Classe permettant la génération du formulaire html d'envoi de mail unitaire \remarks Utilisation: $formail = new FormMail($db) \remarks $formmail->proprietes=1 ou chaine ou tableau de valeurs \remarks $formmail->show_form() affiche le formulaire */ 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 $withcancel; var $substit=array(); var $param=array(); var $error; /** \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) { foreach ($this->substit as $key=>$value) { $chaine=ereg_replace($key,$value,$chaine); } return $chaine; } /* * \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\n"; print "
param["returnurl"]."\">\n"; foreach ($this->param as $key=>$value) { print "\n"; } print "\n"; // From if ($this->withfrom) { if ($this->withfromreadonly) { print ''; print ''; print "\n"; print "\n"; } } // Replyto if ($this->withreplyto) { if ($this->withreplytoreadonly) { print ''; print ''; print "\n"; } } // To if ($this->withto || is_array($this->withto)) { print '\n"; } // CC if ($this->withcc) { print '\n"; } // Accusé réception if ($this->withdeliveryreceipt) { print '\n"; } // Topic if ($this->withtopic) { $this->withtopic=$this->make_substitutions($this->withtopic); print ""; print ""; print "\n"; } // Si fichier joint if ($this->withfile) { print ""; print ""; print "\n"; } // 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"; } $defaultmessage=$this->make_substitutions($defaultmessage); print ""; print ""; print "\n"; } print "\n"; print "
".$langs->trans("MailFrom")."".$this->fromname.($this->frommail?(" <".$this->frommail.">"):"")."
".$langs->trans("MailReply")."".$this->replytoname.($this->replytomail?(" <".$this->replytomail.">"):""); print "
'.$langs->trans("MailTo").''; if ($this->withtoreadonly) { print (! is_array($this->withto) && ! is_numeric($this->withto))?$this->withto:""; } else { print "withto) && ! is_numeric($this->withto)?$this->withto:"")."\">"; if (is_array($this->withto)) { print " ".$langs->trans("or")." "; $form->select_array("receiver",$this->withto); } } print "
'.$langs->trans("MailCC").''; if ($this->withtoccreadonly) { print (! is_array($this->withtocc) && ! is_numeric($this->withtocc))?$this->withtocc:""; } else { print "withtocc) && ! is_numeric($this->withtocc))?$this->withtocc:"")."\">"; if (is_array($this->withtocc)) { print " ".$langs->trans("or")." "; $form->select_array("receivercc",$this->withtocc); } } print "
'.$langs->trans("DeliveryReceipt").''; if ($this->withdeliveryreceiptreadonly) { print yn($this->withdeliveryreceipt); } else { print $form->select_YesNo(0,'deliveryreceipt'); } print "
".$langs->trans("MailTopic").""; if ($this->withtopicreadonly) { print $this->withtopic; print "withtopic."\">"; } else { print "withtopic."\">"; } print "
".$langs->trans("MailFile").""; print "trans("Upload")."\"/>"; print "
".$langs->trans("MailText").""; if ($this->withbodyreadonly) { print nl2br($defaultmessage); print ''; } else { print ''; } print "
"; print "trans("SendMail")."\">"; if ($this->withcancel) { print "     "; print "trans("Cancel")."\">"; } print "
\n"; print "
\n"; print "\n"; } /* * \brief Affiche la partie de formulaire pour saisie d'un mail * \param withtopic 1 pour proposer à la saisie le sujet * \param withbody 1 pour proposer à la saisie le corps du message * \param withfile 1 pour proposer à la saisie l'ajout d'un fichier joint * \todo Fonction a virer quand fichier /comm/mailing.php viré (= quand ecran dans /comm/mailing prets) */ function mail_topicmessagefile($withtopic=1,$withbody=1,$withfile=1,$defaultbody) { global $langs; $langs->load("other"); print ""; // Topic if ($withtopic) { print ""; print ""; print ""; } // Message if ($withbody) { print ""; print ""; print ""; } // Si fichier joint if ($withfile) { print ""; print ""; print ""; } print "
".$langs->trans("MailTopic").""; print ""; print "
".$langs->trans("MailText").""; print ""; print "
".$langs->trans("MailFile").""; print "trans("Upload")."\"/>"; print "
"; } } ?>