用windows live writer寫的

來源:互聯網
上載者:User

關於配置

發布配置

http://你的blog地址/metawebblog.axd

 

#region Usingusing System;using System.Web;using System.Collections.Generic;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;using BlogEngine.Core;#endregionpublic partial class archive : BlogEngine.Core.Web.Controls.BlogBasePage{    /// <summary>    /// Handles the Load event of the Page control.    /// </summary>    /// <param name="sender">The source of the event.</param>    /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>  protected void Page_Load(object sender, EventArgs e)  {    if (!IsPostBack && !IsCallback)    {            CreateMenu();      CreateArchive();      AddTotals();    }    Page.Title = Server.HtmlEncode(Resources.labels.archive);    base.AddMetaTag("description", Resources.labels.archive + " | " + BlogSettings.Instance.Name);  }    /// <summary>    /// Creates the category top menu.    /// </summary>  private void CreateMenu()  {    foreach (Category cat in Category.Categories)    {            AddCategoryToMenu(cat.Title);    }  }    private void AddCategoryToMenu(string title)    {        HtmlAnchor a = new HtmlAnchor();        a.InnerHtml = Server.HtmlEncode(title);        a.HRef = "#" + Utils.RemoveIllegalCharacters(title);        a.Attributes.Add("rel", "directory");        HtmlGenericControl li = new HtmlGenericControl("li");        li.Controls.Add(a);        ulMenu.Controls.Add(li);    }    /// <summary>    /// Sorts the categories.    /// </summary>    /// <param name="categories">The categories.</param>  private SortedDictionary<string, Guid> SortCategories(Dictionary<Guid, string> categories)  {    SortedDictionary<string, Guid> dic = new SortedDictionary<string, Guid>();    foreach (Category cat in Category.Categories)    {      dic.Add(cat.Title, cat.Id);    }    return dic;  }  private void CreateArchive()  {    foreach (Category cat in Category.Categories)    {      string name = cat.Title;            List<Post> list = Post.GetPostsByCategory(cat.Id).FindAll(delegate(Post p) { return p.IsVisible; });            HtmlGenericControl h2 = CreateRowHeader(cat.Id, name, list.Count);      phArchive.Controls.Add(h2);      HtmlTable table = CreateTable(name);      foreach (Post post in list)      {                CreateTableRow(table, post);      }      phArchive.Controls.Add(table);    }        List<Post> noCatList = Post.Posts.FindAll(delegate(Post p) { return p.Categories.Count == 0; });        if (noCatList.Count > 0)        {            string name = Resources.labels.uncategorized;            HtmlGenericControl h2 = CreateRowHeader(Guid.NewGuid(), name, noCatList.Count);            phArchive.Controls.Add(h2);            HtmlTable table = CreateTable(name);            foreach (Post post in noCatList)            {                CreateTableRow(table, post);            }            phArchive.Controls.Add(table);            AddCategoryToMenu(name);        }  }    private static HtmlGenericControl CreateRowHeader(Guid id, string name, int count)    {        HtmlAnchor feed = new HtmlAnchor();        feed.HRef = Utils.RelativeWebRoot + "category/syndication.axd?category=" + id.ToString();        HtmlImage img = new HtmlImage();        img.Src = Utils.RelativeWebRoot + "pics/rssbutton.gif";        img.Alt = "RSS";        feed.Controls.Add(img);        HtmlGenericControl h2 = new HtmlGenericControl("h2");        h2.Attributes["id"] = Utils.RemoveIllegalCharacters(name);        h2.Controls.Add(feed);        Control header = new LiteralControl(name + " (" + count + ")");        h2.Controls.Add(header);        return h2;    }    private static void CreateTableRow(HtmlTable table, Post post)    {        HtmlTableRow row = new HtmlTableRow();        HtmlTableCell date = new HtmlTableCell();        date.InnerHtml = post.DateCreated.ToString("yyyy-MM-dd");        date.Attributes.Add("class", "date");        row.Cells.Add(date);        HtmlTableCell title = new HtmlTableCell();        title.InnerHtml = string.Format("<a href=\"{0}\">{1}</a>", post.RelativeLink, post.Title);        title.Attributes.Add("class", "title");        row.Cells.Add(title);        if (BlogSettings.Instance.IsCommentsEnabled)        {            HtmlTableCell comments = new HtmlTableCell();            comments.InnerHtml = post.ApprovedComments.Count.ToString();            comments.Attributes.Add("class", "comments");            row.Cells.Add(comments);        }        if (BlogSettings.Instance.EnableRating)        {            HtmlTableCell rating = new HtmlTableCell();            rating.InnerHtml = post.Raters == 0 ? "None" : Math.Round(post.Rating, 1).ToString();            rating.Attributes.Add("class", "rating");            row.Cells.Add(rating);        }        table.Rows.Add(row);    }  private HtmlTable CreateTable(string name)  {    HtmlTable table = new HtmlTable();    table.Attributes.Add("summary", name);    HtmlTableRow header = new HtmlTableRow();    HtmlTableCell date = new HtmlTableCell("th");    date.InnerHtml = base.Translate("date");    header.Cells.Add(date);    HtmlTableCell title = new HtmlTableCell("th");    title.InnerHtml = base.Translate("title");    header.Cells.Add(title);    if (BlogSettings.Instance.IsCommentsEnabled)    {      HtmlTableCell comments = new HtmlTableCell("th");      comments.InnerHtml = base.Translate("comments");      comments.Attributes.Add("class", "comments");      header.Cells.Add(comments);    }    if (BlogSettings.Instance.EnableRating)    {      HtmlTableCell rating = new HtmlTableCell("th");      rating.InnerHtml = base.Translate("rating");      rating.Attributes.Add("class", "rating");      header.Cells.Add(rating);    }    table.Rows.Add(header);    return table;  }  private void AddTotals()  {    int comments = 0;    int raters = 0;    foreach (Post post in Post.Posts)    {      comments += post.ApprovedComments.Count;      raters += post.Raters;    }    ltPosts.Text = Post.Posts.Count + " " + Resources.labels.posts.ToLowerInvariant();    if (BlogSettings.Instance.IsCommentsEnabled)      ltComments.Text = comments + " " + Resources.labels.comments.ToLowerInvariant();    if (BlogSettings.Instance.EnableRating)      ltRaters.Text = raters + " " + Resources.labels.raters.ToLowerInvariant();  }}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.