📄 head.cs
字号:
using System;
using System.Collections;
using System.Collections.Specialized;
using System.Web;
using System.Web.UI;
namespace NetFocus.Web.Applications.Forum
{
[PersistChildren(true), ParseChildren(false)]
public class Head : Control
{
#region Static Keys
//private static readonly string metaFormat = "<meta name=\"{0}\" content=\"{1}\" />";
//private static readonly string titleKey = "NetFocus.Web.Core.Title.Value";
//private static readonly string metaKey = "NetFocus.Web.Core.MetaTags";
//private static readonly string autoDiscoveryKey = "NetFocus.Web.Core.AutoDiscovery";
//private static readonly string autoDiscoveryLink = "<link rel=\"alternate\" type=\"application/{0}+xml\" title=\"{1}\" href=\"{2}\" />";
//private static readonly string linkFormat = "<link rel=\"{0}\" href=\"{1}\" />";
//private static readonly string linkKey = "NetFocus.Web.Core.LinkTags";
private static readonly string rawContentKey = "NetFocus.Web.Core.RawHeaderContent";
#endregion
public Head()
{
}
protected override void Render(HtmlTextWriter writer)
{
writer.WriteLine("");
writer.WriteLine("<head>");
//SiteSettings settings = CSContext.Current.SiteSettings;
//RenderTitle(settings, writer);
//RenderMetaTags(settings, writer);
//RenderLinkTags(settings, writer);
//RenderStyleSheets(writer);
//RenderFavicon(writer);
//RenderAutoDiscoverySyndication(writer);
base.Render(writer);
//RenderAdditionHealder(settings,writer);
RenderRawContent(writer);
writer.WriteLine("</head>");
}
//protected virtual void RenderFavicon(HtmlTextWriter writer)
//{
// writer.WriteLine("<link rel=\"shortcut icon\" type=\"image/ico\" href=\"{0}\" />", Globals.GetSiteUrls().Favicon);
//}
#region Render Methods
//protected virtual void RenderAdditionHealder(SiteSettings settings, HtmlTextWriter writer)
//{
// if(!Globals.IsNullorEmpty(settings.RawAdditionalHeader))
// {
// writer.WriteLine(settings.RawAdditionalHeader);
// }
//}
//protected virtual void RenderAutoDiscoverySyndication(HtmlTextWriter writer)
//{
// ArrayList autoDiscovery = Context.Items[autoDiscoveryKey] as ArrayList;
// if(autoDiscovery != null && autoDiscovery.Count > 0)
// {
// foreach(string item in autoDiscovery)
// {
// writer.WriteLine(item);
// }
// }
//}
protected virtual void RenderStyleSheets(HtmlTextWriter writer)
{
//RenderStyleSheets(writer, StyleRelativePosition.First);
//RenderStyleSheets(writer, StyleRelativePosition.Unspecified);
//RenderStyleSheets(writer, StyleRelativePosition.Last);
}
//protected virtual void RenderMetaTags(SiteSettings settings, HtmlTextWriter writer)
//{
// NameValueCollection metaTags = Context.Items[metaKey] as NameValueCollection;
// if(metaTags == null)
// metaTags = new NameValueCollection();
// if(Globals.IsNullorEmpty(metaTags["description"]) && !Globals.IsNullorEmpty(settings.SearchMetaDescription))
// {
// metaTags["description"] = settings.SearchMetaDescription;
// }
// if(Globals.IsNullorEmpty(metaTags["keywords"]) && !Globals.IsNullorEmpty(settings.SearchMetaKeywords))
// {
// metaTags["keywords"] = settings.SearchMetaKeywords;
// }
// //metaTags["GENERATOR"] = SiteStatistics.CommunityServerVersionVersionInfo;
// foreach(string key in metaTags.Keys)
// {
// writer.WriteLine(metaFormat,key, metaTags[key]);
// }
//}
//protected virtual void RenderLinkTags(SiteSettings settings, HtmlTextWriter writer)
//{
// NameValueCollection linkTags = Context.Items[linkKey] as NameValueCollection;
// if(linkTags == null)
// linkTags = new NameValueCollection();
// foreach(string key in linkTags.Keys)
// {
// writer.WriteLine(linkFormat,key, linkTags[key]);
// }
//}
//protected virtual void RenderTitle(SiteSettings settings, HtmlTextWriter writer)
//{
// string title = Context.Items[titleKey] as string;
// if(Globals.IsNullorEmpty(title))
// title = settings.SiteName;
// writer.WriteLine("<title>{0}</title>",title);
//}
protected virtual void RenderRawContent(HtmlTextWriter writer)
{
ArrayList rawContent = Context.Items[rawContentKey] as ArrayList;
if(rawContent == null)
rawContent = new ArrayList();
foreach(string item in rawContent)
{
writer.WriteLine(item);
}
}
#endregion
//#region MetaTags
///// <summary>
///// Adds the description meta tag.
///// </summary>
//public static void AddMetaDescription(string value, HttpContext context)
//{
// AddMetaTag("description",value, context);
//}
///// <summary>
///// Adds the keywork meta tag
///// </summary>
//public static void AddMetaKeywords(string value, HttpContext context)
//{
// AddMetaTag("keywords",value, context);
//}
///// <summary>
///// Adds a new meta tag key and value
///// </summary>
//public static void AddMetaTag(string key, string value, HttpContext context)
//{
// if(!Globals.IsNullorEmpty(key) && !Globals.IsNullorEmpty(value))
// {
// NameValueCollection mc = context.Items[metaKey] as NameValueCollection;
// if(mc == null)
// {
// mc = new NameValueCollection();
// context.Items.Add(metaKey, mc);
// }
// mc[key] = value;
// }
//}
//#endregion
//#region Title
//public static void AddTitle(string title, HttpContext context)
//{
// context.Items[titleKey] = title;
//}
//public static void AddSiteNameTitle(string title, HttpContext context)
//{
// AddTitle(string.Format(ResourceManager.GetString("title_format"),CSContext.Current.SiteSettings.SiteName,title),context );
//}
//#endregion
//#region Style
///// <summary>
///// Adds a style to a Queue collection. Style items are always rendered first in first out
///// Although some some control can be offered using StyleRelativePosition
///// </summary>
///// <param name="url">Fully qualified url to style sheet</param>
///// <param name="media"></param>
///// <param name="context"></param>
////public static void AddStyle(string url, string media, HttpContext context)
////{
//// AddStyle(url, media, context, StyleRelativePosition.Unspecified);
////}
////public static void AddStyle(string url, string media, HttpContext context, StyleRelativePosition position)
////{
//// Queue styleQueue = context.Items[styleKey] as Queue;
//// if(styleQueue == null)
//// {
//// styleQueue = new Queue();
//// context.Items[styleKey] = styleQueue;
//// }
//// styleQueue.Enqueue(new StyleQueueItem(string.Format(styleFormat,url,media), position));
////}
//#endregion
//#region Syndication AutoDiscovery
///// <summary>
///// Adds a RSS 2.0 autodiscoverable link to the header
///// </summary>
//public static void AddRssAutoDiscovery(string title, string url, HttpContext context)
//{
// SetAutoDiscoverty(title + " (RSS 2.0)", url, context, "rss");
//}
///// <summary>
///// Adds an Atom 1.0 autodiscoverale link to the header
///// </summary>
//public static void AddAtomDiscovery(string title, string url, HttpContext context)
//{
// SetAutoDiscoverty(title + " (Atom 1.0)", url, context, "atom");
//}
//private static void SetAutoDiscoverty(string title, string url, HttpContext context, string autoType)
//{
// ArrayList mc = context.Items[autoDiscoveryKey] as ArrayList;
// if(mc == null)
// {
// mc = new ArrayList();
// context.Items.Add(autoDiscoveryKey, mc);
// }
// if(!mc.Contains(string.Format(autoDiscoveryLink,autoType,title,url)))
// mc.Add(string.Format(autoDiscoveryLink,autoType,title,url));
//}
//#endregion
//#region Link Tags
///// <summary>
///// Adds a new link tag rel and href
///// </summary>
//public static void AddLinkTag(string rel, string href, HttpContext context)
//{
// if(!Globals.IsNullorEmpty(rel) && !Globals.IsNullorEmpty(href))
// {
// NameValueCollection lc = context.Items[linkKey] as NameValueCollection;
// if(lc == null)
// {
// lc = new NameValueCollection();
// context.Items.Add(linkKey, lc);
// }
// lc[rel] = href;
// }
//}
//#endregion
//#region Raw Content
///// <summary>
///// Adds raw content to the HTML Header, such as script blocks or custom tags
///// </summary>
//public static void AddRawContent(string content, HttpContext context)
//{
// if (!Globals.IsNullorEmpty(content))
// {
// ArrayList mc = context.Items[rawContentKey] as ArrayList;
// if(mc == null)
// {
// mc = new ArrayList();
// context.Items.Add(rawContentKey, mc);
// }
// mc.Add(content);
// }
//}
//#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -