settings.aspx.cs
来自「个人博客系统」· CS 代码 · 共 272 行
CS
272 行
#region Using
using System;
using System.IO;
using System.Net.Mail;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Globalization;
using BlogEngine.Core;
#endregion
public partial class admin_Pages_configuration : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindThemes();
BindCultures();
BindSettings();
}
Page.MaintainScrollPositionOnPostBack = true;
Page.Title = Resources.labels.settings;
btnSave.Click += new EventHandler(btnSave_Click);
btnSaveTop.Click += new EventHandler(btnSave_Click);
btnTestSmtp.Click += new EventHandler(btnTestSmtp_Click);
btnSaveTop.Text = Resources.labels.saveSettings;
btnSave.Text = btnSaveTop.Text;
}
private void btnTestSmtp_Click(object sender, EventArgs e)
{
try
{
MailMessage mail = new MailMessage();
mail.From = new MailAddress(txtEmail.Text, txtName.Text);
mail.To.Add(mail.From);
mail.Subject = "Test mail from " + txtName.Text;
mail.Body = "Success";
SmtpClient smtp = new SmtpClient(txtSmtpServer.Text);
smtp.Credentials = new System.Net.NetworkCredential(txtSmtpUsername.Text, txtSmtpPassword.Text);
smtp.EnableSsl = cbEnableSsl.Checked;
smtp.Port = int.Parse(txtSmtpServerPort.Text, CultureInfo.InvariantCulture);
smtp.Send(mail);
lbSmtpStatus.Text = "Test successfull";
lbSmtpStatus.Style.Add(HtmlTextWriterStyle.Color, "green");
}
catch
{
lbSmtpStatus.Text = "Could not connect";
lbSmtpStatus.Style.Add(HtmlTextWriterStyle.Color, "red");
}
}
private void btnSave_Click(object sender, EventArgs e)
{
//-----------------------------------------------------------------------
// Set Basic settings
//-----------------------------------------------------------------------
BlogSettings.Instance.Name = txtName.Text;
BlogSettings.Instance.Description = txtDescription.Text;
BlogSettings.Instance.PostsPerPage = int.Parse(txtPostsPerPage.Text);
BlogSettings.Instance.Theme = ddlTheme.SelectedValue;
BlogSettings.Instance.EnableRelatedPosts = cbShowRelatedPosts.Checked;
BlogSettings.Instance.EnableRating = cbEnableRating.Checked;
BlogSettings.Instance.ShowDescriptionInPostList = cbShowDescriptionInPostList.Checked;
BlogSettings.Instance.TimeStampPostLinks = cbTimeStampPostLinks.Checked;
BlogSettings.Instance.Culture = ddlCulture.SelectedValue;
BlogSettings.Instance.Timezone = double.Parse(txtTimeZone.Text, CultureInfo.InvariantCulture);
//-----------------------------------------------------------------------
// Set Email settings
//-----------------------------------------------------------------------
BlogSettings.Instance.Email = txtEmail.Text;
BlogSettings.Instance.SmtpServer = txtSmtpServer.Text;
BlogSettings.Instance.SmtpServerPort = int.Parse(txtSmtpServerPort.Text);
BlogSettings.Instance.SmtpUsername = txtSmtpUsername.Text;
BlogSettings.Instance.SmtpPassword = txtSmtpPassword.Text;
BlogSettings.Instance.SendMailOnComment = cbComments.Checked;
BlogSettings.Instance.EnableSsl = cbEnableSsl.Checked;
//-----------------------------------------------------------------------
// Set Comments settings
//-----------------------------------------------------------------------
BlogSettings.Instance.IsCommentsEnabled = cbEnableComments.Checked;
BlogSettings.Instance.EnableCountryInComments = cbEnableCountryInComments.Checked;
BlogSettings.Instance.IsCoCommentEnabled = cbEnableCoComment.Checked;
BlogSettings.Instance.ShowLivePreview = cbShowLivePreview.Checked;
BlogSettings.Instance.DaysCommentsAreEnabled = int.Parse(ddlCloseComments.SelectedValue);
BlogSettings.Instance.EnableCommentsModeration = cbEnableCommentsModeration.Checked;
BlogSettings.Instance.Avatar = rblAvatar.SelectedValue;
//-----------------------------------------------------------------------
// Set Advanced settings
//-----------------------------------------------------------------------
BlogSettings.Instance.EnableHttpCompression = cbEnableCompression.Checked;
BlogSettings.Instance.RemoveWhitespaceInStyleSheets = cbRemoveWhitespaceInStyleSheets.Checked;
BlogSettings.Instance.EnableOpenSearch = cbEnableOpenSearch.Checked;
BlogSettings.Instance.HandleWwwSubdomain = rblWwwSubdomain.SelectedItem.Value;
//-----------------------------------------------------------------------
// Set Syndication settings
//-----------------------------------------------------------------------
BlogSettings.Instance.SyndicationFormat = ddlSyndicationFormat.SelectedValue;
BlogSettings.Instance.PostsPerFeed = int.Parse(txtPostsPerFeed.Text, CultureInfo.InvariantCulture);
BlogSettings.Instance.AuthorName = txtDublinCoreCreator.Text;
BlogSettings.Instance.Language = txtDublinCoreLanguage.Text;
float latitude;
if (Single.TryParse(txtGeocodingLatitude.Text, out latitude))
{
BlogSettings.Instance.GeocodingLatitude = latitude;
}
else
{
BlogSettings.Instance.GeocodingLatitude = Single.MinValue;
}
float longitude;
if (Single.TryParse(txtGeocodingLongitude.Text, out longitude))
{
BlogSettings.Instance.GeocodingLongitude = longitude;
}
else
{
BlogSettings.Instance.GeocodingLongitude = Single.MinValue;
}
BlogSettings.Instance.Endorsement = txtBlogChannelBLink.Text;
if (txtAlternateFeedUrl.Text.Trim().Length > 0 && !txtAlternateFeedUrl.Text.Contains("://"))
txtAlternateFeedUrl.Text = "http://" + txtAlternateFeedUrl.Text;
BlogSettings.Instance.AlternateFeedUrl = txtAlternateFeedUrl.Text;
//-----------------------------------------------------------------------
// HTML header section
//-----------------------------------------------------------------------
BlogSettings.Instance.HtmlHeader = txtHtmlHeader.Text;
//-----------------------------------------------------------------------
// Visitor tracking settings
//-----------------------------------------------------------------------
BlogSettings.Instance.TrackingScript = txtTrackingScript.Text;
//-----------------------------------------------------------------------
// Persist settings
//-----------------------------------------------------------------------
BlogSettings.Instance.Save();
Response.Redirect(Request.RawUrl, true);
}
private void BindSettings()
{
//-----------------------------------------------------------------------
// Bind Basic settings
//-----------------------------------------------------------------------
txtName.Text = BlogSettings.Instance.Name;
txtDescription.Text = BlogSettings.Instance.Description;
txtPostsPerPage.Text = BlogSettings.Instance.PostsPerPage.ToString();
cbShowRelatedPosts.Checked = BlogSettings.Instance.EnableRelatedPosts;
ddlTheme.SelectedValue = BlogSettings.Instance.Theme;
cbEnableRating.Checked = BlogSettings.Instance.EnableRating;
cbShowDescriptionInPostList.Checked = BlogSettings.Instance.ShowDescriptionInPostList;
cbTimeStampPostLinks.Checked = BlogSettings.Instance.TimeStampPostLinks;
ddlCulture.SelectedValue = BlogSettings.Instance.Culture;
txtTimeZone.Text = BlogSettings.Instance.Timezone.ToString();
//-----------------------------------------------------------------------
// Bind Comments settings
//-----------------------------------------------------------------------
cbEnableComments.Checked = BlogSettings.Instance.IsCommentsEnabled;
cbEnableCountryInComments.Checked = BlogSettings.Instance.EnableCountryInComments;
cbEnableCoComment.Checked = BlogSettings.Instance.IsCoCommentEnabled;
cbShowLivePreview.Checked = BlogSettings.Instance.ShowLivePreview;
ddlCloseComments.SelectedValue = BlogSettings.Instance.DaysCommentsAreEnabled.ToString();
cbEnableCommentsModeration.Checked = BlogSettings.Instance.EnableCommentsModeration;
rblAvatar.SelectedValue = BlogSettings.Instance.Avatar;
//-----------------------------------------------------------------------
// Bind Email settings
//-----------------------------------------------------------------------
txtEmail.Text = BlogSettings.Instance.Email;
txtSmtpServer.Text = BlogSettings.Instance.SmtpServer;
txtSmtpServerPort.Text = BlogSettings.Instance.SmtpServerPort.ToString();
txtSmtpUsername.Text = BlogSettings.Instance.SmtpUsername;
txtSmtpPassword.Text = BlogSettings.Instance.SmtpPassword;
cbComments.Checked = BlogSettings.Instance.SendMailOnComment;
cbEnableSsl.Checked = BlogSettings.Instance.EnableSsl;
//-----------------------------------------------------------------------
// Bind Advanced settings
//-----------------------------------------------------------------------
cbEnableCompression.Checked = BlogSettings.Instance.EnableHttpCompression;
cbRemoveWhitespaceInStyleSheets.Checked = BlogSettings.Instance.RemoveWhitespaceInStyleSheets;
cbEnableOpenSearch.Checked = BlogSettings.Instance.EnableOpenSearch;
rblWwwSubdomain.SelectedValue = BlogSettings.Instance.HandleWwwSubdomain;
//-----------------------------------------------------------------------
// Bind Syndication settings
//-----------------------------------------------------------------------
ddlSyndicationFormat.SelectedValue = BlogSettings.Instance.SyndicationFormat;
txtPostsPerFeed.Text = BlogSettings.Instance.PostsPerFeed.ToString();
txtDublinCoreCreator.Text = BlogSettings.Instance.AuthorName;
txtDublinCoreLanguage.Text = BlogSettings.Instance.Language;
txtGeocodingLatitude.Text = BlogSettings.Instance.GeocodingLatitude != Single.MinValue ? BlogSettings.Instance.GeocodingLatitude.ToString() : String.Empty;
txtGeocodingLongitude.Text = BlogSettings.Instance.GeocodingLongitude != Single.MinValue ? BlogSettings.Instance.GeocodingLongitude.ToString() : String.Empty;
txtBlogChannelBLink.Text = BlogSettings.Instance.Endorsement;
txtAlternateFeedUrl.Text = BlogSettings.Instance.AlternateFeedUrl;
//-----------------------------------------------------------------------
// HTML header section
//-----------------------------------------------------------------------
txtHtmlHeader.Text = BlogSettings.Instance.HtmlHeader;
//-----------------------------------------------------------------------
// Visitor tracking settings
//-----------------------------------------------------------------------
txtTrackingScript.Text = BlogSettings.Instance.TrackingScript;
}
private void BindThemes()
{
string path = Server.MapPath("~/themes/");
foreach (string dic in Directory.GetDirectories(path))
{
int index = dic.LastIndexOf("\\") + 1;
ddlTheme.Items.Add(dic.Substring(index));
}
}
private void BindCultures()
{
if (File.Exists(Path.Combine(HttpRuntime.AppDomainAppPath, "PrecompiledApp.config")))
{
string precompiledDir = HttpRuntime.BinDirectory;
string[] translations = Directory.GetFiles(precompiledDir, "App_GlobalResources.resources.dll", SearchOption.AllDirectories);
foreach (string translation in translations)
{
string resourceDir = Path.GetDirectoryName(translation).Remove(0, precompiledDir.Length);
if (!String.IsNullOrEmpty(resourceDir))
{
System.Globalization.CultureInfo info = System.Globalization.CultureInfo.GetCultureInfoByIetfLanguageTag(resourceDir);
ddlCulture.Items.Add(new ListItem(info.NativeName, resourceDir));
}
}
}
else
{
string path = Server.MapPath("~/App_GlobalResources/");
foreach (string file in Directory.GetFiles(path))
{
int index = file.LastIndexOf("\\") + 1;
string filename = file.Substring(index);
if (filename != "labels.resx")
{
filename = filename.Replace("labels.", string.Empty).Replace(".resx", string.Empty);
System.Globalization.CultureInfo info = System.Globalization.CultureInfo.GetCultureInfoByIetfLanguageTag(filename);
ddlCulture.Items.Add(new ListItem(info.NativeName, filename));
}
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?