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

Generated on Fri Dec 13 2013 11:57:58 for ILIAS Release_3_6_x_branch .rev 46809 by  doxygen 1.7.1