📄 comments.aspx.cs
字号:
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 + -