📄 createeditblogpost.ascx.cs
字号:
DeleteInk(post);
post.InkID = -1;
}
}
}
post.Subject = PostSubject.Text;
post.Name = postName.Text;
post.Excerpt = postExcerpt.Text;
post.Body = PostBody.Text;
post.PostType = PostContentType.HTML;
post.FormattedBody = null;
post.SetPostMedia(PostMediaType.Video, false);
if(this.EnableVideos)
{
post.VideoDuration = this.VideoDuration.Text;
post.VideoImageUrl = this.VideoImageUrl.Text;
post.VideoUrl = this.VideoUrl.Text;
if (this.VideoHeight.Text.Length > 0)
post.VideoHeight = int.Parse(this.VideoHeight.Text);
if (this.VideoWidth.Text.Length > 0)
post.VideoWidth = int.Parse(this.VideoWidth.Text);
if (post.VideoUrl.Trim().Length > 0)
post.SetPostMedia(PostMediaType.Video, true);
}
PopulateFromYesNo(post);
post.Categories = Tags.SelectedTags;
post.ModerationType = (CommentModerationType) Enum.Parse(typeof (CommentModerationType), ModerationDDL.SelectedValue, false);
post.UserTime = GetDate();
post.PostDate = UserTime.ConvertToServerTime(post.UserTime);
post.FeedbackNotificationType = NotificationType.SelectedValue;
return post;
}
#endregion
private void SaveButton_Click(object sender, EventArgs e)
{
SaveAndReturn(false);
}
private void SaveEditButton_Click(object sender, EventArgs e)
{
if (!Page.IsValid)
return;
WeblogPost post = GetPostFromForm();
int postID = -1;
BlogPostResults result = SavePost(post,out postID);
if (result == BlogPostResults.Success)
{
Response.Redirect(BlogUrls.Instance().PostEditor(this.CurrentWeblog.SectionID,postID));
}
else
{
SetError(result);
}
}
private void PostButton_Click(object sender, EventArgs e)
{
SaveAndReturn(true);
}
private void SaveAndReturn(bool isPublished)
{
if (!Page.IsValid)
return;
WeblogPost post = GetPostFromForm();
post.IsApproved = isPublished;
int postID = -1;
BlogPostResults result = SavePost(post,out postID);
if (result == BlogPostResults.Success)
{
if(post.BlogPostType == BlogPostType.Post)
Response.Redirect("postlist.aspx?tab=postlist§ionid=" + CurrentWeblog.SectionID.ToString());
else
Response.Redirect("articlelist.aspx?tab=articlelist§ionid=" + CurrentWeblog.SectionID.ToString());
}
else
{
SetError(result);
}
}
private void SetError(BlogPostResults result)
{
ResourceControl Message = FindControl("Message") as ResourceControl;
Message.ResourceName = result == BlogPostResults.DuplicationName ? "Weblog_Exception_DuplicatePostName" : "Weblog_Exception_DuplicatePostBody";
ErrorPanel.Visible = true;
}
private BlogPostResults SavePost(WeblogPost post, out int postID)
{
BlogPostResults result = BlogPostResults.Success;
postID = context.PostID;
if (postID > 0)
{
result = WeblogPosts.Update(post);
}
else
{
result = WeblogPosts.Add(post, context.User, out postID);
}
if (result == BlogPostResults.Success)
{
SaveUpdateAttachment(postID, post);
}
return result;
}
private void SaveUpdateAttachment(int postID, WeblogPost post)
{
if(!Globals.IsNullorEmpty(ServeruploadtempID.Value) && ServeruploadtempID.Value != "Existing")
{
WeblogAttachmentSettings fs = WeblogConfiguration.Instance().AttachmentSettings;
Guid g = new Guid(ServeruploadtempID.Value);
PostAttachment pa = PostAttachments.ToggleTemporary(g,this.Serverfriendlyfilename.Value, !fs.EnableDataStoreStorage, postID,this.CurrentWeblog.SectionID,context.User.UserID);
if(fs.EnableFileSystemStorage)
{
if(pa != null && !pa.IsRemote)
fs.SaveAttachmentToDisk(pa,this.CurrentWeblog.SectionID ,postID);
}
}
PostCategories.ExpireCategoryCache(post.SectionID);
}
[AjaxMethod(IncludeControlValuesWithCallBack=false)]
public string PreviewPost(string text)
{
WeblogPost post = new WeblogPost();
post.Body = text;
post.Subject = "";
post.BlogPostType = this.BlogPostType;
post.SectionID = this.CurrentWeblog.SectionID;
WeblogPosts.PreviewFormat(post);
return post.FormattedBody;
}
#region Private Helpers
private void SetDate(DateTime dt)
{
DatePicker.SelectedDate = dt;
int h = dt.Hour;
if(h == 0)
{
h=12;
AMPM.SelectedIndex = 0;
}
else if (h == 12)
{
AMPM.SelectedIndex = 1;
}
else if(h > 12)
{
h = h-12;
AMPM.SelectedIndex = 1;
}
HourPicker.SetSelected(h);
MinutePicker.SetSelected(dt.Minute);
//AMPM.Items.FindByValue(dt.ToString("tt",System.Globalization.CultureInfo.InvariantCulture)).Selected = true;
}
private DateTime GetDate()
{
int minute = MinutePicker.GetSelected;
int hour = HourPicker.GetSelected;
if(AMPM.SelectedValue == "AM")
{
if(hour == 12)
hour = 0;
}
else
{
if(hour != 12)
hour += 12;
}
return new DateTime(DatePicker.SelectedDate.Year,DatePicker.SelectedDate.Month,DatePicker.SelectedDate.Day,hour,minute,0);
}
private void PopulateCategories(BlogPostType bpt)
{
Tags.AvailableTags = PostCategories.GetCategories(this.CurrentWeblog.SectionID, true, true);
}
private bool GetYesNo(string ynID)
{
return (FindControl(ynID) as YesNoRadioButtonList).SelectedValue;
}
private void PopulateFromYesNo(WeblogPost post)
{
bool isPost = this.BlogPostType == BlogPostType.Post;
post.EnableAllOwnerNotification = GetYesNo("ynNotifyAllOwners");
post.IsLocked = !GetYesNo("ynEnableReplies");
//post.IsApproved = GetYesNo("ynPublished");
post.EnableRatings = GetYesNo("ynEnableRatings");
post.EnableTrackBacks = GetYesNo("ynEnableTrackBacks");
post.EnableCrossPosting = GetYesNo("ynEnableCrossPosting");
if (isPost)
{
post.IsAggregated = GetYesNo("ynAggregatePost");
post.IsCommunityAggregated = GetYesNo("ynCommunity");
post.SyndicateExcerpt = GetYesNo("ynSyndicateExcerpt");
}
}
private void EnableYesNo(string ynID, bool Selected, bool enable)
{
YesNoRadioButtonList yn = FindControl(ynID) as YesNoRadioButtonList;
if (yn != null)
{
yn.SelectedValue = Selected;
if (!enable)
FindControl(ynID + "_row").Visible = false;
}
}
private void SetYesNo(BlogPostConfig bc, bool isPublished, bool allowReplies, bool notifyAllOwners, bool rate, bool track, bool hasMultipleOwners, bool crosspost)
{
bool isPost = this.BlogPostType == BlogPostType.Post;
EnableYesNo("ynEnableReplies", allowReplies, true);
EnableYesNo("ynNotifyAllOwners", notifyAllOwners, hasMultipleOwners);
//EnableYesNo("ynPublished", isPublished, true);
EnableYesNo("ynAggregatePost", PostConfigHelper.IsPostConfigSelected(bc, BlogPostConfig.IsAggregated), isPost);
EnableYesNo("ynCommunity", PostConfigHelper.IsPostConfigSelected(bc, BlogPostConfig.IsCommunityAggregated), isPost);
EnableYesNo("ynSyndicateExcerpt", PostConfigHelper.IsPostConfigSelected(bc, BlogPostConfig.SyndicateExcerpt), isPost);
EnableYesNo("ynEnableRatings", rate, true);
EnableYesNo("ynEnableTrackBacks", track, true);
EnableYesNo("ynEnableCrossPosting", crosspost, true);
}
private int CreateInk()
{
InkData newInk = new InkData();
newInk.ApplicationType = ApplicationType.Weblog;
newInk.DateUpdated = DateTime.Now;
newInk.InkString = inkWeb.InkData;
newInk.SectionID = CurrentWeblog.SectionID;
newInk.UserID = context.User.UserID;
return Ink.Add(newInk);
}
private void InitializeComponent()
{
}
private void DeleteInk(WeblogPost post)
{
InkData deletedInk = new InkData();
deletedInk.InkID = post.InkID;
deletedInk.SectionID = CurrentWeblog.SectionID;
Ink.Delete(deletedInk);
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -