Пример #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            anm_Utility ut        = new anm_Utility();
            string      idn       = HttpContext.Current.Request.QueryString["news"];
            string      titlenews = ut.GetTitleNews(idn);
            Page.Title = titlenews + " - " + ut.GetSetting("SiteName");
            if (Request.QueryString["page"] != null)
            {
                currentpage = Convert.ToInt32(HttpContext.Current.Request.QueryString["page"].ToString());
            }
            if (Request.QueryString["comment"] != null)
            {
                string idc       = Request.QueryString["comment"];
                int    rownumber = 0;
                try
                {
                    idn = ut.GetIdNewsByComment(Request.QueryString["comment"]);
                    string        strConn      = ConfigurationManager.ConnectionStrings["anmcs"].ToString();
                    SqlConnection myConnection = new SqlConnection(strConn);
                    SqlCommand    myCommand2   = new SqlCommand();
                    myCommand2.Connection = myConnection;
                    myConnection.Open();
                    myCommand2.CommandText = "SELECT RowNumber FROM (SELECT idcomment, ROW_NUMBER() OVER(ORDER BY idcomment DESC) AS RowNumber FROM [anm_Comments] WHERE [idnews] = " + idn + " and [approved] = 'true') AS NewsWithRowNumbers WHERE idcomment = " + idc + "";
                    SqlDataReader reader2 = myCommand2.ExecuteReader();
                    if (reader2.Read())
                    {
                        rownumber = Convert.ToInt32(reader2["RowNumber"].ToString());
                    }
                    myConnection.Close();
                }
                catch
                {
                    Response.Redirect(apath + "/homepage.aspx");
                }
                int maxRows = 15;
                if (ut.GetSetting("NumComments") != "")
                {
                    maxRows = Convert.ToInt32(ut.GetSetting("NumComments"));
                }
                int page = (rownumber / maxRows) + 1;
                if (rownumber % maxRows == 0)
                {
                    page = page - 1;
                }
                titlenews   = ut.GetTitleNews(idn);
                currentpage = page;
                Page.Title  = titlenews + " - " + GetGlobalResourceObject("language", "Comment").ToString() + " " + idc + " - " + ut.GetSetting("SiteName");
            }

            SqlDataSource2.SelectParameters["idnews"].DefaultValue = idn;
            SqlDataSource1.SelectParameters["idnews"].DefaultValue = idn;

            string path   = Page.Request.Url.AbsolutePath.ToString();
            string idnews = idn;
            HLrssComments.NavigateUrl = HLsubscribeCom.NavigateUrl = apath + "/subscribecomments/" + idnews + ".aspx";
            HLsubscribeCom.Text       = GetGlobalResourceObject("language", "Subscribe").ToString() + " " + GetGlobalResourceObject("language", "Comments").ToString();
            if (Request.QueryString["err"] == "1")
            {
                lblerror.Visible     = true;
                lblerror.Text        = GetGlobalResourceObject("language", "insertcomment").ToString();
                errorcaptcha.Visible = false;
                Panelcomm.Visible    = false;
            }
            if (Request.QueryString["err"] == "4")
            {
                lblerror.Visible     = true;
                lblerror.Text        = GetGlobalResourceObject("language", "commentlength").ToString();
                errorcaptcha.Visible = false;
                Panelcomm.Visible    = false;
            }
            if (Request.QueryString["err"] == "3")
            {
                errorcaptcha.Visible = true;
                lblerror.Visible     = false;
                Panelcomm.Visible    = false;
            }
            if (Request.QueryString["err"] == "5")
            {
                Panelcomm.Visible    = true;
                lblerror.Visible     = false;
                errorcaptcha.Visible = false;
            }
            if (Request.IsAuthenticated)
            {
                MembershipUser user = Membership.GetUser();
                string         role = ut.GetRole(user.UserName);
                if (role == "1" || role == "2")
                {
                    HLAdminComm.Text        = "| [ADMIN] " + GetGlobalResourceObject("language", "ManageComments") + " |";
                    HLAdminComm.NavigateUrl = path + "?p=AdminComments&idnews=" + idnews;
                }
                Panelcomm.Visible = false;
            }
            else if (ut.GetSetting("Anonymous") == "False")
            {
                HyperLink4.NavigateUrl = apath + "/default.aspx?p=NewUser";
                HyperLink5.NavigateUrl = apath + "/default.aspx?p=Login";
                Panelcomm.Visible      = true;
                btnSendC.Visible       = false;
            }
            imgRssIcon.ImageUrl = apath + "/images/rssicon.gif";

            int maximumRows = 15;
            int numarticles = 0;
            numarticles = ut.GetNumberComments(idn);
            if (ut.GetSetting("NumComments") != "")
            {
                maximumRows = Convert.ToInt32(ut.GetSetting("NumComments"));
            }
            int maxpage = (numarticles / maximumRows) + 1;
            if (numarticles % maximumRows == 0)
            {
                maxpage = numarticles / maximumRows;
            }

            string linknav = "<div class='linkpage'>";
            if (currentpage != 0)
            {
                int page = currentpage;
                SqlDataSource2.SelectParameters["startRowIndex"].DefaultValue = (maximumRows * (page - 1)).ToString();
                if (numarticles > maximumRows)
                {
                    for (int i = (page - 5); i < (page + 10); i++)
                    {
                        if (i >= 1 && i <= (maxpage))
                        {
                            if (page == i)
                            {
                                linknav += "<a href='" + apath + "/page" + i + "/comments/articles/" + idn + "/" + ut.RemoveNonAlfaNumeric(titlenews) + ".aspx#comments' class='pagenavselected'>" + i + "</a> ";
                            }
                            else
                            {
                                linknav += "<a href='" + apath + "/page" + i + "/comments/articles/" + idn + "/" + ut.RemoveNonAlfaNumeric(titlenews) + ".aspx#comments' class='pagenav'>" + i + "</a> ";
                            }
                        }
                    }
                }
            }
            else
            {
                currentpage = 1;
                SqlDataSource2.SelectParameters["startRowIndex"].DefaultValue = "0";
                for (int i = 1; i < 11; i++)
                {
                    if (i == 1)
                    {
                        linknav += "<a href='" + apath + "/page" + i + "/comments/articles/" + idn + "/" + ut.RemoveNonAlfaNumeric(titlenews) + ".aspx#comments' class='pagenavselected'>" + i + "</a> ";
                    }
                    if (i > 1 && i <= maxpage)
                    {
                        linknav += "<a href='" + apath + "/page" + i + "/comments/articles/" + idn + "/" + ut.RemoveNonAlfaNumeric(titlenews) + ".aspx#comments' class='pagenav'>" + i + "</a> ";
                    }
                }
            }
            if (linknav != "<div class='linkpage'>")
            {
                linknav += "- " + GetGlobalResourceObject("language", "Page") + " " + currentpage + " " + GetGlobalResourceObject("language", "Of") + " " + maxpage + "</div>";
            }
            else
            {
                linknav = "";
            }
            LTpagelink.Text = linknav;
            if (maxpage == 1)
            {
                LTpagelink.Visible = false;
            }
            SqlDataSource2.SelectParameters["maximumRows"].DefaultValue = maximumRows.ToString();
            if ((ut.GetSetting("CaptchaComments") == "True" && ut.GetSetting("Anonymous") == "False" && Request.IsAuthenticated) || (ut.GetSetting("CaptchaComments") == "True" && ut.GetSetting("Anonymous") == "True") || (ut.GetSetting("CaptchaComments") == "True" && ut.GetSetting("Anonymous") == null))
            {
                string text = (Guid.NewGuid().ToString()).Substring(0, 5);
                Response.Cookies["Captcha"]["value"] = text;
                imgcaptcha.ImageUrl  = path + "?p=captcha";
                UpdatePanel1.Visible = lblcaptcha.Visible = txtcaptcha.Visible = true;
            }
        }
    }