コード例 #1
0
 /**
  * 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);
             }
         }
     }
 }
コード例 #2
0
 /**
  * Stores the submitted config-data back to the database.
  * This method stores only one value message for one messageprovider (either "_bymail" or "_enabled").
  *
  * @permissions edit
  * @xml
  *
  * @return string
  */
 protected function actionSaveConfigAjax()
 {
     $objHandler = new class_module_messaging_messagehandler();
     $arrMessageproviders = $objHandler->getMessageproviders();
     $strMessage = "";
     foreach ($arrMessageproviders as $objOneProvider) {
         $objConfig = class_module_messaging_config::getConfigForUserAndProvider($this->objSession->getUserID(), $objOneProvider);
         //only update the message provider which is set in the param "messageprovidertype"
         if ($this->getParam("messageprovidertype") == get_class($objOneProvider)) {
             if ($this->getParam(get_class($objOneProvider) . "_bymail") != "") {
                 $bitA = $this->getParam(get_class($objOneProvider) . "_bymail") == "true";
                 $objConfig->setBitBymail($bitA);
                 $objConfig->updateObjectToDb();
                 $strMessage = $objOneProvider->getStrName() . " " . $this->getLang("provider_bymail") . "=" . $this->getParam(get_class($objOneProvider) . "_bymail");
                 break;
             } else {
                 if ($this->getParam(get_class($objOneProvider) . "_enabled") != "") {
                     $bitA = $this->getParam(get_class($objOneProvider) . "_enabled") == "true";
                     $objConfig->setBitEnabled($bitA);
                     $objConfig->updateObjectToDb();
                     $strMessage = $objOneProvider->getStrName() . " " . $this->getLang("provider_enabled") . "=" . $this->getParam(get_class($objOneProvider) . "_enabled");
                     break;
                 }
             }
         }
     }
     return "<message>" . $strMessage . "</message>";
 }
コード例 #3
0
 /**
  * Returns the configuration of a single provider for a user.
  *
  * @param string $strUserid
  * @param \interface_messageprovider|string $objProvider
  *
  * @return class_module_messaging_config
  * @static
  */
 public static function getConfigForUserAndProvider($strUserid, interface_messageprovider $objProvider)
 {
     $objORM = new class_orm_objectlist();
     $objORM->addWhereRestriction(new class_orm_objectlist_restriction("AND config_user = ?", $strUserid));
     $objORM->addWhereRestriction(new class_orm_objectlist_restriction("AND config_provider = ?", get_class($objProvider)));
     $objConfig = $objORM->getSingleObject(get_called_class());
     if ($objConfig === null) {
         $objConfig = new class_module_messaging_config();
         $objConfig->setStrUser($strUserid);
         $objConfig->setStrMessageprovider(get_class($objProvider));
     }
     return $objConfig;
 }