• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

mail_new.php

Go to the documentation of this file.
00001 <?php
00002 /*
00003         +-----------------------------------------------------------------------------+
00004         | ILIAS open source                                                           |
00005         +-----------------------------------------------------------------------------+
00006         | Copyright (c) 1998-2001 ILIAS open source, University of Cologne            |
00007         |                                                                             |
00008         | This program is free software; you can redistribute it and/or               |
00009         | modify it under the terms of the GNU General Public License                 |
00010         | as published by the Free Software Foundation; either version 2              |
00011         | of the License, or (at your option) any later version.                      |
00012         |                                                                             |
00013         | This program is distributed in the hope that it will be useful,             |
00014         | but WITHOUT ANY WARRANTY; without even the implied warranty of              |
00015         | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               |
00016         | GNU General Public License for more details.                                |
00017         |                                                                             |
00018         | You should have received a copy of the GNU General Public License           |
00019         | along with this program; if not, write to the Free Software                 |
00020         | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. |
00021         +-----------------------------------------------------------------------------+
00022 */
00023 
00024 
00033 require_once "./include/inc.header.php";
00034 require_once "./include/inc.mail.php";
00035 require_once "classes/class.ilObjUser.php";
00036 require_once "classes/class.ilFormatMail.php";
00037 require_once "classes/class.ilMailbox.php";
00038 require_once "classes/class.ilFileDataMail.php";
00039 
00040 $lng->loadLanguageModule("mail");
00041 
00042 $_POST["attachments"] = $_POST["attachments"] ? $_POST["attachments"] : array();
00043 
00044 $umail = new ilFormatMail($_SESSION["AccountId"]);
00045 $mfile = new ilFileDataMail($_SESSION["AccountId"]);
00046 
00047 // CHECK HACK
00048 if (!$rbacsystem->checkAccess("mail_visible",$umail->getMailObjectReferenceId()))
00049 {
00050         $ilias->raiseError($lng->txt("permission_denied"),$ilias->error_obj->WARNING);
00051 }
00052 
00053 $tpl->addBlockFile("CONTENT", "content", "tpl.mail_new.html");
00054 $tpl->addBlockFile("STATUSLINE", "statusline", "tpl.statusline.html");
00055 $tpl->setVariable("TXT_COMPOSE",$lng->txt("mail_compose"));
00056 infoPanel();
00057 
00058 // LOCATOR
00059 setLocator($_GET["mobj_id"],'mail_new.php',$_SESSION["AccountId"],"");
00060 
00061 // SEND MESSAGE
00062 if(isset($_POST["cmd"]["send"]))
00063 {
00064         $f_message = $umail->formatLinebreakMessage(ilUtil::stripSlashes($_POST["m_message"]));
00065         $umail->setSaveInSentbox(true);
00066         if($error_message = $umail->sendMail($_POST["rcp_to"],$_POST["rcp_cc"],
00067                                                                                  $_POST["rcp_bcc"],
00068                                                                                  ilUtil::stripSlashes($_POST["m_subject"]),
00069                                                                                  $f_message,
00070                                                                                  $_POST["attachments"],$_POST["m_type"]))
00071         {
00072                 sendInfo($error_message);
00073         }
00074         else
00075         {
00076                 $mbox = new ilMailbox($_SESSION["AccountId"]);
00077 
00078                 sendInfo($lng->txt("mail_message_send",true));
00079                 header("location: mail.php?sent=1&mobj_id=".$mbox->getInboxFolder());
00080                 exit;
00081         }
00082 }
00083 
00084 // SAVE IN DRAFT FOLDER
00085 if(isset($_POST["cmd"]["save_message"]))
00086 {
00087         if(!$_POST["m_subject"])
00088         {
00089                 $_POST["m_subject"] = "No title";
00090         }
00091         $mbox = new ilMailbox($_SESSION["AccountId"]);
00092         $drafts_id = $mbox->getDraftsFolder();
00093         
00094         if(isset($_SESSION["draft"]))
00095         {
00096                 $umail->updateDraft($drafts_id,$_POST["attachments"],$_POST["rcp_to"],$_POST["rcp_cc"],
00097                                                                   $_POST["rcp_bcc"],$_POST["m_type"],$_POST["m_email"],
00098                                                                   ilUtil::stripSlashes($_POST["m_subject"]),
00099                                                                   ilUtil::stripSlashes($_POST["m_message"]),$_SESSION["draft"]);
00100                 session_unregister("draft");
00101                 sendInfo($lng->txt("mail_saved"),true);
00102                 header("location: mail.php?mobj_id=".$mbox->getInboxFolder());
00103                 exit;
00104         }
00105         else
00106         {
00107                 $mbox = new ilMailbox($_SESSION["AccountId"]);
00108                 $drafts_id = $mbox->getDraftsFolder();
00109 
00110                 if($umail->sendInternalMail($drafts_id,$_SESSION["AccountId"],$_POST["attachments"],$_POST["rcp_to"],$_POST["rcp_cc"],
00111                                                                         $_POST["rcp_bcc"],'read',$_POST["m_type"],$_POST["m_email"],
00112                                                                         ilUtil::stripSlashes($_POST["m_subject"]),
00113                                                                         ilUtil::stripSlashes($_POST["m_message"]),$_SESSION["AccountId"]))
00114                 {
00115                         sendInfo($lng->txt("mail_saved"));
00116                 }
00117                 else
00118                 {
00119                         sendInfo($lng->txt("mail_send_error"));
00120                 }
00121         }
00122 }
00123 
00124 // SEARCH RECIPIENTS
00125 if(isset($_POST["cmd"]["rcp_to"]))
00126 {
00127         $_SESSION["mail_search"] = 'to';
00128         sendInfo($lng->txt("mail_insert_query"));
00129 }
00130 if(isset($_POST["cmd"]["rcp_cc"]))
00131 {
00132         $_SESSION["mail_search"] = 'cc';
00133         sendInfo($lng->txt("mail_insert_query"));
00134 }
00135 if(isset($_POST["cmd"]["rcp_bc"]))
00136 {
00137         $_SESSION["mail_search"] = 'bc';
00138         sendInfo($lng->txt("mail_insert_query"));
00139 }
00140 
00141 // EDIT ATTACHMENTS
00142 if(isset($_POST["cmd"]["edit"]))
00143 {
00144         $umail->savePostData($_SESSION["AccountId"],$_POST["attachments"],
00145                                                  $_POST["rcp_to"],$_POST["rcp_cc"],$_POST["rcp_bcc"],$_POST["m_type"],
00146                                                  $_POST["m_email"],
00147                                                  ilUtil::stripSlashes($_POST["m_subject"]),
00148                                                  ilUtil::stripSlashes($_POST["m_message"]));
00149         header("location: mail_attachment.php?mobj_id=$_GET[mobj_id]");
00150 }
00151 
00152 // SEARCH BUTTON CLICKED
00153 if(isset($_POST["cmd"]["search"]))
00154 {
00155         $umail->savePostData($_SESSION["AccountId"],$_POST["attachments"],$_POST["rcp_to"],
00156                                                  $_POST["rcp_cc"],$_POST["rcp_bcc"],$_POST["m_type"],
00157                                                  $_POST["m_email"],
00158                                                  ilUtil::stripSlashes($_POST["m_subject"]),
00159                                                  ilUtil::stripSlashes($_POST["m_message"]));
00160         // IF NO TYPE IS GIVEN SEARCH IN BOTH 'system' and 'addressbook'
00161         if(!$_POST["type_system"] and !$_POST["type_addressbook"])
00162         {
00163                 $_POST["type_system"] = $_POST["type_addressbook"] = 1;
00164         }
00165         $get = '';
00166         if($_POST["type_system"])
00167         {
00168                 $get .= "&system=1";
00169         }
00170         if($_POST["type_addressbook"])
00171         {
00172                 $get .= "&addressbook=1";
00173         }
00174         if(strlen(trim($_POST['search'])) < 3)
00175         {
00176                 $lng->loadLanguageModule('search');
00177                 sendInfo($lng->txt('search_minimum_three'));
00178                 unset($_POST['cmd']);
00179                 $_POST['cmd']['rcp_to'] = true;
00180         }
00181         else
00182         {
00183                 header("location: mail_search.php?mobj_id=$_GET[mobj_id]&search=".urlencode($_POST["search"]).$get);
00184                 exit();
00185         }
00186 }
00187 if(isset($_POST["cmd"]["search_cancel"]) or isset($_POST["cmd"]["cancel"]))
00188 {
00189         unset($_SESSION["mail_search"]);
00190 }
00191 
00192 // BUTTONS
00193 include "./include/inc.mail_buttons.php";
00194 
00195 
00196 // FORWARD, REPLY, SEARCH
00197 
00198 switch($_GET["type"])
00199 {
00200         case 'reply':
00201                 $mail_data = $umail->getMail($_GET["mail_id"]);
00202                 $mail_data["m_subject"] = $umail->formatReplySubject();
00203                 $mail_data["m_message"] = $umail->formatReplyMessage(); 
00204                 $mail_data["m_message"] = $umail->appendSignature();
00205                 // NO ATTACHMENTS FOR REPLIES
00206                 $mail_data["attachments"] = array();
00207                 $mail_data["rcp_to"] = $umail->formatReplyRecipient();
00208                 break;
00209 
00210         case 'search_res':
00211                 $mail_data = $umail->getSavedData();
00212                 if($_POST["search_name"])
00213                 {
00214                         $mail_data = $umail->appendSearchResult($_POST["search_name"],$_SESSION["mail_search"]);
00215                 }
00216                 unset($_SESSION["mail_search"]);
00217                 break;
00218 
00219         case 'attach':
00220                 $mail_data = $umail->getSavedData();
00221                 break;
00222 
00223         case 'draft':
00224                 $_SESSION["draft"] = $_GET["mail_id"];
00225                 $mail_data = $umail->getMail($_GET["mail_id"]);
00226                 break;
00227 
00228         case 'forward':
00229                 $mail_data = $umail->getMail($_GET["mail_id"]);
00230                 $mail_data["rcp_to"] = $mail_data["rcp_cc"] = $mail_data["rcp_bcc"] = '';
00231                 $mail_data["m_subject"] = $umail->formatForwardSubject();
00232                 $mail_data["m_message"] = $umail->appendSignature();
00233                 if(count($mail_data["attachments"]))
00234                 {
00235                         if($error = $mfile->adoptAttachments($mail_data["attachments"],$_GET["mail_id"]))
00236                         {
00237                                 sendInfo($error);
00238                         }
00239                 }
00240                 break;
00241 
00242         case 'new':
00243                 $mail_data["rcp_to"] = $_GET['rcp_to'];
00244                 $mail_data["m_message"] = $umail->appendSignature();
00245                 break;
00246 
00247         case 'address':
00248                         $mail_data["rcp_to"] = urldecode($_GET["rcp"]);
00249                         break;
00250 
00251         default:
00252                 // GET DATA FROM POST
00253                 $mail_data = $_POST;
00254                 break;
00255 }
00256 $tpl->setVariable("ACTION", "mail_new.php?mobj_id=$_GET[mobj_id]");
00257 
00258 // SEARCH BLOCK
00259 if(isset($_POST["cmd"]["rcp_to"]) or
00260    isset($_POST["cmd"]["rcp_cc"]) or
00261    isset($_POST["cmd"]["rcp_bc"]))
00262 #   isset($_POST["cmd"][""] == $lng->txt("search"))
00263 {
00264         $tpl->setCurrentBlock("search");
00265         $tpl->setVariable("TXT_SEARCH_FOR",$lng->txt("search_for"));
00266         $tpl->setVariable("TXT_SEARCH_SYSTEM",$lng->txt("mail_search_system"));
00267         $tpl->setVariable("TXT_SEARCH_ADDRESS",$lng->txt("mail_search_addressbook"));
00268         $tpl->setVariable("BUTTON_SEARCH",$lng->txt("search"));
00269         $tpl->setVariable("BUTTON_CANCEL",$lng->txt("cancel"));
00270 }
00271 
00272 // RECIPIENT
00273 $tpl->setVariable("TXT_RECIPIENT", $lng->txt("mail_to"));
00274 $tpl->setVariable("TXT_SEARCH_RECIPIENT", $lng->txt("search_recipient"));
00275 $tpl->setVariable("BUTTON_TO",$lng->txt("mail_to_search"));
00276 // CC
00277 $tpl->setVariable("TXT_CC", $lng->txt("cc"));
00278 $tpl->setVariable("TXT_SEARCH_CC_RECIPIENT", $lng->txt("search_cc_recipient"));
00279 $tpl->setVariable("BUTTON_CC",$lng->txt("mail_cc_search"));
00280 // BCC
00281 $tpl->setVariable("TXT_BC", $lng->txt("bc"));
00282 $tpl->setVariable("TXT_SEARCH_BC_RECIPIENT", $lng->txt("search_bc_recipient"));
00283 $tpl->setVariable("BUTTON_BC",$lng->txt("mail_bc_search"));
00284 // SUBJECT
00285 $tpl->setVariable("TXT_SUBJECT", $lng->txt("subject"));
00286 
00287 // TYPE
00288 $tpl->setVariable("TXT_TYPE", $lng->txt("type"));
00289 $tpl->setVariable("TXT_NORMAL", $lng->txt("mail_intern"));
00290 if(!is_array($mail_data["m_type"]) or (is_array($mail_data["m_type"]) and in_array('normal',$mail_data["m_type"])))
00291 {
00292         $tpl->setVariable("CHECKED_NORMAL",'checked="checked"');
00293 }
00294 
00295 // ONLY IF SYSTEM MAILS ARE ALLOWED
00296 if($rbacsystem->checkAccess("system_message",$umail->getMailObjectReferenceId()))
00297 {
00298         $tpl->setCurrentBlock("system_message");
00299         $tpl->setVariable("SYSTEM_TXT_TYPE", $lng->txt("type"));
00300         $tpl->setVariable("TXT_SYSTEM", $lng->txt("system_message"));
00301         if(is_array($mail_data["m_type"]) and in_array('system',$mail_data["m_type"]))
00302         {
00303                 $tpl->setVariable("CHECKED_SYSTEM",'checked="checked"');
00304         }
00305         $tpl->parseCurrentBlock();
00306 }
00307         
00308 // ONLY IF SMTP MAILS ARE ALLOWED
00309 if($rbacsystem->checkAccess("smtp_mail",$umail->getMailObjectReferenceId()))
00310 {
00311         $tpl->setCurrentBlock("allow_smtp");
00312         $tpl->setVariable("TXT_EMAIL", $lng->txt("email"));
00313         if(is_array($mail_data["m_type"]) and in_array('email',$mail_data["m_type"]))
00314         {
00315                 $tpl->setVariable("CHECKED_EMAIL",'checked="checked"');
00316         }
00317         $tpl->parseCurrentBlock();
00318 }
00319 
00320 // ATTACHMENT
00321 $tpl->setVariable("TXT_ATTACHMENT",$lng->txt("mail_attachments"));
00322 // SWITCH BUTTON 'add' 'edit'
00323 if($mail_data["attachments"])
00324 {
00325         $tpl->setVariable("BUTTON_EDIT",$lng->txt("edit"));
00326 }
00327 else
00328 {
00329         $tpl->setVariable("BUTTON_EDIT",$lng->txt("add"));
00330 }
00331 
00332 // MESSAGE
00333 $tpl->setVariable("TXT_MSG_CONTENT", $lng->txt("message_content"));
00334 
00335 // BUTTONS
00336 $tpl->setVariable("TXT_SEND", $lng->txt("send"));
00337 $tpl->setVariable("TXT_MSG_SAVE", $lng->txt("save_message"));
00338 
00339 // MAIL DATA
00340 $tpl->setVariable("RCP_TO", ilUtil::stripSlashes($mail_data["rcp_to"]));
00341 $tpl->setVariable("RCP_CC", ilUtil::stripSlashes($mail_data["rcp_cc"]));
00342 $tpl->setVariable("RCP_BCC",ilUtil::stripSlashes($mail_data["rcp_bcc"]));
00343 
00344 $tpl->setVariable("M_SUBJECT",ilUtil::stripSlashes($mail_data["m_subject"]));
00345 
00346 if(count($mail_data["attachments"]))
00347 {
00348         $tpl->setCurrentBlock("files");
00349         $tpl->setCurrentBlock("hidden");
00350         foreach($mail_data["attachments"] as $data)
00351         {
00352                 $tpl->setVariable("ATTACHMENTS",$data);
00353                 $tpl->parseCurrentBlock();
00354         }
00355         $tpl->setVariable("ROWS",count($mail_data["attachments"]));
00356         $tpl->setVariable("FILES",implode("\n",$mail_data["attachments"]));
00357         $tpl->parseCurrentBlock();
00358 }
00359 $tpl->setVariable("M_MESSAGE",ilUtil::stripSlashes($mail_data["m_message"]));
00360 $tpl->parseCurrentBlock();
00361 
00362 $tpl->show();
00363 ?>

Generated on Fri Dec 13 2013 10:18:30 for ILIAS Release_3_5_x_branch .rev 46805 by  doxygen 1.7.1