public function testSendMessageObject() { $strText = generateSystemid() . " autotest"; $strTitle = generateSystemid() . " title"; $strIdentifier = generateSystemid() . " identifier"; $strSender = generateSystemid(); $strReference = generateSystemid(); $objMessage = new class_module_messaging_message(); $objMessage->setStrTitle($strTitle); $objMessage->setStrBody($strText); $objMessage->setStrInternalIdentifier($strIdentifier); $objMessage->setObjMessageProvider(new class_messageprovider_exceptions()); $objMessage->setStrSenderId($strSender); $objMessage->setStrMessageRefId($strReference); $objMessageHandler = new class_module_messaging_messagehandler(); $objMessageHandler->sendMessageObject($objMessage, new class_module_user_group(class_module_system_setting::getConfigValue("_admins_group_id_"))); $objGroup = new class_module_user_group(class_module_system_setting::getConfigValue("_admins_group_id_")); $arrUsers = $objGroup->getObjSourceGroup()->getUserIdsForGroup(); foreach ($arrUsers as $objOneUser) { $bitFound = false; $arrMessages = class_module_messaging_message::getObjectList($objOneUser); foreach ($arrMessages as $objOneMessage) { if ($objOneMessage->getStrBody() == $strText && $objOneMessage->getStrMessageProvider() == "class_messageprovider_exceptions") { $bitFound = true; $this->assertEquals($objOneMessage->getStrTitle(), $strTitle); $this->assertEquals($objOneMessage->getStrInternalIdentifier(), $strIdentifier); $this->assertEquals($objOneMessage->getStrSenderId(), $strSender); $this->assertEquals($objOneMessage->getStrMessageRefId(), $strReference); $this->assertTrue($objOneMessage->deleteObjectFromDatabase()); } } $this->assertTrue($bitFound); } $this->flushDBCache(); }
/** * Sends a message. * If the list of recipients contains a group, the message is duplicated for each member. * * * @param class_module_messaging_message $objMessage * @param class_module_user_group[]|class_module_user_user[]|class_module_user_group|class_module_user_user $arrRecipients * * @return bool */ public function sendMessageObject(class_module_messaging_message $objMessage, $arrRecipients) { $objValidator = new class_email_validator(); if ($arrRecipients instanceof class_module_user_group || $arrRecipients instanceof class_module_user_user) { $arrRecipients = array($arrRecipients); } $arrRecipients = $this->getRecipientsFromArray($arrRecipients); foreach ($arrRecipients as $objOneUser) { //skip inactive users if ($objOneUser->getIntActive() != 1) { continue; } $objConfig = class_module_messaging_config::getConfigForUserAndProvider($objOneUser->getSystemid(), $objMessage->getObjMessageProvider()); if ($objConfig->getBitEnabled()) { //clone the message $objCurrentMessage = new class_module_messaging_message(); $objCurrentMessage->setStrTitle($objMessage->getStrTitle()); $objCurrentMessage->setStrBody($objMessage->getStrBody()); $objCurrentMessage->setStrUser($objOneUser->getSystemid()); $objCurrentMessage->setStrInternalIdentifier($objMessage->getStrInternalIdentifier()); $objCurrentMessage->setStrMessageProvider($objMessage->getStrMessageProvider()); $objCurrentMessage->setStrMessageRefId($objMessage->getStrMessageRefId()); $objCurrentMessage->setStrSenderId(validateSystemid($objMessage->getStrSenderId()) ? $objMessage->getStrSenderId() : class_carrier::getInstance()->getObjSession()->getUserID()); $objCurrentMessage->updateObjectToDb(); if ($objConfig->getBitBymail() && $objValidator->validate($objOneUser->getStrEmail())) { $this->sendMessageByMail($objCurrentMessage, $objOneUser); } } } }
/** * @param interface_packagemanager_packagemanager $objPackage * @param string $strLatestVersion * @return void */ private function sendUpdateAvailableMessage(interface_packagemanager_packagemanager $objPackage, $strLatestVersion) { //check, if not already sent $strIdentifier = sha1(__CLASS__ . $objPackage->getObjMetadata()->getStrTitle() . $strLatestVersion); if (count(class_module_messaging_message::getMessagesByIdentifier($strIdentifier)) == 0) { $strMailtext = class_carrier::getInstance()->getObjLang()->getLang("update_notification_package", "packagemanager") . " " . $objPackage->getObjMetadata()->getStrTitle() . "\n"; $strMailtext .= class_carrier::getInstance()->getObjLang()->getLang("update_notification_verinst", "packagemanager") . " " . $objPackage->getObjMetadata()->getStrVersion() . "\n"; $strMailtext .= class_carrier::getInstance()->getObjLang()->getLang("update_notification_verav", "packagemanager") . " " . $strLatestVersion . "\n"; $objMessageHandler = new class_module_messaging_messagehandler(); $objMessage = new class_module_messaging_message(); $objMessage->setStrTitle(class_carrier::getInstance()->getObjLang()->getLang("update_notification_intro", "packagemanager")); $objMessage->setStrBody($strMailtext); $objMessage->setObjMessageProvider(new class_messageprovider_packageupdate()); $objMessage->setStrInternalIdentifier($strIdentifier); $objMessageHandler->sendMessageObject($objMessage, new class_module_user_group(class_module_system_setting::getConfigValue("_admins_group_id_"))); } }