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"]); } } } }
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"]; }