Exemplo n.º 1
0
    public static void AddNotify(string uname, string title, string content, string receuser)
    {
        M_Notify model = new M_Notify();

        model.CUName    = uname;
        model.Title     = title;
        model.Content   = content;
        model.ReceUsers = receuser;
        NotifyList.Add(model);
    }
Exemplo n.º 2
0
        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("&#39;", "\'");
            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);
        }
Exemplo n.º 3
0
 public void AddReader(M_Notify model, int uid)
 {
     model.ReadUsers = model.ReadUsers.Trim(',') + "," + uid + ",";
 }
Exemplo n.º 4
0
        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);
        }