Multi Post User Control

Mar 11, 2009
by:   Tim Stanley

Trailing on the lead from Chris Blankenship and his singlepost user control, I created a multi-post user control.  I’ve never been quite satisfied with the results of the recent posts control and Chris’s control filled in enough gaps for me to pursue this further.

I happen to keep my custom controls in /UserCustom instead of /UserControls.  That way, I know these controls are not Blog Engine.Net controls and won’t need to be merged in the future.

Example

Sidewalk Chalk

Shakespeare may have thought All the world's a stage, but Julian Beever thinks all the world is his canvas. Mr. Beever has some interesting artwork he calls pavement drawings. I don't think he actually digs up the sidewalk (pavement if you live in the UK), but it sure looks like it.

NASA Visible Earth Pictures

NASA has a list of several (over 100,000) visible earth pictures at NASA Images. Many of these images are quite stunning as is this one titled The Blue Marble.

ISP Speed Test

We recently upgraded our ISP business class plan to 5 Mbps down, 1.5 Mbps up. If you have to verify a speed test, the best site I've seen is at Speedtest.net.

Usage from ASP

   1: <%@ Register src="../../UserCustom/MultiPosts.ascx" tagname="MultiPosts" tagprefix="uc7" %>
 
   1: <uc7:MultiPosts ID="MultiPosts1" runat="server" 
   2: CategoryList="photography" 
   3: ContentLength="120" 
   4: Count="3" 
   5: DateFormat="{0:MM/dd/yyyy}" 
   6: ShowAuthor="false" 
   7: ShowContent="true"
   8: ShowDate="false"
   9: ShowDescription="true"
  10: ShowTitle="true" />

Usage in Posts or Pages

Remove the space between the bracke and the word usercontrol.

   1: [ usercontrol: ~/UserCustom/MultiPosts.ascx 
   2: ShowDescription=true; 
   3: Count=3; 
   4: ShowContent=false; 
   5: ShowAuthor=true; 
   6: ShowDate=true; 
   7: ShowTitle=true; 
   8: ContentLength=360; 
   9: CategoryList=photography; 
  10: DateFormat={0:MM/dd/yyyy}; ]

Post.cs Add AuthorAbsoluteLink

In order to reduce some of the clutter in the ASCX control template, I created a new property on the Post object to display the Authors link.  If you want to stay with the mainline BE code base, you’ll need to modify the ASCX to set the asp:Hyperlink for AuthorLink to the code shown below.

   1: public Uri AuthorAbsoluteLink
   2: {
   3:     get
   4:     {
   5:         string authorLink = Utils.RemoveIllegalCharacters(Author);
   6:         authorLink = Utils.RelativeWebRoot + "author/" + HttpContext.Current.Server.UrlEncode(authorLink) + BlogSettings.Instance.FileExtension;
   7:         return Utils.ConvertToAbsolute(authorLink);
   8:     }
   9: }

Download

UserCustom.zip (2.37 kb)

Add to favorites Send to a friend Digg It! DZone It! StumbleUpon Technorati Reddit Del.icio.us NewsVine Furl BlinkList