00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 require_once './Services/User/classes/class.ilObjUser.php';
00025 require_once "Services/Mail/classes/class.ilMailbox.php";
00026 require_once "Services/Mail/classes/class.ilMail.php";
00027
00035 class ilMailFolderGUI
00036 {
00037 private $tpl = null;
00038 private $ctrl = null;
00039 private $lng = null;
00040
00041 private $umail = null;
00042 private $mbox = null;
00043
00044 private $errorDelete = false;
00045
00046 public function __construct()
00047 {
00048 global $tpl, $ilCtrl, $lng, $ilUser;
00049
00050 $this->tpl = $tpl;
00051 $this->ctrl = $ilCtrl;
00052 $this->lng = $lng;
00053
00054 $this->ctrl->saveParameter($this, "mobj_id");
00055
00056 $this->umail = new ilMail($ilUser->getId());
00057 $this->mbox = new ilMailBox($ilUser->getId());
00058
00059 if ($_POST["mobj_id"] != "")
00060 {
00061 $_GET["mobj_id"] = $_POST["mobj_id"];
00062 }
00063
00064 if(!$_GET["mobj_id"])
00065 {
00066 $_GET["mobj_id"] = $this->mbox->getInboxFolder();
00067 }
00068 }
00069
00070 public function executeCommand()
00071 {
00072
00073 if ($_GET["action"] == "deleteMails" &&
00074 $_GET["mail_id"])
00075 {
00076 $_GET["cmd"] = "post";
00077 $_POST["cmd"]["editFolder"] = true;
00078 $_POST["action"] = "deleteMails";
00079 $_POST["mail_id"] = array($_GET["mail_id"]);
00080 }
00081
00082 $forward_class = $this->ctrl->getNextClass($this);
00083 switch($forward_class)
00084 {
00085 case 'ilmailaddressbookgui':
00086 include_once 'Services/Mail/classes/class.ilMailAddressbookGUI.php';
00087
00088 $this->ctrl->forwardCommand(new ilMailAddressbookGUI());
00089 break;
00090
00091 case 'ilmailoptionsgui':
00092 include_once 'Services/Mail/classes/class.ilMailOptionsGUI.php';
00093
00094 $this->ctrl->forwardCommand(new ilMailOptionsGUI());
00095 break;
00096
00097 default:
00098 if (!($cmd = $this->ctrl->getCmd()))
00099 {
00100 $cmd = "showFolder";
00101 }
00102 $this->$cmd();
00103 break;
00104 }
00105 return true;
00106 }
00107
00108 public function add()
00109 {
00110 global $lng, $ilUser;
00111
00112 if($_GET["mail_id"] != "")
00113 {
00114 if (is_array($mail_data = $this->umail->getMail($_GET["mail_id"])))
00115 {
00116 require_once "Services/Mail/classes/class.ilAddressbook.php";
00117 $abook = new ilAddressbook($ilUser->getId());
00118
00119 $tmp_user = new ilObjUser($mail_data["sender_id"]);
00120 if ($abook->checkEntryByLogin($tmp_user->getLogin()) > 0)
00121 {
00122 ilUtil::sendInfo($lng->txt("mail_entry_exists"));
00123 }
00124 else
00125 {
00126 $abook->addEntry($tmp_user->getLogin(),
00127 $tmp_user->getFirstname(),
00128 $tmp_user->getLastname(),
00129 $tmp_user->getEmail());
00130 ilUtil::sendInfo($lng->txt("mail_entry_added"));
00131 }
00132 }
00133 }
00134
00135 $this->showMail();
00136
00137 }
00138
00139 public function cancelEmptyTrash()
00140 {
00141 $this->showFolder();
00142 }
00143
00144 public function performEmptyTrash()
00145 {
00146 $this->umail->deleteMailsOfFolder($_GET["mobj_id"]);
00147
00148 ilUtil::sendInfo($this->lng->txt("mail_deleted"));
00149 $this->showFolder();
00150
00151 return true;
00152 }
00153
00154 public function askForEmptyTrash()
00155 {
00156 if ($this->umail->countMailsOfFolder($_GET["mobj_id"]))
00157 {
00158 ilUtil::sendInfo($this->lng->txt("mail_empty_trash_confirmation"));
00159 $this->askForConfirmation = true;
00160 }
00161
00162 $this->showFolder();
00163
00164 return true;
00165 }
00166
00167 public function showUser()
00168 {
00169 $this->tpl->setVariable("HEADER", $this->lng->txt("mail"));
00170
00171 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.mail_user.html", "Services/Mail");
00172
00173 $this->tpl->addBlockfile("BUTTONS", "buttons", "tpl.buttons.html");
00174
00175 $this->tpl->setCurrentBlock("btn_cell");
00176 $this->ctrl->setParameter($this, "mail_id", $_GET["mail_id"]);
00177 $this->tpl->setVariable("BTN_LINK",$this->ctrl->getLinkTarget($this, "showMail"));
00178 $this->tpl->setVariable("BTN_TXT", $this->lng->txt("back"));
00179 $this->tpl->parseCurrentBlock();
00180
00181 include_once 'Services/User/classes/class.ilObjUserGUI.php';
00182 $user_gui = new ilObjUserGUI("",$_GET["user"], false, false);
00183
00184 $this->tpl->setVariable("TBL_TITLE", $this->lng->txt("profile_of")." ".$user_gui->object->getLogin());
00185 $this->tpl->setVariable("TBL_TITLE_IMG",ilUtil::getImagePath("icon_usr.gif"));
00186 $this->tpl->setVariable("TBL_TITLE_IMG_ALT", $this->lng->txt("public_profile"));
00187
00188 $this->tpl->setVariable('USER_PROFILE', $user_gui->getPublicProfile("", false, true));
00189 $this->tpl->show();
00190
00191 return true;
00192 }
00193
00194 public function showFolder()
00195 {
00196 global $ilUser;
00197
00198 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.mail.html", "Services/Mail");
00199 $this->tpl->setVariable("HEADER", $this->lng->txt("mail"));
00200
00201 $this->ctrl->setParameter($this, "offset", $_GET["offset"]);
00202 $this->ctrl->setParameter($this, "cmd", "post");
00203 $this->tpl->setVariable("ACTION", $this->ctrl->getLinkTarget($this));
00204 $this->ctrl->clearParameters($this);
00205
00206 $isTrashFolder = false;
00207 if ($this->mbox->getTrashFolder() == $_GET["mobj_id"])
00208 {
00209 $isTrashFolder = true;
00210 }
00211
00212
00213 if($_POST["action"] == "deleteMails" &&
00214 !$this->errorDelete &&
00215 $_POST["action"] != "confirm" &&
00216 $isTrashFolder)
00217 {
00218 $this->tpl->setCurrentBlock("CONFIRM_DELETE");
00219 $this->tpl->setVariable("BUTTON_CONFIRM",$this->lng->txt("confirm"));
00220 $this->tpl->setVariable("BUTTON_CANCEL",$this->lng->txt("cancel"));
00221 $this->tpl->parseCurrentBlock();
00222 }
00223
00224
00225 $actions = $this->mbox->getActions($_GET["mobj_id"]);
00226
00227 $this->tpl->setCurrentBlock("mailactions");
00228 foreach($actions as $key => $action)
00229 {
00230 if($key == 'moveMails')
00231 {
00232 $folders = $this->mbox->getSubFolders();
00233 foreach($folders as $folder)
00234 {
00235 if ($folder["type"] != 'trash' ||
00236 !$isTrashFolder)
00237 {
00238 $this->tpl->setVariable("MAILACTION_VALUE", $folder["obj_id"]);
00239 if($folder["type"] != 'user_folder')
00240 {
00241 $this->tpl->setVariable("MAILACTION_NAME",$action." ".$this->lng->txt("mail_".$folder["title"]).($folder["type"] == 'trash' ? " (".$this->lng->txt("delete").")" : ""));
00242 }
00243 else
00244 {
00245 $this->tpl->setVariable("MAILACTION_NAME",$action." ".$folder["title"]);
00246 }
00247 $this->tpl->parseCurrentBlock();
00248 }
00249 }
00250 }
00251 else
00252 {
00253 if ($key != 'deleteMails' ||
00254 $isTrashFolder)
00255 {
00256 $this->tpl->setVariable("MAILACTION_NAME", $action);
00257 $this->tpl->setVariable("MAILACTION_VALUE", $key);
00258 $this->tpl->setVariable("MAILACTION_SELECTED",$_POST["action"] == 'delete' ? 'selected' : '');
00259 $this->tpl->parseCurrentBlock();
00260 }
00261 }
00262 }
00263
00264
00265
00266
00267 if(!isset($_SESSION["viewmode"]) ||
00268 $_SESSION["viewmode"] == 'flat')
00269 {
00270 $this->tpl->setCurrentBlock("show_folder");
00271 $this->tpl->setCurrentBLock("flat_select");
00272
00273 foreach($folders as $folder)
00274 {
00275 if($folder["obj_id"] == $_GET["mobj_id"])
00276 {
00277 $this->tpl->setVariable("FLAT_SELECTED","selected");
00278 }
00279 $this->tpl->setVariable("FLAT_VALUE",$folder["obj_id"]);
00280 if($folder["type"] == 'user_folder')
00281 {
00282 $this->tpl->setVariable("FLAT_NAME", $folder["title"]);
00283 }
00284 else
00285 {
00286 $this->tpl->setVariable("FLAT_NAME", $this->lng->txt("mail_".$folder["title"]));
00287 }
00288 $this->tpl->parseCurrentBlock();
00289 }
00290 $this->tpl->setVariable("TXT_FOLDERS", $this->lng->txt("mail_change_to_folder"));
00291 $this->tpl->setVariable("FOLDER_VALUE",$this->lng->txt("submit"));
00292 $this->tpl->parseCurrentBlock();
00293
00294 #$this->ctrl->setParameter($this, "offset", $_GET["offset"]);
00295 $this->tpl->setVariable("ACTION_FLAT", $this->ctrl->getLinkTarget($this));
00296 #$this->ctrl->clearParameters($this);
00297 }
00298
00299
00300
00301 $mailData = $this->umail->getMailsOfFolder($_GET["mobj_id"]);
00302 $mail_count = count($mailData);
00303
00304 if ($isTrashFolder == true && $mail_count > 0)
00305 {
00306 if ($this->askForConfirmation == true)
00307 {
00308 $this->tpl->setCurrentBlock("CONFIRM_EMPTY_TRASH");
00309 $this->ctrl->setParameter($this, "cmd", "post");
00310 $this->tpl->setVariable("ACTION_EMPTY_TRASH_CONFIRMATION", $this->ctrl->getLinkTarget($this));
00311 $this->tpl->setVariable("BUTTON_CONFIRM_EMPTY_TRASH", $this->lng->txt("confirm"));
00312 $this->tpl->setVariable("BUTTON_CANCEL_EMPTY_TRASH", $this->lng->txt("cancel"));
00313 $this->tpl->parseCurrentBlock();
00314 }
00315
00316 $this->tpl->setCurrentBlock("EMPTY_TRASH");
00317 $this->tpl->setVariable("LINK_EMPTY_TRASH", $this->ctrl->getLinkTarget($this, "askForEmptyTrash"));
00318 $this->tpl->setVariable("TXT_EMPTY_TRASH", $this->lng->txt("mail_empty_trash"));
00319 $this->tpl->parseCurrentBlock();
00320 }
00321
00322
00323 $mail_max_hits = $ilUser->getPref('hits_per_page');
00324 $counter = 0;
00325 foreach ($mailData as $mail)
00326 {
00327 if($mail["sender_id"] &&
00328 !ilObjectFactory::ObjectIdExists($mail["sender_id"]))
00329 {
00330 --$mail_count;
00331 continue;
00332 }
00333
00334 if($mail_count > $mail_max_hits)
00335 {
00336 $params = array(
00337 "mobj_id" => $_GET["mobj_id"]);
00338 }
00339 $start = $_GET["offset"];
00340 $linkbar = ilUtil::Linkbar($this->ctrl->getLinkTarget($this),$mail_count,$mail_max_hits,$start,$params);
00341 if ($linkbar)
00342 {
00343 $this->tpl->setVariable("LINKBAR", $linkbar);
00344 }
00345 if($counter >= ($start+$mail_max_hits))
00346 {
00347 break;
00348 }
00349 if($counter < $start)
00350 {
00351 ++$counter;
00352 continue;
00353 }
00354
00355
00356 ++$counter;
00357 $this->tpl->setCurrentBlock("mails");
00358 $this->tpl->setVariable("ROWCOL","tblrow".(($counter % 2)+1));
00359 $this->tpl->setVariable("MAIL_ID", $mail["mail_id"]);
00360
00361 if(is_array($_POST["mail_id"]))
00362 {
00363 $this->tpl->setVariable("CHECKBOX_CHECKED",in_array($mail["mail_id"],$_POST["mail_id"]) ? 'checked' : "");
00364 }
00365
00366
00367 if($_GET['mobj_id'] == $this->mbox->getSentFolder() ||
00368 $_GET['mobj_id'] == $this->mbox->getDraftsFolder())
00369 {
00370 $this->tpl->setVariable('MAIL_LOGIN', $this->umail->formatNamesForOutput($mail['rcp_to']));
00371 }
00372 else
00373 {
00374 if($mail["sender_id"] != ANONYMOUS_USER_ID)
00375 {
00376 $tmp_user = new ilObjUser($mail["sender_id"]);
00377 if(ilObjUser::_lookupPref($mail['sender_id'], 'public_profile') == 'y')
00378 {
00379 $this->tpl->setVariable('MAIL_FROM', $tmp_user->getFullname());
00380 }
00381 if(!($login = $tmp_user->getLogin()))
00382 {
00383 $login = $mail["import_name"]." (".$this->lng->txt("user_deleted").")";
00384 }
00385 $pic_path = $tmp_user->getPersonalPicturePath("xxsmall");
00386
00387 $this->tpl->setCurrentBlock("pers_image");
00388 $this->tpl->setVariable("IMG_SENDER", $pic_path);
00389 $this->tpl->setVariable("ALT_SENDER", $login);
00390 $this->tpl->parseCurrentBlock();
00391 $this->tpl->setCurrentBlock("mails");
00392
00393 $this->tpl->setVariable("MAIL_LOGIN",$login);
00394 }
00395 else
00396 {
00397 $tmp_user = new ilObjUser(ANONYMOUS_USER_ID);
00398 $pic_path = $tmp_user->getPersonalPicturePath('xxsmall');
00399
00400 $this->tpl->setCurrentBlock('pers_image');
00401 $this->tpl->setVariable('IMG_SENDER', $pic_path);
00402 $this->tpl->setVariable('ALT_SENDER', ilMail::_getAnonymousName());
00403 $this->tpl->parseCurrentBlock();
00404 $this->tpl->setCurrentBlock('mails');
00405
00406 $this->tpl->setVariable('MAIL_LOGIN', ilMail::_getAnonymousName());
00407 }
00408 }
00409 $this->tpl->setVariable("MAILCLASS", $mail["m_status"] == 'read' ? 'mailread' : 'mailunread');
00410
00411 if($_GET["mobj_id"] == $this->mbox->getDraftsFolder())
00412 {
00413 $this->ctrl->setParameterByClass("ilmailformgui", "mail_id", $mail["mail_id"]);
00414 $this->ctrl->setParameterByClass("ilmailformgui", "type", "draft");
00415 $this->tpl->setVariable("MAIL_LINK_READ", $this->ctrl->getLinkTargetByClass("ilmailformgui"));
00416 $this->ctrl->clearParametersByClass("ilmailformgui");
00417 }
00418 else
00419 {
00420 $this->ctrl->setParameter($this, "mail_id", $mail["mail_id"]);
00421 $this->ctrl->setParameter($this, "cmd", "showMail");
00422 $this->tpl->setVariable("MAIL_LINK_READ", $this->ctrl->getLinkTarget($this));
00423 $this->ctrl->clearParameters($this);
00424 }
00425 $this->tpl->setVariable("MAIL_SUBJECT", htmlspecialchars($mail["m_subject"]));
00426 $this->tpl->setVariable("MAIL_DATE", ilFormat::formatDate($mail["send_time"]));
00427 $this->tpl->parseCurrentBlock();
00428 }
00429
00430
00431 $mtree = new ilTree($ilUser->getId());
00432 $mtree->setTableNames('mail_tree','mail_obj_data');
00433 $folder_node = $mtree->getNodeData($_GET[mobj_id]);
00434
00435
00436 if($folder_node["type"] == 'user_folder')
00437 {
00438 $this->tpl->setVariable("TXT_FOLDER", $folder_node["title"]);
00439 $this->tpl->setVariable("IMG_FOLDER", ilUtil::getImagePath("icon_user_folder.gif"));
00440 }
00441 else
00442 {
00443 $this->tpl->setVariable("TXT_FOLDER", $this->lng->txt("mail_".$folder_node["title"]));
00444 $this->tpl->setVariable("IMG_FOLDER", ilUtil::getImagePath("icon".substr($folder_node["title"], 1).".gif"));
00445 }
00446
00447 if ($folder_node["type"] == 'user_folder' || $folder_node["type"] == 'local')
00448 {
00449 if ($folder_node["type"] == 'user_folder')
00450 {
00451 $this->ctrl->setParameter($this, "cmd", "enterFolderData");
00452 $this->tpl->setVariable("LINK_EDIT_FOLDER", $this->ctrl->getLinkTarget($this));
00453 $this->tpl->setVariable("TXT_EDIT_FOLDER", $this->lng->txt("edit"));
00454 }
00455 $this->tpl->setVariable("TXT_ADD_FOLDER", $this->lng->txt("mail_add_subfolder"));
00456 }
00457
00458 $this->tpl->setVariable("TXT_MAIL", $this->lng->txt("mail"));
00459 $this->tpl->setVariable("TXT_MAIL_S", $this->lng->txt("mail_s"));
00460 $this->tpl->setVariable("TXT_UNREAD", $this->lng->txt("unread"));
00461 $this->tpl->setVariable("TXT_SUBMIT",$this->lng->txt("submit"));
00462 $this->tpl->setVariable("TXT_SELECT_ALL", $this->lng->txt("select_all"));
00463 $this->tpl->setVariable("IMGPATH",$this->tpl->tplPath);
00464
00465
00466 $mail_counter = $this->umail->getMailCounterData();
00467 $this->tpl->setVariable("MAIL_COUNT", $mail_counter["total"]);
00468 $this->tpl->setVariable("MAIL_COUNT_UNREAD", $mail_counter["unread"]);
00469 $this->tpl->setVariable("TXT_UNREAD_MAIL_S",$this->lng->txt("mail_s_unread"));
00470 $this->tpl->setVariable("TXT_MAIL_S",$this->lng->txt("mail_s"));
00471
00472
00473 if($_GET['mobj_id'] == $this->mbox->getSentFolder() ||
00474 $_GET['mobj_id'] == $this->mbox->getDraftsFolder())
00475 {
00476 $this->tpl->setVariable("TXT_SENDER", $this->lng->txt("recipient"));
00477 }
00478 else
00479 {
00480 $this->tpl->setVariable("TXT_SENDER", $this->lng->txt("sender"));
00481 }
00482 $this->tpl->setVariable("TXT_SUBJECT", $this->lng->txt("subject"));
00483
00484 $this->tpl->setVariable("TXT_DATE",$this->lng->txt("date"));
00485 $this->tpl->setVariable("DIRECTION", "up");
00486
00487 $this->tpl->show();
00488 }
00489
00490 public function deleteFolder()
00491 {
00492 if ($_SESSION["viewmode"] == "tree")
00493 {
00494 ilUtil::redirect("ilias.php?baseClass=ilMailGUI&mobj_id=".$_GET["mobj_id"]."&type=confirmdelete_folderdata");
00495 }
00496 else
00497 {
00498 ilUtil::sendInfo($this->lng->txt("mail_sure_delete_folder"));
00499 $this->enterFolderData("saveFolderSettings", true);
00500
00501 return true;
00502 }
00503 }
00504
00505 public function confirmDeleteFolder()
00506 {
00507 ilUtil::sendInfo($this->lng->txt("mail_sure_delete_folder"));
00508 $this->enterFolderData("saveFolderSettings", true);
00509
00510 return true;
00511 }
00512
00513 public function performDeleteFolder()
00514 {
00515 $new_parent = $this->mbox->getParentFolderId($_GET["mobj_id"]);
00516
00517 if ($this->mbox->deleteFolder($_GET["mobj_id"]))
00518 {
00519 ilUtil::sendInfo($this->lng->txt("mail_folder_deleted"),true);
00520 ilUtil::redirect("ilias.php?baseClass=ilMailGUI");
00521 }
00522 else
00523 {
00524 if ($_SESSION["viewmode"] == "tree")
00525 {
00526 ilUtil::sendInfo($this->lng->txt("mail_error_delete"), true);
00527 ilUtil::redirect("ilias.php?baseClass=ilMailGUI&mobj_id=".$_GET["mobj_id"]."&type=confirmdelete_folderdata");
00528 }
00529 else
00530 {
00531 ilUtil::sendInfo($this->lng->txt("mail_error_delete"));
00532 $this->enterFolderData();
00533
00534 return true;
00535 }
00536 }
00537 }
00538
00539 public function cancelDeleteFolder()
00540 {
00541 if ($_SESSION["viewmode"] == "tree")
00542 {
00543 ilUtil::redirect("ilias.php?baseClass=ilMailGUI&mobj_id=".$_GET["mobj_id"]."&type=enter_folderdata");
00544 }
00545 else
00546 {
00547 $this->enterFolderData();
00548 return true;
00549 }
00550 }
00551
00552 public function cancelEnterFolderData()
00553 {
00554 if ($_SESSION["viewmode"] == "tree")
00555 {
00556 ilUtil::redirect("ilias.php?baseClass=ilMailGUI&mobj_id=".$_GET["mobj_id"]."&target=ilmailfoldergui");
00557 }
00558 else
00559 {
00560 $this->showFolder();
00561 return true;
00562 }
00563 }
00564
00565 public function saveFolderSettings()
00566 {
00567 if (isset($_POST["folder_name_add"]) && $_SESSION["viewmode"] == "tree") $_SESSION["folder_name_add"] = $_POST['folder_name_add'];
00568
00569 $tmp_data = $this->mbox->getFolderData($_GET["mobj_id"]);
00570 if ($tmp_data["title"] != $_POST["folder_name_add"])
00571 {
00572 if ($_POST["folder_name_add"] == "")
00573 {
00574 if ($_SESSION["viewmode"] == "tree")
00575 {
00576 ilUtil::sendInfo($this->lng->txt("mail_insert_folder_name"), true);
00577 ilUtil::redirect("ilias.php?baseClass=ilMailGUI&mobj_id=".$_GET["mobj_id"]."&type=enter_folderdata");
00578 }
00579 else
00580 {
00581 ilUtil::sendInfo($this->lng->txt("mail_insert_folder_name"));
00582 $this->enterFolderData();
00583 return true;
00584 }
00585 }
00586 else
00587 {
00588 if ($this->mbox->renameFolder($_GET["mobj_id"], ilUtil::stripSlashes($_POST["folder_name_add"])))
00589 {
00590 ilUtil::sendInfo($this->lng->txt("mail_folder_name_changed"), true);
00591 unset($_SESSION["folder_name_add"]);
00592 }
00593 else
00594 {
00595 if ($_SESSION["viewmode"] == "tree")
00596 {
00597 ilUtil::sendInfo($this->lng->txt("mail_folder_exists"), true);
00598 ilUtil::redirect("ilias.php?baseClass=ilMailGUI&mobj_id=".$_GET["mobj_id"]."&type=enter_folderdata");
00599 }
00600 else
00601 {
00602 ilUtil::sendInfo($this->lng->txt("mail_folder_exists"));
00603 $this->enterFolderData();
00604 return true;
00605 }
00606 }
00607 }
00608 }
00609
00610 if ($_SESSION["viewmode"] == "tree")
00611 {
00612 ilUtil::redirect("ilias.php?baseClass=ilMailGUI&mobj_id=".$_GET["mobj_id"]."&type=enter_folderdata");
00613 }
00614 else
00615 {
00616 $this->enterFolderData();
00617 return true;
00618 }
00619 }
00620
00621 public function saveSubFolderSettings()
00622 {
00623 if (isset($_POST["folder_name_add"]) && $_SESSION["viewmode"] == "tree") $_SESSION["folder_name_add"] = ilUtil::stripSlashes($_POST['folder_name_add']);
00624
00625 if (empty($_POST['folder_name_add']))
00626 {
00627 if ($_SESSION["viewmode"] == "tree")
00628 {
00629 ilUtil::sendInfo($this->lng->txt("mail_insert_folder_name"), true);
00630 ilUtil::redirect("ilias.php?baseClass=ilMailGUI&mobj_id=".$_GET["mobj_id"]."&type=add_subfolder");
00631 }
00632 else
00633 {
00634 ilUtil::sendInfo($this->lng->txt("mail_insert_folder_name"));
00635 $this->addSubFolder();
00636 return true;
00637 }
00638 }
00639 else if ($_GET["mobj_id"] = $this->mbox->addFolder($_GET["mobj_id"], ilUtil::stripSlashes($_POST["folder_name_add"])))
00640 {
00641 unset($_SESSION["folder_name_add"]);
00642
00643 if ($_SESSION["viewmode"] == "tree")
00644 {
00645 ilUtil::sendInfo($this->lng->txt("mail_folder_created"), true);
00646 ilUtil::redirect("ilias.php?baseClass=ilMailGUI&mobj_id=".$_GET["mobj_id"]);
00647 }
00648 else
00649 {
00650 ilUtil::sendInfo($this->lng->txt("mail_folder_created"));
00651 $this->enterFolderData();
00652 return true;
00653 }
00654 }
00655 else
00656 {
00657 if ($_SESSION["viewmode"] == "tree")
00658 {
00659 ilUtil::sendInfo($this->lng->txt("mail_folder_exists"), true);
00660 ilUtil::redirect("ilias.php?baseClass=ilMailGUI&mobj_id=".$_GET["mobj_id"]."&type=add_subfolder");
00661 }
00662 else
00663 {
00664 ilUtil::sendInfo($this->lng->txt("mail_folder_exists"));
00665 $this->addSubFolder();
00666 return true;
00667 }
00668 }
00669 }
00670
00671 function addSubFolder()
00672 {
00673 $this->enterFolderData("saveSubFolderSettings");
00674
00675 return true;
00676 }
00677
00678 public function enterFolderData($cmd = "saveFolderSettings", $confirmDelete = false)
00679 {
00680 global $ilUser;
00681
00682 $mtree = new ilTree($ilUser->getId());
00683 $mtree->setTableNames('mail_tree','mail_obj_data');
00684 $folder_node = $mtree->getNodeData($_GET[mobj_id]);
00685
00686 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.mail_edit_user_folder.html",'Services/Mail');
00687
00688 if ($confirmDelete)
00689 {
00690 $this->tpl->setCurrentBlock("confirm_delete");
00691 $this->ctrl->setParameter($this, "cmd", "post");
00692 $this->tpl->setVariable("ACTION_DELETE", $this->ctrl->getLinkTarget($this));
00693 $this->tpl->setVariable("FRAME_DELETE", ilFrameTargetInfo::_getFrame("MainContent"));
00694 $this->ctrl->clearParameters($this);
00695 $this->tpl->setVariable("TXT_DELETE_CONFIRM",$this->lng->txt("confirm"));
00696 $this->tpl->setVariable("TXT_DELETE_CANCEL",$this->lng->txt("cancel"));
00697 $this->tpl->parseCurrentBlock();
00698 }
00699
00700 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
00701
00702 $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this, "saveFolderSettings"));
00703 $this->tpl->setVariable("FRAME_ADD", ilFrameTargetInfo::_getFrame("MainContent"));
00704
00705 if ($cmd == "saveFolderSettings")
00706 {
00707 $this->tpl->setVariable("TXT_HEADLINE", $this->lng->txt('mail_folder_edit'));
00708 $this->tpl->setVariable("TXT_TITLE", $this->lng->txt('name'));
00709 $this->tpl->setVariable("TXT_DELETE", $this->lng->txt('delete'));
00710
00711 if (isset($_SESSION["folder_name_add"])) $title_value = ilUtil::prepareFormOutput($_SESSION["folder_name_add"], true);
00712 else if (isset($_POST["folder_name_add"])) $title_value = ilUtil::prepareFormOutput($_POST["folder_name_add"], true);
00713 else $title_value = ilUtil::stripSlashes($folder_node["title"]);
00714 }
00715 else
00716 {
00717 $this->tpl->setVariable("TXT_HEADLINE", $this->lng->txt('mail_add_subfolder'));
00718 $this->tpl->setVariable("TXT_TITLE", $this->lng->txt('name'));
00719
00720 if (isset($_SESSION["folder_name_add"])) $title_value = ilUtil::prepareFormOutput($_SESSION["folder_name_add"], true);
00721 else if (isset($_POST["folder_name_add"])) $title_value = ilUtil::prepareFormOutput($_POST["folder_name_add"], true);
00722 }
00723
00724 unset($_SESSION["folder_name_add"]);
00725
00726 $this->tpl->setVariable("CMD_SUBMIT", $cmd);
00727 $this->tpl->setVariable("TXT_SUBMIT", ($cmd == "saveSubFolderSettings" ? $this->lng->txt('save') : $this->lng->txt('rename')));
00728 $this->tpl->setVariable("TITLE_VALUE", $title_value);
00729 $this->tpl->setVariable("TXT_CANCEL", $this->lng->txt('cancel'));
00730
00731 $this->tpl->show();
00732
00733 return true;
00734 }
00735
00736 public function changeFolder()
00737 {
00738 switch ($_POST["action"])
00739 {
00740 default:
00741 if ($this->umail->moveMailsToFolder(array($_GET["mail_id"]), $_POST["action"]))
00742 {
00743 ilUtil::sendInfo($this->lng->txt("mail_moved"), true);
00744 $this->ctrl->redirectByClass("ilMailGUI");
00745 }
00746 else
00747 {
00748 ilUtil::sendInfo($this->lng->txt("mail_move_error"));
00749 }
00750 break;
00751 }
00752
00753 $this->showMail();
00754
00755 return true;
00756 }
00757
00758 public function editFolder()
00759 {
00760 switch ($_POST["action"])
00761 {
00762 case 'markMailsRead':
00763 if(is_array($_POST["mail_id"]))
00764 {
00765 $this->umail->markRead($_POST["mail_id"]);
00766 }
00767 else
00768 {
00769 ilUtil::sendInfo($this->lng->txt("mail_select_one"));
00770 }
00771 break;
00772 case 'markMailsUnread':
00773 if(is_array($_POST["mail_id"]))
00774 {
00775 $this->umail->markUnread($_POST["mail_id"]);
00776 }
00777 else
00778 {
00779 ilUtil::sendInfo($this->lng->txt("mail_select_one"));
00780 }
00781 break;
00782
00783 case 'deleteMails':
00784
00785 if($this->mbox->getTrashFolder() == $_GET["mobj_id"])
00786 {
00787 if(!is_array($_POST["mail_id"]))
00788 {
00789 ilUtil::sendInfo($this->lng->txt("mail_select_one"));
00790 $this->errorDelete = true;
00791 }
00792 else
00793 {
00794 ilUtil::sendInfo($this->lng->txt("mail_sure_delete"));
00795 }
00796 }
00797 else
00798 {
00799
00800 if(!is_array($_POST["mail_id"]))
00801 {
00802 ilUtil::sendInfo($this->lng->txt("mail_select_one"));
00803 }
00804 else if($this->umail->moveMailsToFolder($_POST["mail_id"], $this->mbox->getTrashFolder()))
00805 {
00806 $_GET["offset"] = 0;
00807 ilUtil::sendInfo($this->lng->txt("mail_moved_to_trash"));
00808 }
00809 else
00810 {
00811 ilUtil::sendInfo($this->lng->txt("mail_move_error"));
00812 }
00813 }
00814 break;
00815
00816 case 'add':
00817 $this->ctrl->setParameterByClass("ilmailoptionsgui", "cmd", "add");
00818 $this->ctrl->redirectByClass("ilmailoptionsgui");
00819
00820 case 'moveMails':
00821 default:
00822 if(!is_array($_POST["mail_id"]))
00823 {
00824 ilUtil::sendInfo($this->lng->txt("mail_select_one"));
00825 }
00826 else if($this->umail->moveMailsToFolder($_POST["mail_id"],$_POST["action"]))
00827 {
00828 ilUtil::sendInfo($this->lng->txt("mail_moved"));
00829 }
00830 else
00831 {
00832 ilUtil::sendInfo($this->lng->txt("mail_move_error"));
00833 }
00834 break;
00835 }
00836
00837 $this->showFolder();
00838 }
00839
00840 public function confirmDeleteMails()
00841 {
00842
00843 if($this->mbox->getTrashFolder() == $_GET["mobj_id"])
00844 {
00845 if(!is_array($_POST["mail_id"]))
00846 {
00847 ilUtil::sendInfo($this->lng->txt("mail_select_one"));
00848 }
00849 else if($this->umail->deleteMails($_POST["mail_id"]))
00850 {
00851 $_GET["offset"] = 0;
00852 ilUtil::sendInfo($this->lng->txt("mail_deleted"));
00853 }
00854 else
00855 {
00856 ilUtil::sendInfo($this->lng->txt("mail_delete_error"));
00857 }
00858 }
00859
00860 $this->showFolder();
00861 }
00862
00863 public function cancelDeleteMails()
00864 {
00865 $this->ctrl->setParameter($this, "offset", $_GET["offset"]);
00866 $this->ctrl->redirect($this);
00867 }
00868
00869 public function showMail()
00870 {
00871 global $ilUser;
00872
00873 if ($_SESSION["mail_id"])
00874 {
00875 $_GET["mail_id"] = $_SESSION["mail_id"];
00876 $_SESSION["mail_id"] = "";
00877 }
00878
00879 $this->umail->markRead(array($_GET["mail_id"]));
00880
00881 $mailData = $this->umail->getMail($_GET["mail_id"]);
00882
00883 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.mail_read.html", "Services/Mail");
00884 $this->tpl->setVariable("HEADER",$this->lng->txt("mail_mails_of"));
00885
00886
00887 $tplbtn = new ilTemplate("tpl.buttons.html", true, true);
00888 if($mailData["sender_id"] &&
00889 $mailData["sender_id"] != ANONYMOUS_USER_ID)
00890 {
00891 $tplbtn->setCurrentBlock("btn_cell");
00892 $this->ctrl->setParameterByClass("ilmailformgui", "mail_id", $_GET["mail_id"]);
00893 $this->ctrl->setParameterByClass("ilmailformgui", "type", "reply");
00894 $tplbtn->setVariable("BTN_LINK", $this->ctrl->getLinkTargetByClass("ilmailformgui"));
00895 $this->ctrl->clearParametersByClass("iliasmailformgui");
00896 $tplbtn->setVariable("BTN_TXT", $this->lng->txt("reply"));
00897 $tplbtn->parseCurrentBlock();
00898 }
00899 $tplbtn->setCurrentBlock("btn_cell");
00900 $this->ctrl->setParameterByClass("ilmailformgui", "mail_id", $_GET["mail_id"]);
00901 $this->ctrl->setParameterByClass("ilmailformgui", "type", "forward");
00902 $tplbtn->setVariable("BTN_LINK", $this->ctrl->getLinkTargetByClass("ilmailformgui"));
00903 $this->ctrl->clearParametersByClass("iliasmailformgui");
00904 $tplbtn->setVariable("BTN_TXT", $this->lng->txt("forward"));
00905 $tplbtn->parseCurrentBlock();
00906 $tplbtn->setCurrentBlock("btn_cell");
00907 $this->ctrl->setParameter($this, "mail_id", $_GET["mail_id"]);
00908 $this->ctrl->setParameter($this, "cmd", "printMail");
00909 $tplbtn->setVariable("BTN_LINK", $this->ctrl->getLinkTarget($this));
00910 $this->ctrl->clearParameters($this);
00911 $tplbtn->setVariable("BTN_TXT", $this->lng->txt("print"));
00912 $tplbtn->setVariable("BTN_TARGET","target=\"_blank\"");
00913 $tplbtn->parseCurrentBlock();
00914
00915 $tplbtn->setCurrentBlock("btn_cell");
00916 $this->ctrl->setParameter($this, "mail_id", $_GET["mail_id"]);
00917 $this->ctrl->setParameter($this, "action", "deleteMails");
00918 $tplbtn->setVariable("BTN_LINK", $this->ctrl->getLinkTarget($this));
00919 $this->ctrl->clearParameters($this);
00920 $tplbtn->setVariable("BTN_TXT", $this->lng->txt("delete"));
00921 $tplbtn->parseCurrentBlock();
00922
00923 $tplbtn->setCurrentBlock("btn_row");
00924 $tplbtn->parseCurrentBlock();
00925
00926 $this->tpl->setVariable("BUTTONS2",$tplbtn->get());
00927 $this->ctrl->setParameter($this, "cmd", "post");
00928 $this->ctrl->setParameter($this, "mail_id", $_GET["mail_id"]);
00929 $this->tpl->setVariable("ACTION", $this->ctrl->getLinkTarget($this));
00930 $this->ctrl->clearParameters($this);
00931
00932 if ($mailData["sender_id"] &&
00933 $mailData["sender_id"] != $ilUser->getId() &&
00934 $mailData["sender_id"] != ANONYMOUS_USER_ID)
00935 {
00936 require_once "Services/Mail/classes/class.ilAddressbook.php";
00937 $abook = new ilAddressbook($ilUser->getId());
00938
00939 $tmp_user = new ilObjUser($mailData["sender_id"]);
00940 if ($abook->checkEntryByLogin($tmp_user->getLogin()) == 0)
00941 {
00942 $tplbtn = new ilTemplate("tpl.buttons.html", true, true);
00943
00944 $tplbtn->setCurrentBlock("btn_cell");
00945 $this->ctrl->setParameter($this, "mail_id", $_GET["mail_id"]);
00946 $this->ctrl->setParameter($this, "cmd", "add");
00947 $tplbtn->setVariable("BTN_LINK", $this->ctrl->getLinkTarget($this));
00948 $this->ctrl->clearParameters($this);
00949 $tplbtn->setVariable("BTN_TXT", $this->lng->txt("mail_add_to_addressbook"));
00950 $tplbtn->parseCurrentBlock();
00951
00952 $this->tpl->setVariable("ADD_USER_BTN",$tplbtn->get());
00953 }
00954 }
00955
00956
00957 $counter = 1;
00958
00959
00960 $this->tpl->setVariable('TXT_FROM', $this->lng->txt('from'));
00961 if($mailData["sender_id"] != ANONYMOUS_USER_ID)
00962 {
00963 $tmp_user = new ilObjUser($mailData['sender_id']);
00964 $this->ctrl->setParameter($this, 'mail_id', $_GET['mail_id']);
00965 $this->ctrl->setParameter($this, 'user', $tmp_user->getId());
00966 if(ilObjUser::_lookupPref($mailData['sender_id'], 'public_profile') == 'y')
00967 {
00968 $this->tpl->setVariable('PROFILE_LINK_FROM', $this->ctrl->getLinkTarget($this, 'showUser'));
00969 $this->tpl->setVariable('FROM', $tmp_user->getFullname());
00970 }
00971 $this->tpl->setCurrentBlock("pers_image");
00972 $this->tpl->setVariable("IMG_SENDER", $tmp_user->getPersonalPicturePath("xsmall"));
00973 $this->tpl->setVariable("ALT_SENDER", $tmp_user->getFullname());
00974 $this->tpl->parseCurrentBlock();
00975 $this->tpl->setCurrentBlock("adm_content");
00976 if(!($login = $tmp_user->getLogin()))
00977 {
00978 $login = $mailData["import_name"]." (".$this->lng->txt("user_deleted").")";
00979 }
00980 $this->tpl->setVariable("MAIL_LOGIN",$login);
00981 $this->tpl->setVariable("CSSROW_FROM", (++$counter) % 2 ? 'tblrow1' : 'tblrow2');
00982 }
00983 else
00984 {
00985 $tmp_user = new ilObjUser(ANONYMOUS_USER_ID);
00986 $this->tpl->setVariable('MAIL_LOGIN', ilMail::_getAnonymousName());
00987 $this->tpl->setCurrentBlock('pers_image');
00988 $this->tpl->setVariable('IMG_SENDER', $tmp_user->getPersonalPicturePath('xsmall'));
00989 $this->tpl->setVariable('ALT_SENDER', ilMail::_getAnonymousName());
00990 $this->tpl->parseCurrentBlock();
00991 }
00992
00993
00994 $this->tpl->setVariable('TXT_TO', $this->lng->txt('mail_to'));
00995 $this->tpl->setVariable('TO', $this->umail->formatNamesForOutput($mailData['rcp_to']));
00996 $this->tpl->setVariable('CSSROW_TO', (++$counter) % 2 ? 'tblrow1' : 'tblrow2');
00997
00998
00999 if($mailData['rcp_cc'])
01000 {
01001 $this->tpl->setCurrentBlock('cc');
01002 $this->tpl->setVariable('TXT_CC',$this->lng->txt('cc'));
01003 $this->tpl->setVariable('CC', $this->umail->formatNamesForOutput($mailData['rcp_cc']));
01004 $this->tpl->setVariable('CSSROW_CC', (++$counter) % 2 ? 'tblrow1' : 'tblrow2');
01005 $this->tpl->parseCurrentBlock();
01006 }
01007
01008
01009 $this->tpl->setVariable('TXT_SUBJECT', $this->lng->txt('subject'));
01010 $this->tpl->setVariable('SUBJECT', htmlspecialchars($mailData['m_subject']));
01011 $this->tpl->setVariable('CSSROW_SUBJ', (++$counter) % 2 ? 'tblrow1' : 'tblrow2');
01012
01013
01014 $this->tpl->setVariable('TXT_DATE', $this->lng->txt('date'));
01015 $this->tpl->setVariable('DATE', ilFormat::formatDate($mailData['send_time']));
01016 $this->tpl->setVariable('CSSROW_DATE', (++$counter) % 2 ? 'tblrow1' : 'tblrow2');
01017
01018
01019 if($mailData["attachments"])
01020 {
01021 $this->tpl->setCurrentBlock("attachment");
01022 $this->tpl->setCurrentBlock("a_row");
01023 $counter = 1;
01024 foreach($mailData["attachments"] as $file)
01025 {
01026 $this->tpl->setVariable("A_CSSROW",++$counter%2 ? 'tblrow1' : 'tblrow2');
01027 $this->tpl->setVariable("FILE",$file);
01028 $this->tpl->setVariable("FILE_NAME",$file);
01029 $this->tpl->parseCurrentBlock();
01030 }
01031 $this->tpl->setVariable("TXT_ATTACHMENT",$this->lng->txt("attachments"));
01032 $this->tpl->setVariable("TXT_DOWNLOAD",$this->lng->txt("download"));
01033 $this->tpl->parseCurrentBlock();
01034 }
01035
01036
01037 $this->tpl->setVariable("TXT_MESSAGE", $this->lng->txt("message"));
01038
01039 $this->tpl->setVariable("MAIL_MESSAGE", nl2br(ilUtil::makeClickable(ilUtil::secureString($mailData["m_message"]))));
01040 #$this->tpl->setVariable("MAIL_MESSAGE", nl2br(ilUtil::makeClickable(htmlspecialchars($mailData["m_message"]))));
01041
01042 $isTrashFolder = false;
01043 if ($this->mbox->getTrashFolder() == $_GET["mobj_id"])
01044 {
01045 $isTrashFolder = true;
01046 }
01047 $actions = $this->mbox->getActions($_GET["mobj_id"]);
01048 foreach($actions as $key => $action)
01049 {
01050 if($key == 'moveMails')
01051 {
01052 $folders = $this->mbox->getSubFolders();
01053 foreach($folders as $folder)
01054 {
01055 if ($folder["type"] != 'trash' ||
01056 !$isTrashFolder)
01057 {
01058 $this->tpl->setCurrentBlock("movemail");
01059 $this->tpl->setVariable("MOVEMAIL_VALUE", $folder["obj_id"]);
01060 if($folder["type"] != 'user_folder')
01061 {
01062 $this->tpl->setVariable("MOVEMAIL_NAME",$action." ".$this->lng->txt("mail_".$folder["title"]).($folder["type"] == 'trash' ? " (".$this->lng->txt("delete").")" : ""));
01063 }
01064 else
01065 {
01066 $this->tpl->setVariable("MOVEMAIL_NAME",$action." ".$folder["title"]);
01067 }
01068 $this->tpl->parseCurrentBlock();
01069 }
01070 }
01071 }
01072 }
01073 if ($_SESSION["viewmode"] == "tree") $this->tpl->setVariable("FORM_TARGET", ilFrameTargetInfo::_getFrame("MainContent"));
01074 $this->tpl->setVariable("TXT_MOVEMAIL_SEND", $this->lng->txt('submit'));
01075
01076
01077
01078 $prevMail = $this->umail->getPreviousMail($_GET["mail_id"]);
01079 $nextMail = $this->umail->getNextMail($_GET["mail_id"]);
01080
01081 if (is_array($prevMail) || is_array($nextMail))
01082 {
01083 $show = false;
01084
01085 $tplbtn = new ilTemplate("tpl.buttons.html", true, true);
01086
01087 if ($prevMail["mail_id"])
01088 {
01089 $show = true;
01090
01091 $tplbtn->setCurrentBlock("btn_cell");
01092 $this->ctrl->setParameter($this, "mail_id", $prevMail["mail_id"]);
01093 $this->ctrl->setParameter($this, "cmd", "showMail");
01094 $tplbtn->setVariable("BTN_LINK", $this->ctrl->getLinkTarget($this));
01095 $this->ctrl->clearParameters($this);
01096 $tplbtn->setVariable("BTN_TXT", $this->lng->txt("previous"));
01097 $tplbtn->parseCurrentBlock();
01098 }
01099
01100 if ($nextMail["mail_id"])
01101 {
01102 $show = true;
01103
01104 $tplbtn->setCurrentBlock("btn_cell");
01105 $this->ctrl->setParameter($this, "mail_id", $nextMail["mail_id"]);
01106 $this->ctrl->setParameter($this, "cmd", "showMail");
01107 $tplbtn->setVariable("BTN_LINK", $this->ctrl->getLinkTarget($this));
01108 $this->ctrl->clearParameters($this);
01109 $tplbtn->setVariable("BTN_TXT", $this->lng->txt("next"));
01110 $tplbtn->parseCurrentBlock();
01111 }
01112
01113 if ($show == true)$this->tpl->setVariable("NAV_BUTTONS", $tplbtn->get());
01114 }
01115
01116 $this->tpl->show();
01117 }
01118
01119 public function printMail()
01120 {
01121 $tplprint = new ilTemplate("Services/Mail/templates/default/tpl.mail_print.html",true,true,true);
01122 $tplprint->setVariable("JSPATH",$tpl->tplPath);
01123
01124
01125 $mailData = $this->umail->getMail($_GET["mail_id"]);
01126
01127
01128
01129 $tplprint->setVariable("TXT_FROM", $this->lng->txt("from"));
01130 if($mailData["sender_id"] != ANONYMOUS_USER_ID)
01131 {
01132 $tmp_user = new ilObjUser($mailData["sender_id"]);
01133 if(!($login = $tmp_user->getFullname()))
01134 {
01135 $login = $mailData["import_name"]." (".$this->lng->txt("user_deleted").")";
01136 }
01137 $tplprint->setVariable("FROM", $login);
01138 }
01139 else
01140 {
01141 $tplprint->setVariable('FROM', ilMail::_getAnonymousName());
01142 }
01143
01144
01145 $tplprint->setVariable("TXT_TO", $this->lng->txt("mail_to"));
01146 $tplprint->setVariable("TO", $mailData["rcp_to"]);
01147
01148
01149 if($mailData["rcp_cc"])
01150 {
01151 $tplprint->setCurrentBlock("cc");
01152 $tplprint->setVariable("TXT_CC",$this->lng->txt("cc"));
01153 $tplprint->setVariable("CC",$mailData["rcp_cc"]);
01154 $tplprint->parseCurrentBlock();
01155 }
01156
01157 $tplprint->setVariable("TXT_SUBJECT",$this->lng->txt("subject"));
01158 $tplprint->setVariable("SUBJECT",htmlspecialchars($mailData["m_subject"]));
01159
01160
01161 $tplprint->setVariable("TXT_DATE", $this->lng->txt("date"));
01162 $tplprint->setVariable("DATE", ilFormat::formatDate($mailData["send_time"]));
01163
01164
01165 $tplprint->setVariable("TXT_MESSAGE", $this->lng->txt("message"));
01166 $tplprint->setVariable("MAIL_MESSAGE", nl2br(htmlspecialchars($mailData["m_message"])));
01167
01168
01169 $tplprint->show();
01170 }
01171
01172 function deliverFile()
01173 {
01174 if ($_SESSION["mail_id"])
01175 {
01176 $_GET["mail_id"] = $_SESSION["mail_id"];
01177 }
01178 $_SESSION["mail_id"] = "";
01179
01180 $filename = ($_SESSION["filename"]
01181 ? $_SESSION["filename"]
01182 : ($_POST["filename"]
01183 ? $_POST["filename"]
01184 : $_GET["filename"]));
01185 $_SESSION["filename"] = "";
01186
01187 if ($filename != "")
01188 {
01189 require_once "classes/class.ilFileDataMail.php";
01190
01191
01192 $filename = str_replace("..", "", $filename);
01193
01194 $mfile = new ilFileDataMail($_SESSION["AccountId"]);
01195 if(!$path = $mfile->getAttachmentPath($filename, $_GET["mail_id"]))
01196 {
01197 ilUtil::sendInfo($this->lng->txt("mail_error_reading_attachment"));
01198 $this->showMail();
01199 }
01200 else
01201 {
01202 ilUtil::deliverFile($path, $filename);
01203 }
01204 }
01205 else
01206 {
01207 ilUtil::sendInfo($this->lng->txt("mail_select_attachment"));
01208 $this->showMail();
01209 }
01210 }
01211
01212 function deliverVCard()
01213 {
01214 include_once 'Services/User/classes/class.ilObjUserGUI.php';
01215 $userObj = new ilObjUserGUI('', $_GET['user']);
01216 return $userObj->deliverVCardObject();
01217 }
01218 }
01219 ?>