/**
  * Sends a copy of the message to the user by mail
  *
  * @param class_module_messaging_message $objMessage
  * @param class_module_user_user $objUser
  * @return bool
  */
 private function sendMessageByMail(class_module_messaging_message $objMessage, class_module_user_user $objUser)
 {
     $strOriginalLang = class_carrier::getInstance()->getObjLang()->getStrTextLanguage();
     class_carrier::getInstance()->getObjLang()->setStrTextLanguage($objUser->getStrAdminlanguage());
     $strSubject = $objMessage->getStrTitle() != "" ? $objMessage->getStrTitle() : class_carrier::getInstance()->getObjLang()->getLang("message_notification_subject", "messaging");
     $strBody = class_carrier::getInstance()->getObjLang()->getLang("message_prolog", "messaging");
     $strBody .= "\n\n" . class_link::getLinkAdminHref("messaging", "view", "&systemid=" . $objMessage->getSystemid(), false) . "\n\n";
     $strBody .= $objMessage->getStrBody();
     $objMail = new class_mail();
     //try to get a matching sender and place it into the mail
     if (validateSystemid($objMessage->getStrSenderId())) {
         $objSenderUser = new class_module_user_user($objMessage->getStrSenderId());
         $objValidator = new class_email_validator();
         if ($objValidator->validate($objSenderUser->getStrEmail())) {
             $objMail->setSender($objSenderUser->getStrEmail());
         }
     }
     $objMail->setSubject($strSubject);
     $objMail->setText($strBody);
     $objMail->addTo($objUser->getStrEmail());
     class_carrier::getInstance()->getObjLang()->setStrTextLanguage($strOriginalLang);
     return $objMail->sendMail();
 }
 /**
  * Creates a summary of the message
  *
  * @return string
  */
 protected function actionView()
 {
     /** @var class_module_messaging_message $objMessage */
     $objMessage = class_objectfactory::getInstance()->getObject($this->getSystemid());
     //different permission handlings
     if ($objMessage !== null && !$objMessage->rightView()) {
         return $this->strOutput = $this->getLang("commons_error_permissions");
     } else {
         if ($objMessage == null) {
             $strText = $this->getLang("message_not_existing");
             $strOk = $this->getLang("commons_ok");
             $strLink = class_link::getLinkAdminHref($this->getArrModule("modul"), "list");
             $strCore = class_resourceloader::getInstance()->getCorePathForModule("module_v4skin");
             $strMessage = "<script type='text/javascript'>\n                KAJONA.admin.loader.loadFile('_webpath_{$strCore}/module_v4skin/admin/skins/kajona_v4/js/kajona_dialog.js', function() {\n                    jsDialog_1.setTitle('&nbsp; ');\n                    jsDialog_1.setContent('{$strText}', '{$strOk}', '{$strLink}'); jsDialog_1.init();\n                    \$('#'+jsDialog_1.containerId+'_cancelButton').css('display', 'none');\n                });\n            </script>";
             return $strMessage;
         }
     }
     if ($objMessage->getStrUser() == $this->objSession->getUserID()) {
         $strReturn = "";
         if (!$objMessage->getBitRead()) {
             $objMessage->setBitRead(true);
             $objMessage->updateObjectToDb();
         }
         $objSender = new class_module_user_user($objMessage->getStrSenderId());
         $strReference = "";
         if (validateSystemid($objMessage->getStrMessageRefId())) {
             $objRefMessage = new class_module_messaging_message($objMessage->getStrMessageRefId());
             $strReference = $objRefMessage->getStrDisplayName();
             if ($objRefMessage->rightView()) {
                 $strReference = getLinkAdmin($this->getArrModule("modul"), "view", "&systemid=" . $objRefMessage->getSystemid(), $strReference, "", "", false);
             }
         }
         $arrMetaData = array(array($this->getLang("message_subject"), $objMessage->getStrTitle()), array($this->getLang("message_date"), dateToString($objMessage->getObjDate())), array($this->getLang("message_type"), $objMessage->getObjMessageProvider()->getStrName()), array($this->getLang("message_sender"), $objSender->getStrDisplayName()), array($this->getLang("message_reference"), $strReference));
         $strReturn .= $this->objToolkit->dataTable(null, $arrMetaData);
         $strBody = nl2br($objMessage->getStrBody());
         $strBody = replaceTextLinks($strBody);
         $strReturn .= $this->objToolkit->getFieldset($objMessage->getStrTitle(), $this->objToolkit->getTextRow($strBody));
         return $strReturn;
     } else {
         return $this->getLang("commons_error_permissions");
     }
 }