Written in windows live writer

Source: Internet
Author: User
Tags blogengine

Configuration

Publish Configuration

Http: // your blog address/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();  }}

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

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.