Esempio n. 1
0
        public DataTable GetDTFromBar()
        {
            barMod = barBll.SelReturnModel(Sid);
            if (barMod == null)
            {
                return(null);
            }
            RegexHelper regHelper = new RegexHelper();
            string      msg       = StrHelper.DecompressString(barMod.MsgContent);

            barMod.MsgContent = msg.Replace("</img", " </img");
            MatchCollection matches = regHelper.GetValuesBySE(barMod.MsgContent, "<img", "/>");
            DataTable       dt      = DTFormat();

            for (int i = 0; i < matches.Count; i++)
            {
                Match m = matches[i];
                if (m.Value.Contains("/Ueditor"))
                {
                    continue;
                }
                DataRow dr = dt.NewRow();
                dr["Index"] = i;
                dr["Src"]   = regHelper.GetHtmlAttr(m.Value, "src");
                dt.Rows.Add(dr);
            }
            return(dt);
        }
Esempio n. 2
0
    void MyBind()
    {
        barMod = barBll.SelReturnModel(Pid);
        if (barMod == null)
        {
            function.WriteErrMsg("该贴子不存在!");
        }
        PostID = barMod.Pid == 0 ? Pid : barMod.Pid;
        M_UserInfo mu = tpuserBll.GetLogin();// buser.GetLogin();

        cateMod         = guestBll.GetCate(barMod.CateID);
        PostName_L.Text = barMod.Title;
        if ((cateMod.IsBarOwner(mu.UserID) || barMod.CUser == mu.UserID) && barMod.ReplyID == 0)
        {
            if (barMod.Pid == 0)
            {
                MsgTitle_T.Visible = true;
                MsgTitle_T.Text    = barMod.Title;
            }
            MsgContent_T.Text = StrHelper.DecompressString(barMod.MsgContent);
        }
        else
        {
            function.WriteErrMsg("您没有权限修改此贴!");
        }
    }
Esempio n. 3
0
    protected void PostMsg_Btn_Click(object sender, EventArgs e)
    {
        M_UserInfo mu = tpuserBll.GetLogin();//barBll.GetUser();

        if (mu.Status != 0)
        {
            function.WriteErrMsg("您的账户已被锁定,无法进行发帖、回复等操作!");
        }
        M_Guest_Bar     lastMod   = barBll.SelLastModByUid(mu, false);
        M_GuestBookCate catemod   = bookBll.GetCate(Cid);
        BarOption       baroption = GuestConfig.GuestOption.BarOption.Find(v => v.CateID == Cid);
        int             usertime  = baroption == null ? 120 : baroption.UserTime;
        int             sendtime  = baroption == null ? 5 : baroption.SendTime;

        if (!ZoomlaSecurityCenter.VCodeCheck(Request.Form["VCode_hid"], VCode.Text.Trim()))
        {
            function.WriteErrMsg("验证码不正确", "/" + CreateUrl(2, Pid, CPage));
        }
        else if (catemod.IsBarOwner(mu.UserID))
        {
        }
        else if (mu.UserID > 0 && (DateTime.Now - mu.RegTime).TotalMinutes < usertime)//匿名用户不受此限
        {
            int minute = usertime - (int)(DateTime.Now - mu.RegTime).TotalMinutes;
            function.WriteErrMsg("新注册用户" + usertime + "分钟内不能发贴,你还需要" + minute + "分钟", "javascript:history.go(-1);");
        }
        else if (lastMod != null && ((int)(DateTime.Now - lastMod.CDate).TotalMinutes) < sendtime)
        {
            int second = sendtime - (int)(DateTime.Now - lastMod.CDate).TotalMinutes;
            function.WriteErrMsg("你回复太快了," + second + "分钟后才能再次回复", "javascript:history.go(-1);");
        }
        barMod = FillMsg(MsgContent_T.Text, Pid);
        barBll.Insert(barMod);
        Response.Redirect(CreateUrl(2, Pid, CPage));
    }
Esempio n. 4
0
        public M_Guest_Bar FillBarMsg(string msg, int pid, int rid = 0)
        {
            string base64 = StrHelper.CompressString(msg);

            if (base64.Length > 40000)
            {
                function.WriteErrMsg("发贴失败,原因:内容过长,请减少内容文字");
            }
            M_UserInfo  mu     = buser.GetLogin();
            M_Guest_Bar parent = barBll.SelReturnModel(pid);
            M_Guest_Bar model  = new M_Guest_Bar();

            model.MsgType    = 1;
            model.Status     = (int)ZLEnum.ConStatus.Audited;
            model.CUser      = mu.UserID;
            model.CUName     = mu.HoneyName;
            model.R_CUName   = mu.HoneyName;
            model.IDCode     = mu.UserID <= 0 ? mu.WorkNum : mu.UserID.ToString();
            model.MsgContent = base64;
            model.Pid        = pid;
            model.ReplyID    = rid;
            model.CateID     = parent.CateID;
            model.IP         = EnviorHelper.GetUserIP();
            string ipadd = IPScaner.IPLocation(model.IP);

            ipadd           = ipadd.IndexOf("本地") > 0 ? "未知地址" : ipadd;
            model.IP        = model.IP + "|" + ipadd;
            model.ColledIDS = "";
            //AddUserExp(mu, parent.CateID, parent.Title);
            return(model);
        }
Esempio n. 5
0
    protected void PostMsg_Btn_Click(object sender, EventArgs e)
    {
        M_UserInfo mu = tpuser_Bll.GetLogin();//barBll.GetUser();

        if (mu.Status != 0)
        {
            function.WriteErrMsg("您的账户已被锁定,无法进行发帖、回复等操作!");
        }
        M_Guest_Bar     lastMod   = barBll.SelLastModByUid(mu);
        M_GuestBookCate catemod   = guestBll.GetCate(CateID);
        BarOption       baroption = GuestConfig.GuestOption.BarOption.Find(v => v.CateID == CateID);
        int             usertime  = baroption == null ? 120 : baroption.UserTime;
        int             sendtime  = baroption == null?5:baroption.SendTime;

        if (!ZoomlaSecurityCenter.VCodeCheck(Request.Form["VCode_hid"], VCode.Text.Trim()))
        {
            function.WriteErrMsg("验证码不正确", "/" + B_Guest_Bar.CreateUrl(1, CateID, CPage));
        }
        else if (catemod.IsBarOwner(mu.UserID))
        {
        }
        else if (mu.UserID > 0 && (DateTime.Now - mu.RegTime).TotalMinutes < usertime)//匿名用户不受此限
        {
            int minute = usertime - (int)(DateTime.Now - mu.RegTime).TotalMinutes;
            function.WriteErrMsg("新注册用户" + usertime + "分钟内不能发贴,你还需要" + minute + "分钟", "javascript:history.go(-1);");
        }
        else if (lastMod != null && (DateTime.Now - lastMod.CDate).TotalMinutes < sendtime)
        {
            int minute = sendtime - (int)(DateTime.Now - lastMod.CDate).TotalMinutes;
            function.WriteErrMsg("你发贴太快了," + minute + "分钟后才能再次发贴", "javascript:history.go(-1);");
        }
        string msg = MsgContent_T.Text;

        GetSubTitle(ref msg);
        catemod = guestBll.SelReturnModel(CateID);
        barMod  = FillMsg(MsgTitle_T.Text, msg, catemod);
        int id = barBll.Insert(barMod);

        if (catemod.Status == 1 && mu.UserID > 0) //是否需审核
        {
            if (catemod.IsPlat == 1)              //分享到能力中心
            {
                string siteurl = "http://" + Request.Url.Authority + "/";
                string url     = B_Guest_Bar.CreateUrl(2, id);
                string cateurl = B_Guest_Bar.CreateUrl(1, catemod.CateID);
                msgBll.InsertMsg(string.Format(forwardTlp, barMod.Title, siteurl + url, siteurl + url, catemod.CateName, siteurl + cateurl));
            }
            buser.ChangeVirtualMoney(mu.UserID, new M_UserExpHis()
            {
                score     = catemod.SendScore,
                ScoreType = (int)M_UserExpHis.SType.Point,
                detail    = string.Format("{0} {1}在版面:{2}发表主题:{3},赠送{4}分", DateTime.Now, mu.UserName, catemod.CateName, MsgTitle_T.Text.Trim(), catemod.SendScore)
            });
            Response.Redirect("/" + B_Guest_Bar.CreateUrl(2, id));
        }
        else
        {
            Response.Redirect("/" + B_Guest_Bar.CreateUrl(1, CateID));
        }
    }
Esempio n. 6
0
    public M_Guest_Bar FillMsg(string title, string msg, M_GuestBookCate cmode)
    {
        string base64 = StrHelper.CompressString(msg);

        if (base64.Length > 40000)
        {
            function.WriteErrMsg("发贴失败,原因:内容过长,请减少内容文字");
        }
        M_UserInfo  mu    = tpuser_Bll.GetLogin("匿名用户");//barBll.GetUser();
        M_Guest_Bar model = new M_Guest_Bar();

        model.MsgType    = 1;
        model.Status     = cmode.Status > 1 ? (int)ZLEnum.ConStatus.UnAudit : (int)ZLEnum.ConStatus.Audited;//判断贴吧是否开启审核,如果是就默认设置为未审核
        model.CUser      = mu.UserID;
        model.CUName     = mu.HoneyName;
        model.R_CUName   = mu.HoneyName;
        model.Title      = title.Trim();
        model.SubTitle   = GetSubTitle(ref msg);
        model.MsgContent = base64;
        model.CateID     = cmode.CateID;
        model.IP         = EnviorHelper.GetUserIP();
        model.IDCode     = mu.UserID <= 0 ? mu.WorkNum : mu.UserID.ToString();
        string ipadd = IPScaner.IPLocation(model.IP);

        ipadd           = ipadd.IndexOf("本地") > 0 ? "未知地址" : ipadd;
        model.IP        = model.IP + "|" + ipadd;
        model.Pid       = 0;
        model.ReplyID   = 0;
        model.ColledIDS = "";
        return(model);
    }
Esempio n. 7
0
 protected void CUser_LB_Click(object sender, EventArgs e)
 {
     barMod = barBll.SelReturnModel(ID);
     if (!string.IsNullOrEmpty(barMod.CUName))
     {
         Response.Redirect("../User/UserInfo.aspx?id=" + barMod.CUser);
     }
 }
Esempio n. 8
0
 protected void Save_Btn_Click(object sender, EventArgs e)
 {
     barMod            = barBll.SelReturnModel(ID);
     barMod.Title      = txtTitle.Text;
     barMod.Style      = txtStyle_Hid.Value;
     barMod.MsgContent = MsgContent_T.Text;
     barMod.CDate      = DateTime.Parse(CDate_T.Text);
     barBll.UpdateByID(barMod);
     DataBind();
 }
Esempio n. 9
0
 protected void AddMedal_Btn_Click(object sender, EventArgs e)
 {
     barMod = barBll.SelReturnModel(ID);
     if (medalBll.CheckMedalDiff(ID, -1))
     {
         function.WriteErrMsg("您给此贴颁发过勋章了!");
     }
     medalBll.Insert(new M_Guest_Medals()
     {
         UserID = barMod.CUser, BarID = ID, Sender = -1, MedalID = 3
     });
     function.WriteSuccessMsg("颁发成功!");
 }
Esempio n. 10
0
        public VM_PItem(HttpRequestBase Request, int cpage, int psize)
        {
            barMod = barBll.SelReturnModel(DataConvert.CLng(Request.QueryString["id"]));
            if (barMod == null)
            {
                function.WriteErrMsg("该贴子不存在!!");
            }
            cateMod = cateBll.SelReturnModel(barMod.CateID);
            mu      = tuBll.GetLogin();
            if (barMod.Status != (int)ZLEnum.ConStatus.Audited && cateMod.Status != 1)
            {
                function.WriteErrMsg("该贴子需要审核通过才能浏览!");
            }
            if (cateMod.IsBarOwner(mu.UserID))//吧主
            {
                auth_barowner = true;
                auth_edit     = true;
            }
            else
            {
                if (!authBll.AuthCheck(cateMod, mu))
                {
                    function.WriteErrMsg("你没有访问权限或未登录,请<a href='/User/Login?Returnurl=/PItem?id=" + barMod.ID + "&cpage=" + cpage + "'>登录</a>后查看");
                }
                if ((!authBll.AuthCheck(cateMod, mu, "send")))
                {
                    auth_send = false;
                }
            }
            if (barMod.CUser == mu.UserID)
            {
                auth_edit = true;
            }
            setting = barBll.SelByID(cpage, psize, barMod, Request.QueryString["Filter"]);
            barBll.AddHitCount(barMod.ID);
            barMod.HitCount++;
            string msgids = "";

            for (int i = 0; i < setting.dt.Rows.Count; i++)
            {
                msgids += setting.dt.Rows[i]["ID"].ToString() + ",";
            }
            likeDT  = likeBll.SelByMsgIDS(msgids.Trim(','), "bar");
            mediaDT = medalBll.SelByBarIDS(msgids.Trim(','));
            if (barMod.Status < 0 && barMod.Status == (int)ZLEnum.ConStatus.Recycle)
            {
                function.WriteErrMsg("该帖子已删除!!", "/PClass?id=" + barMod.CateID);
            }
            auth_like = !barMod.ColledIDS.Contains("," + mu.UserID + ",");
        }
Esempio n. 11
0
 protected void BtnAddMedalPosation_Click(object sender, EventArgs e)
 {
     if (!string.IsNullOrEmpty(Request.Form["idchk"]))
     {
         string[] idsarr = Request.Form["idchk"].Split(',');
         foreach (string barid in idsarr)
         {
             int id = DataConverter.CLng(barid);
             if (!medalbll.CheckMedalDiff(id, -1))//检测是否重复颁发
             {
                 M_Guest_Bar barmod = barBll.SelReturnModel(id);
                 medalbll.Insert(new M_Guest_Medals()
                 {
                     UserID = barmod.CUser, BarID = id, Sender = -1, MedalID = 3
                 });
             }
         }
         function.WriteSuccessMsg("颁发成功!");
     }
 }
Esempio n. 12
0
 protected void DelMsg_Btn_Click(object sender, EventArgs e)
 {
     if (Pid > 0)
     {
         M_UserInfo mu = barBll.GetUser();
         barMod = barBll.SelReturnModel(Pid);
         int    cateId = barMod.CateID;
         string result = barBll.UpdateStatus(barBll.SelReturnModel(Pid).CateID, Pid.ToString(), -1) ? "ok" : "failed";
         if (result == "ok")
         {
             function.Script(this, "<script>alert('删除成功!')</script>");
             Response.Redirect("/PClass?uid=" + mu.UserID);
         }
         else
         {
             function.Script(this, "<script>alert('删除失败!')</script>");
             Response.Redirect("/PItem?id=" + Pid);
         }
     }
 }
Esempio n. 13
0
        //贴子编辑|新建
        public IActionResult EditContent()
        {
            M_UserInfo      mu      = tuBll.GetLogin();// buser.GetLogin();
            M_Guest_Bar     barMod  = new M_Guest_Bar();
            M_GuestBookCate cateMod = null;

            if (Mid >= 0)
            {
                barMod = barBll.SelReturnModel(Mid);
                if (barMod == null)
                {
                    return(WriteErr("该贴子不存在!"));
                }
                cateMod = cateBll.SelReturnModel(barMod.CateID);
                if ((cateMod.IsBarOwner(mu.UserID) || barMod.CUser == mu.UserID) && barMod.ReplyID == 0)
                {
                    barMod.MsgContent = StrHelper.DecompressString(barMod.MsgContent);
                }
                else
                {
                    return(WriteErr("您没有权限修改此贴!"));
                }
            }
            else
            {
                cateMod = cateBll.SelReturnModel(CateID);
                string errtitle = "<h3 class='panel-title'><span class='fa fa-exclamation-circle'></span> 系统提示</h3>";
                if (!authBll.AuthCheck(cateMod, mu, "send"))//验证发贴权限
                {
                    string url = "/User/Login?ReturnUrl=" + HttpUtility.UrlEncode(Request.RawUrl());
                    return(WriteErr(errtitle, "你没有登录,请[<a href='" + url + "'>登录</a>]后再发贴!", url));
                }
                else if (!authBll.AuthCheck(cateMod, mu, "send"))
                {
                    return(WriteErr(errtitle, "您没有权限在此发帖,请[<a href='/Bar/Index'>返回</a>]论坛主页!", "/Index"));
                }
            }
            ViewBag.cateMod = cateMod;
            return(View(barMod));
        }
Esempio n. 14
0
        public void DataBind(string key = "")
        {
            DataTable dt = barBll.SelByPid(1, int.MaxValue, ID).dt;

            barMod        = barBll.SelReturnModel(ID);
            ID_L.Text     = barMod.ID.ToString();
            IP_L.Text     = barMod.IP == "" ? "无IP地址" : barMod.IP;
            CDate_L.Text  = barMod.CDate.ToString();
            CDate_T.Text  = barMod.CDate.ToString();
            CUser_LB.Text = barMod.CUName == "" ? "[匿名]" : "<a href=\"javascript:;\" onclick=\"ShowUserInfo(" + barMod.CUser + ")\">" + barMod.CUName + "</a>";//
            Title_L.Text  = barMod.Title;
            Title_L.Attributes["style"] += barMod.Style;
            txtTitle.Text = barMod.Title;
            txtTitle.Attributes["style"] += barMod.Style;
            MedalBind();
            string content = StrHelper.DecompressString(barMod.MsgContent);

            MsgContent_L.Text = content;
            MsgContent_T.Text = content;
            Egv1.DataSource   = dt;
            Egv1.DataBind();
        }
Esempio n. 15
0
        public int AddMedal_U(int id, int sender)
        {
            if (CheckMedalDiff(id, sender))
            {
                return(-2);
            }                                             //不能重复颁发
            B_Guest_Bar     barbll  = new B_Guest_Bar();
            M_Guest_Bar     barmod  = barbll.SelReturnModel(id);
            M_GuestBookCate catemod = new B_GuestBookCate().SelReturnModel(barmod.CateID);
            int             medalid = 2;//吧主勋章

            //不是吧主扣除积分
            if (!catemod.IsBarOwner(sender))
            {
                if (barmod.CUser == sender)
                {
                    return(-3);
                }            //非吧主不能给自己颁发勋章
                medalid = 1; //网友勋章
                B_User     buser = new B_User();
                M_UserInfo mu    = buser.SelReturnModel(sender);
                if (mu.UserExp <= 0)
                {
                    return(-1);
                }                                  //用户积分不足
                buser.ChangeVirtualMoney(sender, new M_UserExpHis()
                {
                    score     = -1,
                    ScoreType = (int)M_UserExpHis.SType.Point,
                    detail    = string.Format("{0} {1}在版面:{2}发表勋章给:[{3}]的贴子,扣除{4}分", DateTime.Now, mu.UserName, catemod.CateName, barmod.Title, catemod.SendScore)
                });
            }
            Insert(new M_Guest_Medals()
            {
                UserID = barmod.CUser, BarID = id, MedalID = medalid, Sender = sender
            });
            return(medalid);
        }
Esempio n. 16
0
        private M_Guest_Bar FillMsg(string title, string msg, int pid, int rid = 0, M_GuestBookCate catemod = null)
        {
            if (pid > 0)
            {
                M_Guest_Bar pmod = barBll.SelReturnModel(pid);
                catemod = cateBll.SelReturnModel(pmod.CateID);
            }
            string base64 = StrHelper.CompressString(msg);

            if (base64.Length > 40000)
            {
                throw new Exception("取消修改,原因:内容过长,请减少内容");
            }
            M_UserInfo  mu    = tuBll.GetLogin("匿名用户"); //barBll.GetUser();
            M_Guest_Bar model = new M_Guest_Bar();

            model.MsgType    = 1;
            model.Status     = catemod.Status > 1 ? (int)ZLEnum.ConStatus.UnAudit : (int)ZLEnum.ConStatus.Audited;//判断贴吧是否开启审核,如果是就默认设置为未审核
            model.CUser      = mu.UserID;
            model.CUName     = mu.HoneyName;
            model.R_CUName   = mu.HoneyName;
            model.Title      = title;
            model.SubTitle   = GetSubTitle(ref msg);
            model.MsgContent = base64;
            model.CateID     = catemod.CateID;
            model.IP         = IPScaner.GetUserIP(HttpContext);
            string ipadd = IPScaner.IPLocation(model.IP);

            ipadd           = ipadd.IndexOf("本地") > 0 ? "未知地址" : ipadd;
            model.IP        = model.IP + "|" + ipadd;
            model.Pid       = pid;
            model.ReplyID   = rid;
            model.ColledIDS = "";
            model.IDCode    = mu.UserID == 0 ? mu.WorkNum : mu.UserID.ToString();
            model.CDate     = DateTime.Now;
            return(model);
        }
        public void Post_Add()
        {
            //Mid,CateID
            M_UserInfo mu = tuBll.GetLogin(); //buser.GetLogin();

            if (mu.Status != 0)
            {
                function.WriteErrMsg("您的账户已被锁定,无法进行发帖、回复等操作!"); return;
            }
            int    pid           = DataConvert.CLng(Request.QueryString["pid"]);
            string title         = Request.Form["MsgTitle_T"];
            string msg           = Request.Form["MsgContent_T"];
            string base64Msg     = StrHelper.CompressString(msg);
            string rurl          = Request["rurl"];//操作完成后返回哪个链接
            bool   auth_barowner = false;

            if (pid > 0)//回复主贴
            {
                M_Guest_Bar pmod = barBll.SelReturnModel(pid);
                CateID = pmod.CateID;
            }
            if (Mid > 0)//编辑贴子
            {
                barMod = barBll.SelReturnModel(Mid);
                CateID = barMod.CateID;
            }
            M_GuestBookCate cateMod = cateBll.SelReturnModel(CateID);

            if (cateMod == null)
            {
                function.WriteErrMsg("栏目不存在"); return;
            }
            rurl          = string.IsNullOrEmpty(rurl) ? "/PClass?id=" + cateMod.CateID : rurl;
            auth_barowner = cateMod.IsBarOwner(mu.UserID);
            if (Mid > 0)//编辑
            {
                if (barMod.CUser != mu.UserID && !auth_barowner)
                {
                    function.WriteErrMsg("你无权修改该内容"); return;
                }
                barMod.Title      = title;
                barMod.SubTitle   = GetSubTitle(ref msg);
                barMod.MsgContent = base64Msg;
                barBll.UpdateByID(barMod);
            }
            else
            {
                if (pid < 1 && string.IsNullOrEmpty(title))
                {
                    function.WriteErrMsg("贴子标题不能为空!"); return;
                }
                if (!ZoomlaSecurityCenter.VCodeCheck(Request["VCode_hid"], Request["VCode"]))
                {
                    function.WriteErrMsg("验证码不正确"); return;
                }
                if (!auth_barowner)//非管理员需要检测权限和接受限制
                {
                    //是否可在该版块发贴子
                    if (!authBll.AuthCheck(cateMod, mu, "send"))
                    {
                        function.WriteErrMsg("你无权在[" + cateMod.CateName + "]版块发布贴子"); return;
                    }
                    //是否有时间限制
                    M_Guest_Bar lastMod   = barBll.SelLastModByUid(mu);
                    BarOption   baroption = GuestConfig.GuestOption.BarOption.Find(v => v.CateID == CateID);
                    int         usertime  = baroption == null ? 120 : baroption.UserTime;
                    int         sendtime  = baroption == null ? 5 : baroption.SendTime;
                    if (mu.UserID > 0 && (DateTime.Now - mu.RegTime).TotalMinutes < usertime)//匿名用户不受此限
                    {
                        int minute = usertime - (int)(DateTime.Now - mu.RegTime).TotalMinutes;
                        function.WriteErrMsg("新注册用户" + usertime + "分钟内不能发贴,你还需要" + minute + "分钟", "javascript:history.go(-1);"); return;
                    }
                    else if (lastMod != null && (DateTime.Now - lastMod.CDate).TotalMinutes < sendtime)
                    {
                        int minute = sendtime - (int)(DateTime.Now - lastMod.CDate).TotalMinutes;
                        function.WriteErrMsg("你发贴太快了," + minute + "分钟后才能再次发贴", "javascript:history.go(-1);"); return;
                    }
                }
                barMod = FillMsg(title, msg, pid, 0, cateMod);
                barBll.Insert(barMod);
                if (cateMod.Status == 1 && mu.UserID > 0 && cateMod.SendScore > 0)//是否需审核
                {
                    buser.AddMoney(mu.UserID, cateMod.SendScore, M_UserExpHis.SType.Point, string.Format("{0} {1}在版面:{2}发表主题:{3},赠送{4}分", DateTime.Now, mu.UserName, cateMod.CateName, barMod.Title, cateMod.SendScore));
                }
            }
            Response.Redirect(rurl); return;
        }
Esempio n. 18
0
    public void MyBind()
    {
        int       pageCount = 0;
        DataTable dt        = new DataTable();

        barMod = barBll.SelReturnModel(Pid);
        if (barMod == null)
        {
            function.WriteErrMsg("该贴子不存在!!");
        }
        M_GuestBookCate cateMod = bookBll.GetCate(barMod.CateID);
        M_UserInfo      mu      = tpuserBll.GetLogin();//barBll.GetUser();

        if (barMod.Status != (int)ZLEnum.ConStatus.Audited && cateMod.Status != 1)
        {
            function.WriteErrMsg("该贴子需要审核通过才能浏览!");
        }
        if (cateMod.IsBarOwner(mu.UserID))//吧主
        {
            barowner_div.Visible = true;
            IsBarOwner           = true;
        }
        else
        {
            if (!authBll.AuthCheck(cateMod, mu))
            {
                function.WriteErrMsg("你没有访问权限或未登录,请<a href='/User/Login.aspx?Returnurl=/" + B_Guest_Bar.CreateUrl(2, Pid, CPage) + "'>登录</a>后查看");
                //if (cateMod.NeedLog == 1 && mu.UserID == 0) function.WriteErrMsg("该栏目必须<a href='/User/Login.aspx?returnUrl=/Post" + Pid + "/Default_1.aspx'>登录</a>后才能访问");
            }
            if ((!authBll.AuthCheck(cateMod, mu, "send")))
            {
                send_div.Visible   = false;
                noauth_div.Visible = true;
            }
        }
        dt = barBll.SelByID(Pid);
        barBll.AddHitCount(Pid);
        hitcount_span.InnerText = (barMod.HitCount + 1).ToString();
        dt.Columns.Add("Layer", typeof(int));
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            dt.Rows[i]["Layer"] = (i + 1);
        }
        if (Filter.Contains("OnlyLayer"))
        {
            dt.DefaultView.RowFilter = "CUser = "******"该帖子已删除!!", "/" + B_Guest_Bar.CreateUrl(1, Cid));
        }
        function.Script(this, "SetImg('" + cateMod.BarImage + "');");
        ReturnBar_a.Text        = "<i class='fa fa-arrow-circle-left'></i>返回" + cateMod.CateName;
        ReturnBar_a.NavigateUrl = "/" + CreateUrl(1, Cid);
        int mcount = 0, rcount = 0;

        barBll.GetCount(Cid, out mcount, out rcount);
        if (!barMod.LikeIDS.Contains("," + mu.UserID + ","))
        {
            LikeBtn_Li.Text = string.Format("<input type='button' value='收藏' id='liketie' onclick='LikeTie(this,{0})'class='btn btn-xs btn-primary' />", Pid);
        }
        else
        {
            LikeBtn_Li.Text = "<input type='button' value='取消收藏' id='liketie' onclick='LikeTie(this," + Pid + ")'class='btn btn-xs btn-primary liked' />";
        }
        //判断是否显示编辑按钮
        if (UserID == barMod.CUser)
        {
            EditBtn_DIV.Visible = true;
        }
    }
Esempio n. 19
0
        public IActionResult Post_Add()
        {
            //Mid,CateID
            M_UserInfo mu = tuBll.GetLogin(); //buser.GetLogin();

            if (mu.Status != 0)
            {
                return(WriteErr("您的账户已被锁定,无法进行发帖、回复等操作!"));
            }
            int    pid   = DataConvert.CLng(RequestEx["pid"]);
            string title = Request.Form["MsgTitle_T"];
            string msg   = Request.Form["MsgContent_T"];

            //如果内容来源于手机编辑器,则合并图片与转化表情
            if (DataConvert.CStr(Request.Form["editor"]).Equals("mbeditor"))
            {
                msg = msg.Replace("\r\n", "<br />");
                string imgs = Request.Form["txt_bar"], emotions = Request.Form["ImgFace_Hid"];
                if (!string.IsNullOrEmpty(emotions))
                {
                    string    imgTlp = "<img src='/Plugins/Ueditor/dialogs/emotion/{0}' class='imgface_img' />";
                    DataTable dt     = JsonHelper.JsonToDT(emotions);
                    foreach (DataRow dr in dt.Rows)
                    {
                        msg = msg.Replace(dr["title"].ToString(), string.Format(imgTlp, dr["realurl"].ToString()));
                    }
                }
                if (!string.IsNullOrEmpty(imgs) && !imgs.Equals("[]"))
                {
                    string imgHtml = "";
                    string imgTlp  = "<img src='{0}'>";
                    //[{"url":"/UploadFiles/User/user/admin1/20180627EvVVMk.jpg","desc":""}]
                    DataTable dt = JsonHelper.JsonToDT(imgs);
                    foreach (DataRow dr in dt.Rows)
                    {
                        imgHtml += string.Format(imgTlp, DataConvert.CStr(dr["url"]));
                    }
                    msg += "<div>" + imgHtml + "</div>";
                }
            }
            string base64Msg     = StrHelper.CompressString(msg);
            string rurl          = RequestEx["rurl"];//操作完成后返回哪个链接
            bool   auth_barowner = false;

            if (pid > 0)//回复主贴
            {
                M_Guest_Bar pmod = barBll.SelReturnModel(pid);
                CateID = pmod.CateID;
            }
            if (Mid > 0)//编辑贴子
            {
                barMod = barBll.SelReturnModel(Mid);
                CateID = barMod.CateID;
            }
            M_GuestBookCate cateMod = cateBll.SelReturnModel(CateID);

            if (cateMod == null)
            {
                return(WriteErr("栏目不存在"));
            }
            rurl          = string.IsNullOrEmpty(rurl) ? "/PClass?id=" + cateMod.CateID : rurl;
            auth_barowner = cateMod.IsBarOwner(mu.UserID);
            if (Mid > 0)//编辑
            {
                if (barMod.CUser != mu.UserID && !auth_barowner)
                {
                    return(WriteErr("你无权修改该内容"));
                }
                barMod.Title      = title;
                barMod.SubTitle   = GetSubTitle(ref msg);
                barMod.MsgContent = base64Msg;
                barBll.UpdateByID(barMod);
            }
            else
            {
                if (pid < 1 && string.IsNullOrEmpty(title))
                {
                    return(WriteErr("贴子标题不能为空!"));
                }
                if (!ZoomlaSecurityCenter.VCodeCheck(RequestEx["VCode_hid"], RequestEx["VCode"]))
                {
                    return(WriteErr("验证码不正确"));
                }
                if (!auth_barowner)//非管理员需要检测权限和接受限制
                {
                    //是否可在该版块发贴子
                    if (!authBll.AuthCheck(cateMod, mu, "send"))
                    {
                        return(WriteErr("你无权在[" + cateMod.CateName + "]版块发布贴子"));
                    }
                    //是否有时间限制
                    M_Guest_Bar lastMod   = barBll.SelLastModByUid(mu);
                    BarOption   baroption = GuestConfig.GuestOption.BarOption.Find(v => v.CateID == CateID);
                    int         usertime  = baroption == null ? 120 : baroption.UserTime;
                    int         sendtime  = baroption == null ? 5 : baroption.SendTime;
                    if (mu.UserID > 0 && (DateTime.Now - mu.RegTime).TotalMinutes < usertime)//匿名用户不受此限
                    {
                        int minute = usertime - (int)(DateTime.Now - mu.RegTime).TotalMinutes;
                        return(WriteErr("新注册用户" + usertime + "分钟内不能发贴,你还需要" + minute + "分钟", "javascript:history.go(-1);"));
                    }
                    else if (lastMod != null && (DateTime.Now - lastMod.CDate).TotalMinutes < sendtime)
                    {
                        int minute = sendtime - (int)(DateTime.Now - lastMod.CDate).TotalMinutes;
                        return(WriteErr("你发贴太快了," + minute + "分钟后才能再次发贴", "javascript:history.go(-1);"));
                    }
                }
                barMod    = FillMsg(title, msg, pid, 0, cateMod);
                barMod.ID = barBll.Insert(barMod);
                if (pid < 1)
                {
                    rurl = "/PItem?ID=" + barMod.ID;
                }
                if (cateMod.Status == 1 && mu.UserID > 0 && cateMod.SendScore > 0)//是否需审核
                {
                    buser.AddMoney(mu.UserID, cateMod.SendScore, M_UserExpHis.SType.Point, string.Format("{0} {1}在版面:{2}发表主题:{3},赠送{4}分", DateTime.Now, mu.UserName, cateMod.CateName, barMod.Title, cateMod.SendScore));
                }
            }
            return(Redirect(rurl));
        }