⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 comments.aspx.cs

📁 community server 源码
💻 CS
📖 第 1 页 / 共 2 页
字号:
                            query.MaximumSpamScore = CurrentWeblog.SpamAutoModerateScore > 0
                                ? CurrentWeblog.SpamAutoModerateScore
                                : spamConfig.AutoModerateScore;
                            break;
            			
                        case 1: 
                            query.MaximumSpamScore = CurrentWeblog.SpamAutoDeleteScore > 0
                                ? CurrentWeblog.SpamAutoDeleteScore
                                : spamConfig.AutoDeleteScore;
            			
                            query.MinimumSpamScore = CurrentWeblog.SpamAutoModerateScore > 0
                                ? CurrentWeblog.SpamAutoModerateScore
                                : spamConfig.AutoModerateScore;            			
                            break;            			
            			
                        case 2: 
                            query.MinimumSpamScore = CurrentWeblog.SpamAutoDeleteScore > 0
                                ? CurrentWeblog.SpamAutoDeleteScore
                                : spamConfig.AutoDeleteScore;
                            break;
            		
                    }

                    query.PublishedFilter = (BlogPostPublishedFilter)context.GetIntFromQueryString("ip", (int)BlogPostPublishedFilter.All);

                    query.SortOrder = SortOrder.Descending;

                    int postID = context.GetIntFromQueryString("pid",-1); 
                    if(postID > -1)
                        query.ParentID = postID;

                    ThreadSet ts = WeblogPosts.GetBlogThreads(query, false);

                    theComments.DataSource = ts.Threads;
                    theComments.DataBind();

                    csPager.PageSize = this.DefaultPageSize;
                    csPager.TotalRecords = ts.TotalRecords;
                    csPager.PageIndex = context.PageIndex;
                    //csPager.DataBind();
                }
            }
		}

        private void HandleActions(string action)
        {
            if(action != null && Request.QueryString["postids"] != null)
            {
                action = action.ToLower();
                string[] postids = Request.QueryString["postids"].Split(',');
                if(postids != null && postids.Length > 0)
                {
                    foreach(string sp in postids)
                    {
                        int pid = Globals.SafeInt(sp,-1);
                        if(pid > -1)
                        {
                            WeblogPost post = WeblogPosts.GetPost(pid,false,false,false);    
                            if(post != null && post.IsFeedback && post.SectionID == this.CurrentWeblog.SectionID)
                            {
                                switch(action.ToLower())
                                {
                                    case "approve": 
                                        post.IsApproved = true;


                                        if (((post.PostStatus & PostStatus.Spam) == PostStatus.Spam) || ((post.PostStatus & PostStatus.LikelySpam) == PostStatus.LikelySpam))
                                        {
											post.PostStatus &= ~PostStatus.Spam;
											post.PostStatus &= ~PostStatus.LikelySpam;
                                            post.PostStatus |= PostStatus.Ham;
                                            post.SpamScore = 0;
                                        }
                                        

                                        WeblogPosts.Update(post,CurrentUser.UserID);
                                        break;
                                    case "moderate":
                                        post.IsApproved = false;
                                        WeblogPosts.Update(post,CurrentUser.UserID);
                                        break;
                                    case "delete":
                                        WeblogPosts.Delete(post,CurrentUser.UserID);
                                        break;
                                }
                            }
                            else
                            {
                                EventLogs.Warn(string.Format("User: {0} ({1}) attemped to {2} postid {3} while logged into section {4}", CurrentUser.Username,CurrentUser.UserID,action,pid,this.CurrentWeblog.SectionID),"Invalid Blog Comment Action", 342, CSContext.Current.SettingsID);
                                throw new CSException(CSExceptionType.AccessDenied, "Invalid Blog Comment Action");
                            }
                            
                        }

                    }

                    FilterButton_Click(null,EventArgs.Empty);
                }
            }
        }


        private void BindFilters()
        {

            // Manually populate the DropDownLists
            filterBlogPostType.Items.Add(new ListItem(ResourceManager.GetString("Feedback_SelectAll"), "-1"));
			filterBlogPostType.Items.Add(new ListItem(CPResourceManager.GetString("CP_Blog_Comments_Comment"), Convert.ToString((int)BlogPostType.Comment)));
			filterBlogPostType.Items.Add(new ListItem(CPResourceManager.GetString("CP_Blog_Comments_Trackback"), Convert.ToString((int)BlogPostType.Trackback)));

            filterPublished.Items.Add(new ListItem(ResourceManager.GetString("Feedback_SelectAll"), ((int)BlogPostPublishedFilter.All).ToString()));
            filterPublished.Items.Add(new ListItem(ResourceManager.GetString("Feedback_FilterPublished"), ((int)BlogPostPublishedFilter.Published).ToString()));
            filterPublished.Items.Add(new ListItem(ResourceManager.GetString("Feedback_FilterNotPublished"), ((int)BlogPostPublishedFilter.NotPublished).ToString()));

        	SpamFilter.Items.Add(new ListItem(CPResourceManager.GetString("CP_Blog_Comments_NotSpam"), "0"));
        	SpamFilter.Items.Add(new ListItem(CPResourceManager.GetString("CP_Blog_Comments_PossibleSpam"), "1"));
        	SpamFilter.Items.Add(new ListItem(CPResourceManager.GetString("CP_Blog_Comments_Spam"), "2"));
        	SpamFilter.Items.Add(new ListItem(CPResourceManager.GetString("CP_Blog_Comments_Ignore"), "-1"));
       	
        	
            // Retrieve list of recent blog posts
            BlogThreadQuery query = new BlogThreadQuery();
            query.SectionID = this.CurrentWeblog.SectionID;
            query.BlogPostType = BlogPostType.Post | BlogPostType.Article;
            query.BlogThreadType = BlogThreadType.Recent;
            query.IncludeCategories = false;
            query.PublishedFilter = BlogPostPublishedFilter.All;
            query.PageSize = 20;
            query.SortOrder = SortOrder.Descending;
            query.SortBy = BlogThreadSortBy.MostRecent;
            ThreadSet threads = WeblogPosts.GetBlogThreads(query,false);

            // Insert default "All" item
            filterPost.Items.Add(new ListItem(ResourceManager.GetString("Feedback_FilterAll"), "-1"));

            foreach (WeblogPost post in threads.Threads)
            {
                filterPost.Items.Add(new ListItem(Globals.HtmlDecode(post.Subject), Convert.ToString(post.PostID)));
            }

            // Check if preselected values of the filter DropDownLists were passed in the URL
            CSContext context = CSContext.Current;
            ListItem li = null;

            int pid = context.GetIntFromQueryString("pid",-1);

            if(pid > -1)
            {
                li = filterPost.Items.FindByValue(pid.ToString());
                if(li != null)
                {
                    li.Selected = true;
                
                }
            }

            li = filterBlogPostType.Items.FindByValue(context.GetIntFromQueryString("bpt",(int)(BlogPostType.Comment | BlogPostType.PersonalComment | BlogPostType.Trackback)).ToString());

            if(li != null)
                li.Selected = true;
            

            li = filterPublished.Items.FindByValue(context.GetIntFromQueryString("ip", (int)BlogPostPublishedFilter.All).ToString());
            if(li != null)
                li.Selected = true;
            
        	
        	li = SpamFilter.Items.FindByValue(context.GetIntFromQueryString("spam", 0).ToString());
        	if(li != null)
        		li.Selected = true;
        }

        private void FilterButton_Click(object sender, EventArgs e)
        {
            Response.Redirect(GetFilteredUrl());
            Response.End();
        }

        private string GetFilteredUrl()
        {
            string url  = "{0}?pid={1}&ip={2}&bpt={3}&spam={4}";
            url = string.Format(url,Request.Path,filterPost.SelectedValue,filterPublished.SelectedValue,filterBlogPostType.SelectedValue,SpamFilter.SelectedValue);            
            return url;
        }

        protected string GetActionUrl(string action, object PostID)
        {
            return GetFilteredUrl() + "&action="+ action + "&postids=" + PostID.ToString();
        }

        private void theComments_ItemCreated(object sender, RepeaterItemEventArgs e)
        {
            if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                WeblogPost post = e.Item.DataItem as WeblogPost;
                CommentActionsPopup cap = e.Item.FindControl("actionMenu") as CommentActionsPopup;
                if(post != null && cap != null)
                {
                    cap.PostID = post.PostID;
                    cap.ApproveUrl = GetActionUrl("approve","{0}");
                    cap.ViewUrl = post.ViewPostURL;
                    cap.DeleteUrl = GetActionUrl("delete", "{0}");
                    cap.ModerateUrl = GetActionUrl("moderate","{0}");
                }
                
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -