* * 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. */ /** * \file htdocs/html.formmail.class.php * \brief Fichier de la classe permettant la generation du formulaire html d'envoi de mail unitaire * \version $Id$ */ require_once(DOL_DOCUMENT_ROOT ."/html.form.class.php"); /** \class FormMail * \brief Classe permettant la generation 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 $withsubstit; // Show substitution array var $withfrom; var $withto; var $withtocc; var $withtopic; var $withfile; // 0=No attaches files, 1=Show attached files, 2=Can add new attached files 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'acces base de donnee */ function FormMail($DB) { $this->db = $DB; $this->withfrom=1; $this->withto=1; $this->withtocc=1; $this->withtoccc=0; $this->witherrorsto=0; $this->withtopic=1; $this->withfile=0; $this->withbody=1; $this->withfromreadonly=1; $this->withreplytoreadonly=1; $this->withtoreadonly=0; $this->withtoccreadonly=0; $this->witherrorstoreadonly=0; $this->withtopicreadonly=0; $this->withbodyreadonly=0; $this->withdeliveryreceiptreadonly=0; return 1; } /** * Clear list of attached files in send mail form (stored in session) */ function clear_attached_files() { global $conf,$user; // Set tmp user directory $vardir=$conf->user->dir_output."/".$user->id; $upload_dir = $vardir.'/temp/'; if (is_dir($upload_dir)) dol_delete_dir_recursive($upload_dir); unset($_SESSION["listofpaths"]); unset($_SESSION["listofnames"]); unset($_SESSION["listofmimes"]); } /** * Add a file into the list of attached files (stored in SECTION array) * * @param unknown_type $path * @param unknown_type $file * @param unknown_type $type */ function add_attached_files($path,$file,$type) { $listofpaths=array(); $listofnames=array(); $listofmimes=array(); if (! empty($_SESSION["listofpaths"])) $listofpaths=explode(';',$_SESSION["listofpaths"]); if (! empty($_SESSION["listofnames"])) $listofnames=explode(';',$_SESSION["listofnames"]); if (! empty($_SESSION["listofmimes"])) $listofmimes=explode(';',$_SESSION["listofmimes"]); if (! in_array($file,$listofnames)) { $listofpaths[]=$path; $listofnames[]=$file; $listofmimes[]=$type; $_SESSION["listofpaths"]=join(';',$listofpaths); $_SESSION["listofnames"]=join(';',$listofnames); $_SESSION["listofmimes"]=join(';',$listofmimes); } } /** * Remove a file from the list of attached files (stored in SECTION array) * * @param unknown_type $file */ function remove_attached_files($keytodelete) { $listofpaths=array(); $listofnames=array(); $listofmimes=array(); if (! empty($_SESSION["listofpaths"])) $listofpaths=explode(';',$_SESSION["listofpaths"]); if (! empty($_SESSION["listofnames"])) $listofnames=explode(';',$_SESSION["listofnames"]); if (! empty($_SESSION["listofmimes"])) $listofmimes=explode(';',$_SESSION["listofmimes"]); if ($keytodelete >= 0) { unset ($listofpaths[$keytodelete]); unset ($listofnames[$keytodelete]); unset ($listofmimes[$keytodelete]); $_SESSION["listofpaths"]=join(';',$listofpaths); $_SESSION["listofnames"]=join(';',$listofnames); $_SESSION["listofmimes"]=join(';',$listofmimes); //var_dump($_SESSION['listofpaths']); } } /** * Return list of attached files (stored in SECTION array) * * @return unknown_type $type */ function get_attached_files() { $listofpaths=array(); $listofnames=array(); $listofmimes=array(); if (! empty($_SESSION["listofpaths"])) $listofpaths=explode(';',$_SESSION["listofpaths"]); if (! empty($_SESSION["listofnames"])) $listofnames=explode(';',$_SESSION["listofnames"]); if (! empty($_SESSION["listofmimes"])) $listofmimes=explode(';',$_SESSION["listofmimes"]); return array('paths'=>$listofpaths, 'names'=>$listofnames, 'mimes'=>$listofmimes); } /** * \brief Show the form to input an email * \param addfileaction Name of action when posting file attachments * \param removefileaction Name of action when removing file attachments * \remarks this->withfile: 0=No attaches files, 1=Show attached files, 2=Can add new attached files */ function show_form($addfileaction='addfile',$removefileaction='removefile') { global $conf, $langs, $user; $langs->load("other"); $langs->load("mails"); // Define list of attached files $listofpaths=array(); $listofnames=array(); $listofmimes=array(); if (! empty($_SESSION["listofpaths"])) $listofpaths=explode(';',$_SESSION["listofpaths"]); if (! empty($_SESSION["listofnames"])) $listofnames=explode(';',$_SESSION["listofnames"]); if (! empty($_SESSION["listofmimes"])) $listofmimes=explode(';',$_SESSION["listofmimes"]); $form=new Form($DB); print "\n\n"; print "
\n"; print "\n"; } /** * \brief Affiche la partie de formulaire pour saisie d'un mail * \param withtopic 1 pour proposer a la saisie le sujet * \param withbody 1 pour proposer a la saisie le corps du message * \param withfile 1 pour proposer a la saisie l'ajout d'un fichier joint * \todo Fonction a virer quand fichier /comm/mailing.php vire (= quand ecran dans /comm/mailing prets) */ function mail_topicmessagefile($withtopic=1,$withbody=1,$withfile=1,$defaultbody) { global $langs; $langs->load("other"); print "| ".$langs->trans("MailTopic")." | "; print ""; print ""; print " |
| ".$langs->trans("MailText")." | "; print ""; print ""; print " |
| ".$langs->trans("MailFile")." | "; print ""; print "trans("Upload")."\"/>"; print " |