Example #1
0
 public function sendNotify($toUid, $node, $config)
 {
     empty($config) && ($config = array());
     $nodeInfo = $this->getNode($node);
     if (!$nodeInfo) {
         return false;
     }
     !is_array($toUid) && ($toUid = explode(",", $toUid));
     $userInfo = User::model()->fetchAllByUids($toUid);
     $data["node"] = $node;
     $data["module"] = $nodeInfo["module"];
     $data["url"] = isset($config["{url}"]) ? $config["{url}"] : "";
     $data["title"] = Ibos::lang($nodeInfo["titlekey"], "", $config);
     if (empty($nodeInfo["contentkey"])) {
         $data["body"] = $data["title"];
         $hasContent = false;
     } else {
         $data["body"] = Ibos::lang($nodeInfo["contentkey"], "", $config);
         $hasContent = true;
     }
     MessageUtil::push("notify", $toUid, array("message" => $data["title"], "url" => $data["url"]));
     foreach ($userInfo as $v) {
         $data["uid"] = $v["uid"];
         !empty($nodeInfo["sendmessage"]) && NotifyMessage::model()->sendMessage($data);
         $data["email"] = $v["email"];
         $remindSetting = !empty($v["remindsetting"]) ? unserialize($v["remindsetting"]) : array();
         if (isset($remindSetting[$node]) && isset($remindSetting[$node]["app"]) && $remindSetting[$node]["app"] == 1) {
             MessageUtil::appPush($toUid, $data["title"]);
         }
         if (!empty($nodeInfo["sendemail"])) {
             if (isset($remindSetting[$node]) && isset($remindSetting[$node]["email"]) && $remindSetting[$node]["email"] == 1) {
                 NotifyEmail::model()->sendEmail($data, $hasContent);
             }
         }
         if (!empty($nodeInfo["sendsms"])) {
             if (isset($remindSetting[$node]) && isset($remindSetting[$node]["sms"]) && $remindSetting[$node]["sms"] == 1) {
                 MessageUtil::sendSms($v["mobile"], StringUtil::filterCleanHtml($data["title"]), $nodeInfo["module"], $v["uid"]);
             }
         }
     }
 }
Example #2
0
 public function postMessage($data, $fromUid)
 {
     $fromUid = intval($fromUid);
     $data["touid"] = is_array($data["touid"]) ? $data["touid"] : explode(",", $data["touid"]);
     $data["users"] = array_filter(array_merge(array($fromUid), $data["touid"]));
     $data["mtime"] = time();
     if (false == ($data["listid"] = $this->addMessageList($data, $fromUid))) {
         $this->addError("message", Ibos::lang("private message send fail", "message.default"));
         return false;
     }
     if (false === $this->addMessageUser($data, $fromUid)) {
         $this->addError("message", Ibos::lang("private message send fail", "message.default"));
         return false;
     }
     if (false == $this->addMessage($data, $fromUid)) {
         $this->addError("message", Ibos::lang("private message send fail", "message.default"));
         return false;
     }
     $author = User::model()->fetchByUid($fromUid);
     $config["name"] = $author["realname"];
     $config["content"] = $data["content"];
     $config["ctime"] = date("Y-m-d H:i:s", $data["mtime"]);
     $config["source_url"] = Ibos::app()->urlManager->createUrl("message/pm/index");
     MessageUtil::push("pm", $data["touid"], $data["content"]);
     MessageUtil::appPush($data["touid"], $data["content"]);
     return $data["listid"];
 }