⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 head.cs

📁 这是一个简单的论坛程序源码
💻 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 + -