protected override void ShowPage() { pagetitle = "撰写短消息"; if (!IsLogin()) { return; } if (!CheckPermission()) { return; } if (DNTRequest.IsPost() && !ForumUtils.IsCrossSitePost()) { if (!CheckPermissionAfterPost()) { return; } SendPM(); if (IsErr()) { return; } } ShortUserInfo shortUserInfo = Users.GetShortUserInfo(msgtoid); string msttoName = (shortUserInfo != null) ? shortUserInfo.Username : ""; msgto = msgtoid > 0 ? msttoName : msgto; string action = DNTRequest.GetQueryString("action").ToLower(); if (action.CompareTo("re") == 0 || action.CompareTo("fw") == 0) //回复或者转发 { if (DNTRequest.GetQueryInt("pmid", -1) != -1) { PrivateMessageInfo pm = PrivateMessages.GetPrivateMessageInfo(DNTRequest.GetQueryInt("pmid", -1)); if (pm != null && (pm.Msgtoid == userid || pm.Msgfromid == userid)) { msgto = action.CompareTo("re") == 0 ? Utils.HtmlEncode(pm.Msgfrom) : ""; subject = Utils.HtmlEncode(action) + ":" + pm.Subject; message = Utils.HtmlEncode("> ") + pm.Message.Replace("\n", "\n> ") + "\r\n\r\n"; } } } if (DNTRequest.GetString("operation") == "pmfriend") { CreatePmFriendMessage(); } newnoticecount = Notices.GetNewNoticeCountByUid(userid); }
public string Get() { GetNoticeParams actionParams = JavaScriptConvert.DeserializeObject <GetNoticeParams>(JsonParams); if (actionParams.UId <= 0) { return(""); } GetNoticeResponse getNoticeResponse = new GetNoticeResponse(); getNoticeResponse.Message.UnRead = PrivateMessages.GetPrivateMessageCount(actionParams.UId, 0, 1); DateTime time = new DateTime(); if (getNoticeResponse.Message.UnRead > 0) { getNoticeResponse.Message.MostRecent = Utils.ConvertToUnixTimestamp(DateTime.TryParse(PrivateMessages.GetPrivateMessageInfo(PrivateMessages.GetLatestPMID(actionParams.UId)).Postdatetime, out time) ? time : DateTime.Now); } getNoticeResponse.Notification.UnRead = Notices.GetNoticeCount(actionParams.UId, 1); if (getNoticeResponse.Notification.UnRead > 0) { getNoticeResponse.Notification.MostRecent = Utils.ConvertToUnixTimestamp(DateTime.TryParse(Notices.GetNewNotices(actionParams.UId)[0].Postdatetime, out time) ? time : DateTime.Now); } List <FriendshipRequestInfo> requestList = Friendship.GetUserFriendRequestList(actionParams.UId, 1, Friendship.GetUserFriendRequestCount(actionParams.UId)); getNoticeResponse.FriendRequest.UIds = GetFriendRequestUid(requestList); if (getNoticeResponse.FriendRequest.UIds.Length > 0) { getNoticeResponse.FriendRequest.MostRecent = Utils.ConvertToUnixTimestamp(DateTime.TryParse(requestList[requestList.Count - 1].DateTime, out time) ? time : DateTime.Now); } return(GetResult(getNoticeResponse)); }
protected override void ShowPage() { pagetitle = "撰写短消息"; if (userid == -1) { AddErrLine("你尚未登录"); return; } user = Discuz.Forum.Users.GetUserInfo(userid); if (!CheckPermission()) { return; } if (DNTRequest.IsPost()) { if (!CheckPermissionAfterPost()) { return; } #region 创建并发送短消息 PrivateMessageInfo pm = new PrivateMessageInfo(); string curdatetime = Utils.GetDateTime(); // 收件箱 if (useradminid == 1) { pm.Message = Utils.HtmlEncode(DNTRequest.GetString("message")); pm.Subject = Utils.HtmlEncode(DNTRequest.GetString("subject")); } else { pm.Message = Utils.HtmlEncode(ForumUtils.BanWordFilter(DNTRequest.GetString("message"))); pm.Subject = Utils.HtmlEncode(ForumUtils.BanWordFilter(DNTRequest.GetString("subject"))); } if (ForumUtils.HasBannedWord(pm.Message) || ForumUtils.HasBannedWord(pm.Subject)) { //HasBannedWord 指定的字符串中是否含有禁止词汇 AddErrLine("对不起, 您提交的内容包含不良信息, 因此无法提交, 请返回修改!"); return; } if (ForumUtils.HasAuditWord(pm.Message) || ForumUtils.HasAuditWord(pm.Subject)) { AddErrLine("对不起, 您提交的内容包含不良信息, 因此无法提交, 请返回修改!"); return; } pm.Message = ForumUtils.BanWordFilter(pm.Message); pm.Subject = ForumUtils.BanWordFilter(pm.Subject); pm.Msgto = DNTRequest.GetString("msgto"); pm.Msgtoid = msgtoid; pm.Msgfrom = username; pm.Msgfromid = userid; pm.New = 1; pm.Postdatetime = curdatetime; if (!DNTRequest.GetString("savetousercpdraftbox").Equals("")) { // 检查发送人的短消息是否已超过发送人用户组的上限 if (PrivateMessages.GetPrivateMessageCount(userid, -1) >= usergroupinfo.Maxpmnum) { AddErrLine("抱歉,您的短消息已达到上限,无法保存到草稿箱"); return; } // 只将消息保存到草稿箱 pm.Folder = 2; if (UserCredits.UpdateUserCreditsBySendpms(base.userid) == -1) { AddErrLine("您的金币不足, 不能发送短消息"); return; } pm.Pmid = PrivateMessages.CreatePrivateMessage(pm, 0); //发送邮件通知 if (DNTRequest.GetString("emailnotify") == "on") { SendNotifyEmail(Discuz.Forum.Users.GetUserInfo(msgtoid).Email.Trim(), pm); } SetUrl("usercpdraftbox.aspx"); SetMetaRefresh(); SetShowBackLink(true); AddMsgLine("已将消息保存到草稿箱"); } else if (!DNTRequest.GetString("savetosentbox").Equals("")) { // 检查接收人的短消息是否已超过接收人用户组的上限 UserInfo touser = Discuz.Forum.Users.GetUserInfo(msgtoid); //管理组不受接收人短消息上限限制 int radminId = UserGroups.GetUserGroupInfo(usergroupid).Radminid; if (!(radminId > 0 && radminId <= 3) && PrivateMessages.GetPrivateMessageCount(msgtoid, -1) >= UserGroups.GetUserGroupInfo(touser.Groupid).Maxpmnum) { AddErrLine("抱歉,接收人的短消息已达到上限,无法接收"); return; } if (!Utils.InArray(Convert.ToInt32(touser.Newsletter).ToString(), "2,3,6,7")) { AddErrLine("抱歉,接收人拒绝接收短消息"); return; } // 检查发送人的短消息是否已超过发送人用户组的上限 if (PrivateMessages.GetPrivateMessageCount(userid, -1) >= usergroupinfo.Maxpmnum) { AddErrLine("抱歉,您的短消息已达到上限,无法保存到发件箱"); return; } // 发送消息且保存到发件箱 pm.Folder = 0; if (UserCredits.UpdateUserCreditsBySendpms(base.userid) == -1) { AddErrLine("您的金币不足, 不能发送短消息"); return; } pm.Pmid = PrivateMessages.CreatePrivateMessage(pm, 1); //发送邮件通知 if (DNTRequest.GetString("emailnotify") == "on") { SendNotifyEmail(touser.Email.Trim(), pm); } // 更新在线表中的用户最后发帖时间 OnlineUsers.UpdatePostPMTime(olid); SetUrl("usercpsentbox.aspx"); SetMetaRefresh(); SetShowBackLink(true); AddMsgLine("发送完毕, 且已将消息保存到发件箱"); } else { UserInfo touser = Discuz.Forum.Users.GetUserInfo(msgtoid); // 检查接收人的短消息是否已超过接收人用户组的上限,管理组不受接收人短消息上限限制 int radminId = UserGroups.GetUserGroupInfo(usergroupid).Radminid; if (!(radminId > 0 && radminId <= 3) && PrivateMessages.GetPrivateMessageCount(msgtoid, -1) >= UserGroups.GetUserGroupInfo(touser.Groupid).Maxpmnum) { AddErrLine("抱歉,接收人的短消息已达到上限,无法接收"); return; } if (!Utils.InArray(Convert.ToInt32(touser.Newsletter).ToString(), "2,3,6,7")) { AddErrLine("抱歉,接收人拒绝接收短消息"); return; } // 发送消息但不保存到发件箱 pm.Folder = 0; if (UserCredits.UpdateUserCreditsBySendpms(base.userid) == -1) { AddErrLine("您的金币不足, 不能发送短消息"); return; } pm.Pmid = PrivateMessages.CreatePrivateMessage(pm, 0); //发送邮件通知 if (DNTRequest.GetString("emailnotify") == "on") { SendNotifyEmail(touser.Email.Trim(), pm); } SetUrl("usercpinbox.aspx"); SetMetaRefresh(); SetShowBackLink(true); AddMsgLine("发送完毕"); } #endregion } msgto = Utils.HtmlEncode(DNTRequest.GetString("msgto")); msgtoid = DNTRequest.GetInt("msgtoid", 0); if (msgtoid > 0) { msgto = Discuz.Forum.Users.GetUserName(msgtoid).Trim(); } subject = Utils.HtmlEncode(DNTRequest.GetString("subject")); message = Utils.HtmlEncode(DNTRequest.GetString("message")); string action = DNTRequest.GetQueryString("action").ToLower(); if (action.CompareTo("re") == 0 || action.CompareTo("fw") == 0) //回复或者转发 { int pmid = DNTRequest.GetQueryInt("pmid", -1); if (pmid != -1) { PrivateMessageInfo pm = PrivateMessages.GetPrivateMessageInfo(pmid); if (pm != null) { if (pm.Msgtoid == userid || pm.Msgfromid == userid) { if (action.CompareTo("re") == 0) { msgto = Utils.HtmlEncode(pm.Msgfrom); } else { msgto = ""; } subject = Utils.HtmlEncode(action) + ":" + pm.Subject; message = Utils.HtmlEncode("> ") + pm.Message.Replace("\n", "\n> ") + "\r\n\r\n"; } } } } }
protected override void ShowPage() { if (userid == -1) { AddErrLine("你尚未登录"); return; } pagetitle = "查看短消息"; user = Discuz.Forum.Users.GetUserInfo(userid); pmid = DNTRequest.GetQueryInt("pmid", -1); if (pmid <= 0) { AddErrLine("参数无效"); return; } if (!UserCredits.CheckUserCreditsIsEnough(userid, 1, CreditsOperationType.SendMessage, -1)) { canreplypm = false; } PrivateMessageInfo messageinfo = PrivateMessages.GetPrivateMessageInfo(pmid); if (messageinfo == null) { AddErrLine("无效的短消息ID"); return; } if (messageinfo.Msgfrom == "系统" && messageinfo.Msgfromid == 0) { messageinfo.Message = Utils.HtmlDecode(messageinfo.Message); } if (messageinfo != null) { //判断当前用户是否有权阅读此消息 if (messageinfo.Msgtoid == userid || messageinfo.Msgfromid == userid) { string action = DNTRequest.GetQueryString("action"); if (action.CompareTo("del") == 0) { ispost = true; int retval = PrivateMessages.DeletePrivateMessage(userid, pmid); if (retval < 1) { AddErrLine("消息未找到,可能已被删除"); return; } else { AddMsgLine("指定消息成功删除,现在将转入消息列表"); SetUrl("usercpinbox.aspx"); SetMetaRefresh(); return; } } if (action.CompareTo("noread") == 0) { PrivateMessages.SetPrivateMessageState(pmid, 1); //将短消息的状态置 1 表示未读 ispost = true; if (messageinfo.New != 1 && messageinfo.Folder == 0) { Discuz.Forum.Users.DecreaseNewPMCount(userid, -1); //将用户的未读短信息数据加 1 AddMsgLine("指定消息已被置成未读状态,现在将转入消息列表"); SetUrl("usercpinbox.aspx"); SetMetaRefresh(); } } else { PrivateMessages.SetPrivateMessageState(pmid, 0); //将短消息的状态置 0 表示已读 if (messageinfo.New == 1 && messageinfo.Folder == 0) { Discuz.Forum.Users.DecreaseNewPMCount(userid); //将用户的未读短信息数据减 1 } } msgfrom = messageinfo.Msgfrom; subject = messageinfo.Subject; message = Utils.StrFormat(messageinfo.Message); postdatetime = messageinfo.Postdatetime; resubject = "re:" + messageinfo.Subject; remessage = Utils.HtmlEncode("> ") + messageinfo.Message.Replace("\n", "\n> ") + "\r\n\r\n"; return; } } AddErrLine("对不起, 短消息不存在或已被删除."); }
protected override void ShowPage() { if (!IsLogin()) { return; } pagetitle = "查看短消息"; if (pmid <= 0) { AddErrLine("参数无效"); return; } if (!CreditsFacade.IsEnoughCreditsPM(userid)) { canreplypm = false; } PrivateMessageInfo messageinfo = PrivateMessages.GetPrivateMessageInfo(pmid); if (messageinfo == null) { AddErrLine("无效的短消息ID"); return; } if (messageinfo.Msgfrom == "系统" && messageinfo.Msgfromid == 0) { messageinfo.Message = Utils.HtmlDecode(messageinfo.Message); } if (messageinfo != null && (messageinfo.Msgtoid == userid || messageinfo.Msgfromid == userid)) { //判断当前用户是否有权阅读此消息 if (DNTRequest.GetQueryString("action").CompareTo("delete") == 0) { ispost = true; if (PrivateMessages.DeletePrivateMessage(userid, pmid) < 1) { AddErrLine("消息未找到,可能已被删除"); return; } else { AddMsgLine("指定消息成功删除,现在将转入消息列表"); SetUrl("usercpinbox.aspx"); SetMetaRefresh(); return; } } if (DNTRequest.GetQueryString("action").CompareTo("noread") == 0) { PrivateMessages.SetPrivateMessageState(pmid, 1); //将短消息的状态置 1 表示未读 ispost = true; if (messageinfo.New != 1 && messageinfo.Folder == 0) { Users.UpdateUserNewPMCount(userid, olid); //将用户的未读短信息数据加 1 AddMsgLine("指定消息已被置成未读状态,现在将转入消息列表"); SetUrl("usercpinbox.aspx"); SetMetaRefresh(); } } else { PrivateMessages.SetPrivateMessageState(pmid, 0); //将短消息的状态置 0 表示已读 if (messageinfo.New == 1 && messageinfo.Folder == 0) { Users.UpdateUserNewPMCount(userid, olid); //将用户的未读短信息数据减 1 } } msgto = (messageinfo.Folder == 0) ? messageinfo.Msgfrom : messageinfo.Msgto; msgfrom = messageinfo.Msgfrom; subject = messageinfo.Subject; message = UBB.ParseUrl(Utils.StrFormat(messageinfo.Message)); postdatetime = messageinfo.Postdatetime; resubject = "re:" + messageinfo.Subject; remessage = Utils.HtmlEncode("> ") + messageinfo.Message.Replace("\n", "\n> ") + "\r\n\r\n"; return; } AddErrLine("对不起, 短消息不存在或已被删除."); newnoticecount = Notices.GetNewNoticeCountByUid(userid); }