• 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"],$_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"],$_POST["m_subject"],$f_message,
00068                                                                                  $_POST["attachments"],$_POST["m_type"]))
00069         {
00070                 sendInfo($error_message);
00071         }
00072         else
00073         {
00074                 $mbox = new ilMailbox($_SESSION["AccountId"]);
00075 
00076                 sendInfo($lng->txt("mail_message_send",true));
00077                 header("location: mail.php?sent=1&mobj_id=".$mbox->getInboxFolder());
00078                 exit;
00079         }
00080 }
00081 
00082 // SAVE IN DRAFT FOLDER
00083 if(isset($_POST["cmd"]["save_message"]))
00084 {
00085         if(!$_POST["m_subject"])
00086         {
00087                 $_POST["m_subject"] = "No title";
00088         }
00089         $mbox = new ilMailbox($_SESSION["AccountId"]);
00090         $drafts_id = $mbox->getDraftsFolder();
00091         
00092         if(isset($_SESSION["draft"]))
00093         {
00094                 $umail->updateDraft($drafts_id,$_POST["attachments"],$_POST["rcp_to"],$_POST["rcp_cc"],
00095                                                                   $_POST["rcp_bcc"],$_POST["m_type"],$_POST["m_email"],
00096                                                                   ilUtil::stripSlashes($_POST["m_subject"]),
00097                                                                   ilUtil::stripSlashes($_POST["m_message"]),$_SESSION["draft"]);
00098                 session_unregister("draft");
00099                 sendInfo($lng->txt("mail_saved"),true);
00100                 header("location: mail.php?mobj_id=".$mbox->getInboxFolder());
00101                 exit;
00102         }
00103         else
00104         {
00105                 $mbox = new ilMailbox($_SESSION["AccountId"]);
00106                 $drafts_id = $mbox->getDraftsFolder();
00107 
00108                 if($umail->sendInternalMail($drafts_id,$_SESSION["AccountId"],$_POST["attachments"],$_POST["rcp_to"],$_POST["rcp_cc"],
00109                                                                         $_POST["rcp_bcc"],'read',$_POST["m_type"],$_POST["m_email"],
00110                                                                         ilUtil::stripSlashes($_POST["m_subject"]),
00111                                                                         ilUtil::stripSlashes($_POST["m_message"]),$_SESSION["AccountId"]))
00112                 {
00113                         sendInfo($lng->txt("mail_saved"));
00114                 }
00115                 else
00116                 {
00117                         sendInfo($lng->txt("mail_send_error"));
00118                 }
00119         }
00120 }
00121 
00122 // SEARCH RECIPIENTS
00123 if(isset($_POST["cmd"]["rcp_to"]))
00124 {
00125         $_SESSION["mail_search"] = 'to';
00126         sendInfo($lng->txt("mail_insert_query"));
00127 }
00128 if(isset($_POST["cmd"]["rcp_cc"]))
00129 {
00130         $_SESSION["mail_search"] = 'cc';
00131         sendInfo($lng->txt("mail_insert_query"));
00132 }
00133 if(isset($_POST["cmd"]["rcp_bc"]))
00134 {
00135         $_SESSION["mail_search"] = 'bc';
00136         sendInfo($lng->txt("mail_insert_query"));
00137 }
00138 
00139 // EDIT ATTACHMENTS
00140 if(isset($_POST["cmd"]["edit"]))
00141 {
00142         $umail->savePostData($_SESSION["AccountId"],$_POST["attachments"],
00143                                                  $_POST["rcp_to"],$_POST["rcp_cc"],$_POST["rcp_bcc"],$_POST["m_type"],
00144                                                  $_POST["m_email"],
00145                                                  ilUtil::stripSlashes($_POST["m_subject"]),
00146                                                  ilUtil::stripSlashes($_POST["m_message"]));
00147         header("location: mail_attachment.php?mobj_id=$_GET[mobj_id]");
00148 }
00149 
00150 // SEARCH BUTTON CLICKED
00151 if(isset($_POST["cmd"]["search"]))
00152 {
00153         $umail->savePostData($_SESSION["AccountId"],$_POST["attachments"],$_POST["rcp_to"],
00154                                                  $_POST["rcp_cc"],$_POST["rcp_bcc"],$_POST["m_type"],
00155                                                  $_POST["m_email"],
00156                                                  ilUtil::stripSlashes($_POST["m_subject"]),
00157                                                  ilUtil::stripSlashes($_POST["m_message"]));
00158         // IF NO TYPE IS GIVEN SEARCH IN BOTH 'system' and 'addressbook'
00159         if(!$_POST["type_system"] and !$_POST["type_addressbook"])
00160         {
00161                 $_POST["type_system"] = $_POST["type_addressbook"] = 1;
00162         }
00163         $get = '';
00164         if($_POST["type_system"])
00165         {
00166                 $get .= "&system=1";
00167         }
00168         if($_POST["type_addressbook"])
00169         {
00170                 $get .= "&addressbook=1";
00171         }
00172         header("location: mail_search.php?mobj_id=$_GET[mobj_id]&search=".urlencode($_POST["search"]).$get);
00173         exit();
00174 }
00175 if(isset($_POST["cmd"]["search_cancel"]) or isset($_POST["cmd"]["cancel"]))
00176 {
00177         unset($_SESSION["mail_search"]);
00178 }
00179 
00180 // BUTTONS
00181 include "./include/inc.mail_buttons.php";
00182 
00183 
00184 // FORWARD, REPLY, SEARCH
00185 
00186 switch($_GET["type"])
00187 {
00188         case 'reply':
00189                 $mail_data = $umail->getMail($_GET["mail_id"]);
00190                 $mail_data["m_subject"] = $umail->formatReplySubject();
00191                 $mail_data["m_message"] = $umail->formatReplyMessage(); 
00192                 $mail_data["m_message"] = $umail->appendSignature();
00193                 // NO ATTACHMENTS FOR REPLIES
00194                 $mail_data["attachments"] = array();
00195                 $mail_data["rcp_to"] = $umail->formatReplyRecipient();
00196                 break;
00197 
00198         case 'search_res':
00199                 $mail_data = $umail->getSavedData();
00200                 if($_POST["search_name"])
00201                 {
00202                         $mail_data = $umail->appendSearchResult($_POST["search_name"],$_SESSION["mail_search"]);
00203                 }
00204                 unset($_SESSION["mail_search"]);
00205                 break;
00206 
00207         case 'attach':
00208                 $mail_data = $umail->getSavedData();
00209                 break;
00210 
00211         case 'draft':
00212                 $_SESSION["draft"] = $_GET["mail_id"];
00213                 $mail_data = $umail->getMail($_GET["mail_id"]);
00214                 break;
00215 
00216         case 'forward':
00217                 $mail_data = $umail->getMail($_GET["mail_id"]);
00218                 $mail_data["rcp_to"] = $mail_data["rcp_cc"] = $mail_data["rcp_bcc"] = '';
00219                 $mail_data["m_subject"] = $umail->formatForwardSubject();
00220                 $mail_data["m_message"] = $umail->appendSignature();
00221                 if(count($mail_data["attachments"]))
00222                 {
00223                         if($error = $mfile->adoptAttachments($mail_data["attachments"],$_GET["mail_id"]))
00224                         {
00225                                 sendInfo($error);
00226                         }
00227                 }
00228                 break;
00229 
00230         case 'new':
00231                 $mail_data["rcp_to"] = $_GET['rcp_to'];
00232                 $mail_data["m_message"] = $umail->appendSignature();
00233                 break;
00234 
00235         case 'address':
00236                         $mail_data["rcp_to"] = urldecode($_GET["rcp"]);
00237                         break;
00238 
00239         default:
00240                 // GET DATA FROM POST
00241                 $mail_data = $_POST;
00242                 break;
00243 }
00244 $tpl->setVariable("ACTION", "mail_new.php?mobj_id=$_GET[mobj_id]");
00245 
00246 // SEARCH BLOCK
00247 if(isset($_POST["cmd"]["rcp_to"]) or
00248    isset($_POST["cmd"]["rcp_cc"]) or
00249    isset($_POST["cmd"]["rcp_bc"]))
00250 #   isset($_POST["cmd"][""] == $lng->txt("search"))
00251 {
00252         $tpl->setCurrentBlock("search");
00253         $tpl->setVariable("TXT_SEARCH_FOR",$lng->txt("search_for"));
00254         $tpl->setVariable("TXT_SEARCH_SYSTEM",$lng->txt("mail_search_system"));
00255         $tpl->setVariable("TXT_SEARCH_ADDRESS",$lng->txt("mail_search_addressbook"));
00256         $tpl->setVariable("BUTTON_SEARCH",$lng->txt("search"));
00257         $tpl->setVariable("BUTTON_CANCEL",$lng->txt("cancel"));
00258 }
00259 
00260 // RECIPIENT
00261 $tpl->setVariable("TXT_RECIPIENT", $lng->txt("to"));
00262 $tpl->setVariable("TXT_SEARCH_RECIPIENT", $lng->txt("search_recipient"));
00263 $tpl->setVariable("BUTTON_TO",$lng->txt("mail_to_search"));
00264 // CC
00265 $tpl->setVariable("TXT_CC", $lng->txt("cc"));
00266 $tpl->setVariable("TXT_SEARCH_CC_RECIPIENT", $lng->txt("search_cc_recipient"));
00267 $tpl->setVariable("BUTTON_CC",$lng->txt("mail_cc_search"));
00268 // BCC
00269 $tpl->setVariable("TXT_BC", $lng->txt("bc"));
00270 $tpl->setVariable("TXT_SEARCH_BC_RECIPIENT", $lng->txt("search_bc_recipient"));
00271 $tpl->setVariable("BUTTON_BC",$lng->txt("mail_bc_search"));
00272 // SUBJECT
00273 $tpl->setVariable("TXT_SUBJECT", $lng->txt("subject"));
00274 
00275 // TYPE
00276 $tpl->setVariable("TXT_TYPE", $lng->txt("type"));
00277 $tpl->setVariable("TXT_NORMAL", $lng->txt("mail_intern"));
00278 if(!is_array($mail_data["m_type"]) or (is_array($mail_data["m_type"]) and in_array('normal',$mail_data["m_type"])))
00279 {
00280         $tpl->setVariable("CHECKED_NORMAL",'checked="checked"');
00281 }
00282 
00283 // ONLY IF SYSTEM MAILS ARE ALLOWED
00284 if($rbacsystem->checkAccess("system_message",$umail->getMailObjectReferenceId()))
00285 {
00286         $tpl->setCurrentBlock("system_message");
00287         $tpl->setVariable("SYSTEM_TXT_TYPE", $lng->txt("type"));
00288         $tpl->setVariable("TXT_SYSTEM", $lng->txt("system_message"));
00289         if(is_array($mail_data["m_type"]) and in_array('system',$mail_data["m_type"]))
00290         {
00291                 $tpl->setVariable("CHECKED_SYSTEM",'checked="checked"');
00292         }
00293         $tpl->parseCurrentBlock();
00294 }
00295         
00296 // ONLY IF SMTP MAILS ARE ALLOWED
00297 if($rbacsystem->checkAccess("smtp_mail",$umail->getMailObjectReferenceId()))
00298 {
00299         $tpl->setCurrentBlock("allow_smtp");
00300         $tpl->setVariable("TXT_EMAIL", $lng->txt("email"));
00301         if(is_array($mail_data["m_type"]) and in_array('email',$mail_data["m_type"]))
00302         {
00303                 $tpl->setVariable("CHECKED_EMAIL",'checked="checked"');
00304         }
00305         $tpl->parseCurrentBlock();
00306 }
00307 
00308 // ATTACHMENT
00309 $tpl->setVariable("TXT_ATTACHMENT",$lng->txt("mail_attachments"));
00310 // SWITCH BUTTON 'add' 'edit'
00311 if($mail_data["attachments"])
00312 {
00313         $tpl->setVariable("BUTTON_EDIT",$lng->txt("edit"));
00314 }
00315 else
00316 {
00317         $tpl->setVariable("BUTTON_EDIT",$lng->txt("add"));
00318 }
00319 
00320 // MESSAGE
00321 $tpl->setVariable("TXT_MSG_CONTENT", $lng->txt("message_content"));
00322 
00323 // BUTTONS
00324 $tpl->setVariable("TXT_SEND", $lng->txt("send"));
00325 $tpl->setVariable("TXT_MSG_SAVE", $lng->txt("save_message"));
00326 
00327 // MAIL DATA
00328 $tpl->setVariable("RCP_TO", ilUtil::stripSlashes($mail_data["rcp_to"]));
00329 $tpl->setVariable("RCP_CC", ilUtil::stripSlashes($mail_data["rcp_cc"]));
00330 $tpl->setVariable("RCP_BCC",ilUtil::stripSlashes($mail_data["rcp_bcc"]));
00331 
00332 $tpl->setVariable("M_SUBJECT",ilUtil::stripSlashes($mail_data["m_subject"]));
00333 
00334 if(count($mail_data["attachments"]))
00335 {
00336         $tpl->setCurrentBlock("files");
00337         $tpl->setCurrentBlock("hidden");
00338         foreach($mail_data["attachments"] as $data)
00339         {
00340                 $tpl->setVariable("ATTACHMENTS",$data);
00341                 $tpl->parseCurrentBlock();
00342         }
00343         $tpl->setVariable("ROWS",count($mail_data["attachments"]));
00344         $tpl->setVariable("FILES",implode("\n",$mail_data["attachments"]));
00345         $tpl->parseCurrentBlock();
00346 }
00347 $tpl->setVariable("M_MESSAGE",ilUtil::stripSlashes($mail_data["m_message"]));
00348 $tpl->parseCurrentBlock();
00349 
00350 $tpl->show();
00351 ?>

Generated on Fri Dec 13 2013 09:06:37 for ILIAS Release_3_4_x_branch .rev 46804 by  doxygen 1.7.1