private M_Blog_Msg FillMsg(string msg, out string puremsg, int pid = 0, int rid = 0, string files = "") { puremsg = msg; M_User_Plat upMod = B_User_Plat.GetLogin(); M_Blog_Msg model = new M_Blog_Msg(); model.MsgType = 1; model.Status = 1; model.CUser = upMod.UserID; model.CUName = upMod.TrueName; model.ProID = CurProID; model.CompID = upMod.CompID; model.pid = pid; model.ReplyID = rid; #region 信息内容处理 //#话题(转码后会带有#符号,所以需要转码前处理完成) if (msg.Contains("#")) { msg = msg.Replace(deftopic, ""); string tlp = "<a href='/Plat/Blog?Skey={0}' title='话题浏览'>{1}</a>"; Dictionary <string, string> itemDic = new Dictionary <string, string>(); for (int i = 0; !string.IsNullOrEmpty(regHelper.GetValueBySE(msg, "#", "#", false)) && i < 5; i++)//最多不能超过5个话题 { string topic = "#" + regHelper.GetValueBySE(msg, "#", "#", false) + "#"; msg = msg.Replace(topic, "{" + i + "}"); topic = topic.Replace(" ", "").Replace(",", ""); itemDic.Add("{" + i + "}", string.Format(tlp, Server.UrlEncode(topic), topic)); model.Topic += topic + ","; } msg = HttpUtility.HtmlEncode(msg); foreach (var item in itemDic) { msg = msg.Replace(item.Key, item.Value); } } else { msg = HttpUtility.HtmlEncode(msg); } //URL转链接 { string tlp = "<a href='{0}' target='_blank'>{0}</a>"; MatchCollection mcs = regHelper.GetUrlsByStr(msg); foreach (Match m in mcs) { //同网址,信息替换多次会产生Bug,如多个www.baidu.com string url = m.Value.IndexOf("://") < 0 ? "http://" + m.Value : m.Value; msg = msg.Replace(m.Value, string.Format(tlp, url)); } } //表情 { if (!string.IsNullOrEmpty(ImgFace_Hid.Value)) { string imgHtml = "<img src='/Plugins/Ueditor/dialogs/emotion/{0}' class='imgface_img' />"; DataTable imgDT = JsonHelper.JsonToDT(ImgFace_Hid.Value); foreach (DataRow dr in imgDT.Rows) { msg = msg.Replace(dr["title"].ToString(), string.Format(imgHtml, dr["realurl"].ToString())); puremsg = puremsg.Replace(dr["title"].ToString(), ""); } } } //@功能 { MatchCollection mc = regHelper.GetValuesBySE(msg, "@", "]"); int id = 0; string atuser = "", atgroup = "", name = ""; string uTlp = "<a href='javascript:;' onclick='ShowUser({0});'>{1}</a>"; string gTlp = "<a href='javascript:;' onclick='ShowGroup({0});'>{1}</a>"; foreach (Match m in mc) { //@what130[uid:19],名字替换为超链接,之后的取值取入数据库 if (string.IsNullOrEmpty(m.Value)) { continue; } if (m.Value.Contains("uid:")) { id = DataConvert.CLng(regHelper.GetValueBySE(m.Value, "uid:", "]", false)); name = regHelper.GetValueBySE(m.Value, "@", @"\[").Replace("[", ""); atuser += id + ","; msg = msg.Replace(m.Value, string.Format(uTlp, id, name)); } else if (m.Value.Contains("gid:")) { id = DataConvert.CLng(regHelper.GetValueBySE(m.Value, "gid:", "]", false)); name = regHelper.GetValueBySE(m.Value, "@", @"\[").Replace("[", ""); atgroup += id + ","; msg = msg.Replace(m.Value, string.Format(gTlp, id, name)); } puremsg = puremsg.Replace(m.Value, ""); } if (!string.IsNullOrEmpty(atuser) || !string.IsNullOrEmpty(atgroup)) { atuser += upBll.SelByGIDS(atgroup); if (!string.IsNullOrEmpty(atuser.Replace(",", ""))) { model.ATUser = StrHelper.IdsFormat(atuser); //model.ATUser = model.ATUser.Replace("," + upMod.UserID, "");//过滤自己 //提示被@人 M_Notify notifyMod = new M_Notify(); notifyMod.CUName = upMod.UserName; notifyMod.Title = "Hi,[" + B_User.GetUserName(upMod.TrueName, upMod.UserName) + "]@你了,点击查看详情"; notifyMod.Content = puremsg.Length > 30 ? puremsg.Substring(0, 30) : puremsg; notifyMod.ReceUsers = model.ATUser; B_Notify.NotifyList.Add(notifyMod); } } } //-------------------------------- msg = msg.Replace("\r", "").Replace("\n", "<br/>");//替换换行标识 #endregion //msg = msg.Replace("'", "\'"); model.MsgContent = msg; if (rid > 0) { M_Blog_Msg msgMod = msgBll.SelReturnModel(model.ReplyID); model.ReplyUserID = msgMod.CUser; model.ReplyUName = msgMod.CUName; } if (string.IsNullOrEmpty(files) && !string.IsNullOrEmpty(Request.Form["Attach_Hid"])) { files = SafeSC.PathDeal(Request.Form["Attach_Hid"].Trim()); } if (!string.IsNullOrEmpty(files))//为安全,不允许全路径,必须后台对路径处理 { string uppath = B_Plat_Common.GetDirPath(B_Plat_Common.SaveType.Blog); foreach (string file in files.Split('|')) { if (string.IsNullOrEmpty(file)) { continue; } model.Attach += uppath + file + "|"; } } if (!string.IsNullOrEmpty(Request.Form["GOnlyMe_Chk"])) { model.GroupIDS = "0"; } else { model.GroupIDS = string.IsNullOrEmpty(Request.Form["GroupIDS_Chk"]) ? "" : Request.Form["GroupIDS_Chk"];//后期需加入检测,避免前台伪造 } model.ColledIDS = ""; return(model); }
public M_Blog_Msg FillMsg(string msg, int pid = 0, int rid = 0) { M_User_Plat upMod = B_User_Plat.GetLogin(); M_Blog_Msg model = new M_Blog_Msg(); model.MsgType = 1; model.Status = 1; model.CUser = upMod.UserID; model.CUName = upMod.TrueName; #region 信息内容处理 msg = Server.HtmlEncode(msg); //避免写入js,后面可插入Html //------处理@功能 //@功能 { MatchCollection mc = regHelper.GetValuesBySE(msg, "@", "]"); int id = 0; string atuser = "", atgroup = "", name = ""; string uTlp = "<a href='javascript:;' onclick='ShowUser({0});'>{1}</a>"; string gTlp = "<a href='javascript:;' onclick='ShowGroup({0});'>{1}</a>"; foreach (Match m in mc) { if (string.IsNullOrEmpty(m.Value)) { continue; } if (m.Value.Contains("uid:")) { id = DataConvert.CLng(regHelper.GetValueBySE(m.Value, "uid:", "]", false)); name = regHelper.GetValueBySE(m.Value, "@", @"\[").Replace("[", ""); atuser += id + ","; msg = msg.Replace(m.Value, string.Format(uTlp, id, name)); } else if (m.Value.Contains("gid:")) { id = DataConvert.CLng(regHelper.GetValueBySE(m.Value, "gid:", "]", false)); name = regHelper.GetValueBySE(m.Value, "@", @"\[").Replace("[", ""); atgroup += id + ","; msg = msg.Replace(m.Value, string.Format(gTlp, id, name)); } msg = msg.Replace(m.Value, ""); } if (!string.IsNullOrEmpty(atuser) || !string.IsNullOrEmpty(atgroup)) { atuser += upBll.SelByGIDS(atgroup); if (!string.IsNullOrEmpty(atuser.Replace(",", ""))) { model.ATUser = StrHelper.IdsFormat(atuser); //model.ATUser = model.ATUser.Replace("," + upMod.UserID, "");//过滤自己 //提示被@人 M_Notify notifyMod = new M_Notify(); notifyMod.CUName = upMod.UserName; notifyMod.Title = "Hi,有人@你了,点击查看详情"; notifyMod.Content = msg.Length > 30 ? msg.Substring(0, 30) : msg; notifyMod.ReceUsers = model.ATUser; B_Notify.NotifyList.Add(notifyMod); } } } #endregion model.MsgContent = msg; model.pid = pid; model.ReplyID = rid; if (rid > 0) { M_Blog_Msg msgMod = msgBll.SelReturnModel(model.ReplyID); model.ReplyUserID = msgMod.CUser; model.ReplyUName = msgMod.CUName; } if (!string.IsNullOrEmpty(Request.Form["Attach_Hid"]))//为安全,不允许全路径,必须后台对路径处理 { string uppath = B_Plat_Common.GetDirPath(B_Plat_Common.SaveType.Blog); M_UserInfo bus = buser.GetLogin(); string files = SafeSC.PathDeal(Request.Form["Attach_Hid"].Trim()); foreach (string file in files.Split('|')) { if (string.IsNullOrEmpty(file)) { continue; } model.Attach += uppath + file + "|"; } } model.GroupIDS = Request.Form["GroupIDS_Chk"];//后期需加入检测,避免前台伪造 model.ColledIDS = ""; //model.CompID = upMod.CompID; return(model); }