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

Services/Mail/classes/class.ilMailFolderGUI.php

Go to the documentation of this file.
00001 <?php
00002 /*
00003         +-----------------------------------------------------------------------------+
00004         | ILIAS open source                                                           |
00005         +-----------------------------------------------------------------------------+
00006         | Copyright (c) 1998-2006 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 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                 // IF THERE IS NO OBJ_ID GIVEN GET THE ID OF MAIL ROOT NODE
00064                 if(!$_GET["mobj_id"])
00065                 {
00066                         $_GET["mobj_id"] = $this->mbox->getInboxFolder();
00067                 }
00068         }
00069 
00070         public function executeCommand()
00071         {
00072                 /* User views mail and wants to delete it */
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                 // BEGIN CONFIRM_DELETE
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                 // BEGIN MAIL ACTIONS
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                 // END MAIL ACTIONS
00264                 
00265                 
00266                 // SHOW_FOLDER ONLY IF viewmode is flatview
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                 // END SHOW_FOLDER              
00299                 
00300                 // BEGIN MAILS
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                 // TODO: READ FROM MAIL_OPTIONS
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                         // LINKBAR
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                         // END LINKBAR
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                         // GET FULLNAME OF SENDER
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                         // IF ACTUAL FOLDER IS DRAFT BOX, DIRECT TO COMPOSE MESSAGE
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                 // END MAILS
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                 // folder_image
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                 // MAIL SUMMARY
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                 //columns headlines
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                 //      $this->tpl->setVariable("MAIL_SORT_SUBJ","link");
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                                 // IF MAILBOX IS TRASH ASK TO CONFIRM
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                                 } // END IF MAILBOX IS TRASH FOLDER
00797                                 else
00798                                 {
00799                                         // MOVE MAILS TO TRASH
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                 // ONLY IF FOLDER IS TRASH, IT WAS ASKED FOR CONFIRMATION
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                 //buttons
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                 // SET MAIL DATA
00957                 $counter = 1;
00958                 
00959                 // FROM
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                 // TO
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                 // CC
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                 // SUBJECT
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                 // DATE
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                 // ATTACHMENTS
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                 // MESSAGE
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                 // PREV- & NEXT-BUTTON
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                 //get the mail from user
01125                 $mailData = $this->umail->getMail($_GET["mail_id"]);
01126                 
01127                 // SET MAIL DATA
01128                 // FROM
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                 // TO
01145                 $tplprint->setVariable("TXT_TO", $this->lng->txt("mail_to"));
01146                 $tplprint->setVariable("TO", $mailData["rcp_to"]);
01147                 
01148                 // CC
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                 // SUBJECT
01157                 $tplprint->setVariable("TXT_SUBJECT",$this->lng->txt("subject"));
01158                 $tplprint->setVariable("SUBJECT",htmlspecialchars($mailData["m_subject"]));
01159                 
01160                 // DATE
01161                 $tplprint->setVariable("TXT_DATE", $this->lng->txt("date"));
01162                 $tplprint->setVariable("DATE", ilFormat::formatDate($mailData["send_time"]));
01163                 
01164                 // MESSAGE
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                         // secure filename
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 ?>

Generated on Fri Dec 13 2013 17:56:57 for ILIAS Release_3_9_x_branch .rev 46835 by  doxygen 1.7.1