Ejemplo n.º 1
0
 /**
  * Get Mail HTML for Personal Desktop Mail Display
  */
 public function getPDMailHTML($a_mail_id, $a_mobj_id)
 {
     global $lng, $rbacsystem, $ilias;
     $lng->loadLanguageModule('mail');
     //get the mail from user
     $umail = new ilMail($_SESSION['AccountId']);
     // catch hack attempts
     if (!$rbacsystem->checkAccess('internal_mail', $umail->getMailObjectReferenceId())) {
         $ilias->raiseError($lng->txt('permission_denied'), $ilias->error_obj->WARNING);
     }
     $umail->markRead(array($a_mail_id));
     $mail_data = $umail->getMail($a_mail_id);
     $tpl = new ilTemplate('tpl.pd_mail.html', true, true, 'Services/Mail');
     // attachments
     if ($mail_data['attachments']) {
         foreach ($mail_data['attachments'] as $file) {
             $tpl->setCurrentBlock('a_row');
             $tpl->setVariable('HREF_DOWNLOAD', 'ilias.php?baseClass=ilMailGUI&type=deliverFile&mail_id=' . $_GET['mail_id'] . '&filename=' . md5($file));
             $tpl->setVariable('FILE_NAME', $file);
             $tpl->setVariable('TXT_DOWNLOAD', $lng->txt('download'));
             $tpl->parseCurrentBlock();
         }
         $tpl->setCurrentBlock('attachment');
         $tpl->setVariable('TXT_ATTACHMENT', $lng->txt('attachments'));
         $tpl->parseCurrentBlock();
     }
     $tpl->setVariable('TXT_FROM', $lng->txt('from'));
     /**
      * @var $sender ilObjUser
      */
     $sender = ilObjectFactory::getInstanceByObjId($mail_data['sender_id'], false);
     if ($sender && $sender->getId() != ANONYMOUS_USER_ID) {
         $tpl->setCurrentBlock('pers_image');
         $tpl->setVariable('IMG_SENDER', $sender->getPersonalPicturePath('xsmall'));
         $tpl->setVariable('ALT_SENDER', $sender->getPublicName());
         $tpl->parseCurrentBlock();
         $tpl->setVariable('PUBLIC_NAME', $sender->getPublicName());
     } else {
         if (!$sender) {
             $tpl->setVariable('PUBLIC_NAME', $mail_data['import_name'] . ' (' . $lng->txt('user_deleted') . ')');
         } else {
             $tpl->setCurrentBlock('pers_image');
             $tpl->setVariable('IMG_SENDER', ilUtil::getImagePath('HeaderIconAvatar.png'));
             $tpl->setVariable('ALT_SENDER', ilMail::_getIliasMailerName());
             $tpl->parseCurrentBlock();
             $tpl->setVariable('PUBLIC_NAME', ilMail::_getIliasMailerName());
         }
     }
     $tpl->setVariable('TXT_TO', $lng->txt('mail_to'));
     $tpl->setVariable('TO', $umail->formatNamesForOutput($mail_data['rcp_to']));
     if ($mail_data['rcp_cc']) {
         $tpl->setCurrentBlock('cc');
         $tpl->setVariable('TXT_CC', $lng->txt('cc'));
         $tpl->setVariable('CC', $umail->formatNamesForOutput($mail_data['rcp_cc']));
         $tpl->parseCurrentBlock();
     }
     $tpl->setVariable('TXT_SUBJECT', $lng->txt('subject'));
     $tpl->setVariable('SUBJECT', htmlspecialchars($mail_data['m_subject']));
     $tpl->setVariable('TXT_DATE', $lng->txt('date'));
     $tpl->setVariable('DATE', ilDatePresentation::formatDate(new ilDateTime($mail_data['send_time'], IL_CAL_DATETIME)));
     $tpl->setVariable('TXT_MESSAGE', $lng->txt('message'));
     // Note: For security reasons, ILIAS only allows Plain text strings in E-Mails.
     $tpl->setVariable('MAIL_MESSAGE', nl2br(ilUtil::makeClickable(htmlspecialchars(ilUtil::securePlainString($mail_data['m_message'])))));
     return $tpl->get();
 }