📄 commenteditor.aspx.cs
字号:
//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
// Copyright (c) Telligent Systems Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
using System;
using System.Collections;
using System.Web.UI.WebControls;
using CommunityServer.Components;
using CommunityServer.ControlPanel.Controls;
using CommunityServer.ControlPanel.UI;
using CommunityServer.Controls;
using CommunityServer.Galleries.Components;
using CommunityServer.Galleries.Controls;
using CA = ComponentArt.Web.UI;
using ResourceControl = CommunityServer.ControlPanel.Controls.ResourceControl;
using ResourceManager = CommunityServer.ControlPanel.Components.ResourceManager;
using Style = CommunityServer.Controls.Style;
using Content = CommunityServer.Components.Content;
namespace CommunityServer.ControlPanel.Photos
{
/// <summary>
/// Summary description for CommentEditor.
/// </summary>
public class CommentEditor : BaseGalleryPage
{
#region Child Controls
protected Content TaskRegion;
protected MPContainer MPContainer;
protected PanelTabControl PanelTabControl1;
protected LinkButton Save;
protected TextBox ModeratedBy;
protected TextBox Title;
protected Editor Comment;
protected TextBox Notes;
protected TextBox OriginalContent;
protected CheckBox Approved;
protected ResourceControl FeedbackEditor_ModeratedBy;
protected CheckBox PersonalComment;
protected ResourceControl FeedbackEditor_Comment;
protected ResourceControl FeedbackEditor_Notes;
protected ResourceControl FeedbackEditor_OriginalComment;
protected Style ControlPanelStyle;
protected CA.TabStrip CommentEditorTabs;
protected MPContent bcr;
protected GalleryImage Galleryimage1;
private GalleryPost currentPost = null;
#endregion
private void Page_Load(object sender, EventArgs e)
{
int postid = -1;
Head.AddTitle(Components.ResourceManager.GetString("CP_Photos_CommentEdit_Title"), this.Context) ;
if(Request.QueryString["pid"] != null)
{
try
{
postid = Int32.Parse(Request.QueryString["pid"]);
}
catch{}
}
if(postid > 0)
{
CSContext.Current.PostID = postid;
currentPost = GalleryPosts.GetPicture(postid);
// Update the thumbnail
GalleryPost parentPost = GalleryPosts.GetPicture(currentPost.ParentID);
Galleryimage1.GalleryPost = parentPost;
Galleryimage1.PostID = parentPost.PostID;
//Galleryimage1.NavigateUrl = GalleryUrls.Instance().ViewPicture(CurrentGallery.ApplicationKey, parentPost );
Galleryimage1.DataBind();
}
else
{
currentPost = new GalleryPost() ;
}
if ( !Page.IsPostBack )
{
this.DataBind();
Save.Text = Components.ResourceManager.GetString( "FeedbackEditor_Save" );
Comment.EnableHtmlModeEditing = true;
//Personal Comments are not yet implimented in the gallery
//if (PersonalComment != null)
// PersonalComment.Text = ResourceManager.GetString( "FeedbackEditor_PersonalComment" );
if (Approved != null)
Approved.Text = ResourceManager.GetString( "FeedbackEditor_Approved" );
//Readonly in galleries
Approved.Enabled = false;
}
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Save.Click += new EventHandler(this.Save_Click);
this.Load += new EventHandler(this.Page_Load);
}
#endregion
public override void DataBind()
{
base.DataBind ();
CSContext cntx = CSContext.Current;
if(ModeratedBy != null)
ModeratedBy.Text = cntx.User.DisplayName;
if(Title != null)
Title.Text = currentPost.Subject;
if(Comment != null)
Comment.Text = currentPost.Body;
if(Notes != null)
Notes.Text = currentPost.GetExtendedAttribute("Notes");
//Personal Comments are not yet implimented in the gallery
//if(PersonalComment != null)
// PersonalComment.Checked = (currentPost.GalleryPostType == GalleryPostType.PersonalComment);
if(Approved != null)
Approved.Checked = currentPost.IsApproved;
if(OriginalContent != null)
{
// If this is the first time accessing the OriginalContent attribute, set it
string origContent = currentPost.GetExtendedAttribute("OriginalContent");
if (origContent == String.Empty)
{
origContent = currentPost.Body;
cntx.Post = currentPost;
}
OriginalContent.Text = origContent;
}
// Stick the post in CSContext to it's available to the skin file
cntx.Post = currentPost;
}
/// <summary>
/// Provides a hook for custom logic in the skin file to easily save additional data to the post.
/// </summary>
protected void SaveAdditionalContent(GalleryPost post)
{
// If the ExtendedAttribsToSave hashtable exists in HTPPContext,
// loop through each item and add them to the post's Extended Attributes
Hashtable ExtendedAttribsToSave = CSContext.Current.Context.Items["ExtendedAttribsToSave"] as Hashtable;
if(ExtendedAttribsToSave != null)
{
if (ExtendedAttribsToSave != null)
{
foreach (object key in ExtendedAttribsToSave.Keys)
{
post.SetExtendedAttribute(Convert.ToString(key), Convert.ToString(ExtendedAttribsToSave[key]));
}
}
}
}
#region Private Methods
private void SaveContent()
{
// Retrieve post from database to edit
CSContext cntx = CSContext.Current;
currentPost = GalleryPosts.GetPicture(cntx.PostID);
// De-Encode fields that will get re-HTML encoded when saved
currentPost.Subject = Globals.HtmlDecode(currentPost.Subject);
if (currentPost.HasSubmittedUserName)
currentPost.SubmittedUserName = Globals.HtmlDecode(currentPost.SubmittedUserName);
// Update post content
if (Comment != null)
currentPost.Body = Comment.Text;
if (Title != null)
currentPost.Subject = Title.Text;
//Personal Comments are not yet implimented in the gallery
//if (PersonalComment != null)
// currentPost.BlogPostType = PersonalComment.Checked ? BlogPostType.PersonalComment : BlogPostType.Comment;
if (Notes != null)
currentPost.SetExtendedAttribute("Notes", Notes.Text);
if (OriginalContent != null)
currentPost.SetExtendedAttribute("OriginalContent", OriginalContent.Text);
//Readonly in galleries
//if (Approved != null)
// currentPost.IsApproved = Approved.Checked;
currentPost.PostType = PostContentType.HTML;
currentPost.SetExtendedAttribute("ModeratedBy", cntx.User.Username);
// Provide a hook for any child class to easily save stuff
SaveAdditionalContent(currentPost);
GalleryPosts.UpdatePicture(currentPost);
}
#endregion
#region Button Click Handlers
private void Save_Click(object sender, EventArgs e)
{
if(!Page.IsValid)
return;
SaveContent();
Modal.ClosePage(Page);
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -