This weekend I had the pleasant surprise to see that Kevin Harder of Telligent, had posted that the new Blog Extensions Plug-In was now published to the GCMS marketplace.  Here are some of my experiences with using the new module on this site, which I hope will make it simple for others to add some great features to GraffitiCMS.

So what are the Blog Extensions?

GCMS has the great capability to be extensible via plug-ins, extensions, and widgets.  The plugin architecture allows to add some new functionality for features that site owners may want to add to their site.  The new Blog plug-in uses some of the new events in GCMS to add some features bloggers are going to love.

Included in the Blog Plug-in are:

  • Comments RSS Feed – Now there is a separate RSS feed where readers can subscribe to comments visitors leave on your site.  This is an excellent way to allow readers to keep track of what people are saying about your content, and could drive more people to be involved around your content.  In addition to the main site feed which is normally found at "[your site URL]/feed", the comments feed is now exposed at "[your site URL]/feed/comments"
  • Automated Pings for new content – You can specify several Ping Service URLs, so that when you publish new/updated post content, GCMS will notify that service that new content is available.  The plug-in defaults to use Pingomatic, which is an aggregated service to ping other well known Ping Service URLs such as Technorati, or Newsgator
  • TrackBack/Pingback support – This is most likely my favorite piece of the plug-in, in that it adds some visibility to who is linking to your content.  Trackback URLs allow other people to notify your site that they have cited your post content in their own posted content as an acknowledgement.  The new plug-in exposes a new URL for each post, that another blogger can choose to use as a trackback URL to manually notify your site.  Any such notifications are collected as comments related to your post so you can expose the details about who is tracking back to your content within the post itself.  Pingbacks are another form of linkback notifications which the plugin will automatically attempt to "ping" any link you have included in your post content to establish the trackback connection.   As with received Trackbacks, received Pingbacks from other blogs are collected as comments which you can choose to expose on your site.  These are both great ways for connecting your content with what the consumers of your content posting as reactions, and can build a bigger related picture. GCMS supports automated pingback sending and receiving to make it a simple task for the poster.
  • GeoRSS SupportGeoRSS is a standard for tagging your post content with location information to add location awareness for readers of your content.  GeoRSS data consists of latitude and longitude coordinates that can be plotted on a map to relate to where your content is originating from, or where it’s subject is about.  Essentially this allows for consumers of content to find content related to their location of interest, which makes for some really interesting applications of your content in today’s mash up applications. For example, if you posted content around a great music festival you attended, and added the GeoRSS coordinates, someone could discover your content if they were doing a web search based on the location of that music festival. By enabling the GeoRSS support you can define a default set of coordinates for your post, and it also creates a new custom field for your posts for you to specify coordinates if you want to change it on a per post basis.

With the new features, you will see new events in the GCMS logs related to when a Pingback is sent to another blog, and when a new Pingback is received as a new comment on a post.

How do I get the new plug in?


The Blogging plug-in is included in the new GCMS marketplace, which makes it a breeze to install within your site. Follow these simple steps to add the plug-in:

  1. Logon as an admin level user to your site
  2. Go to the Control Panel
  3. Go to Site Options
  4. Go to Plug-Ins
  5. Click on "Search online Plugins…" which will display the GCMS marketplace
  6. You will see the icon for the plug-in called "Blog Extensions" which you click on to see the details.  Notice that the blog extensions require GraffitiCMS v1.0.1 or higher to already be installed on your site
  7. Click on Install Plugin




That is pretty much it, as all you have to do finish enabling the new plug-in is to Enable the plug in in the Plug-in manager, and choose edit to enable the desired features.


How do I use the features in the new plug in?

Some of the features will be active automatically once you enable the plug in, such as the new comment feed, and the sending and receiving of trackback/pingback requests.  You will need to go back and add any GeoRSS coordinates to your existing content by updating the post and filling in the new custom field with the related coordinates to the content.

How do I ping others content when I post?

If you want to cite a post from another site, all you have to do is use that content’s link within your post.  When you publish your content, it will automatically attempt to ping the urls you referenced to attempt a pingback.  If the site supports trackbacks, a trackback maybe recorded showing your site information, and the first few lines from your post.  This implies you should make sure to make the first few lines of your post engaging, as it may bring more visitors to your site based on what they read in the trackback.  It also helps the site owner get a feel for what kind of sites are linking to their content by looking at the body of the trackback.

How do others ping my content?

Pingbacks are automatic if the other blogging platform supports pinging by interpreting your post URL link.  So by nature of them including your link in their content, their platform can ping your content to create the trackback connection.

Like GraffitiCMS, many other blog platforms can issue and recieve automatic trackbacks from your post URL’s content, but older ones may require a manual trackback entry. If you want to allow others to send manual trackback pings, you will need to expose the new trackback URL for each post so that others can use it to track back to your posted content.   This requires updating the post.view for the theme you are using.  For this site, I added the following lines of code to add a section below the post to expose the trackback URL, but you can use the code on line 5 for your own theme.

   1: <div>
   2:             <a name="trackbacks"></a>
   3: <h3 id="commentsHeader">&#187;  Trackback URL to this Post</h3> 
   5: $macros.FullUrl($macros.Link("~/trackback.ashx"))?id=$post.Id 
   7: </div>

How do I know who pinged my content?

Ping responses from other sites will show up in the information section of the GCMS log. Since received pings are recorded as comments within GCMS, you can expose them in your content by using the $feedbacks collection which contains both comments and trackback comments,  or you can use the new $trackbacks collection which contains just trackback comments.   I chose to separate the regular comments from the trackback automated comments so that I could display them in separate sections.

Here is the code used within this site to show the pingbacks.  Note that it is using CSS elements for my theme, which may differ from yours:

   1: #foreach($trackback in $trackbacks) 
   3: #beforeall
   4:              <h3 class="commentsHeader">&#187; Trackbacks &amp; Pingbacks</h3>
   5:             <ol id="commentlist">
   6: #each 
   8:       <li>
   9:             $trackback.Body
  10:             <div class="commentby">
  11: <a href="#comment-$comment.Id" class="counter" title="Permanent Link to this Comment">#$count</a>
  12:                 <cite><a href="$trackback.WebSite" title="$trackback.Name">$trackback.Name</a> &#8212; $trackback.Published.ToString("MMMM d, yyyy h:mm tt")</cite>
  13:                 #if($isUser)
  14:                     <br />
  15:                     <a href="#trackback-$trackback.Id" title="Permalink to this comment"></a>
  16:                     [<a href="javascript:void(0);" onclick="Comments.deleteComment('$urls.AdminAjax', $trackback.Id,'comment-$trackback.Id','comment-body-$trackback.Id'); return false">Delete Pingback</a>]
  17:                 #end
  18:             </div>
  19: </li>
  20: #afterall
  21: </ol> 
  23: #end

On the $trackback object, the Name property contains the Post Title that tracked back, and the Website property contains the URL of that post, so you can follow it back to the hosted content.

As you might guess the theme (at the time of this post) is a modified version of Kevin’s Gulfcoasting theme since I liked the layout.  Kevin was kind enough to post an updated version of that theme on the GCMS marketplace which contains all the markup used to expose the new Blog plug in features, so I would highly recommend installing that theme as a reference for adding these features to your own site.

Thoughts so far

So far I am very impressed with the new feature set, and the ease of enabling such powerful features.  I am sure I have been a bit of a pest on the GCMS forums as I have been asking questions even before they have had the chance to formally post information around the new plug in.  I see this as another reason that makes GCMS such a good platform, in that it is designed to be agile enough to enable the features you may want, and to make it a simple task in doing so.

Also, every time you update your published content GCMS will attempt to ping any links used in your content.   So once you enable the plug in, you might want to update your previous posts so that it issues a ping to any content you cited.  If a link does not support pinging, you will see a warning logged in the GCMS logs.

I still have some questions around how I can add a trackback URL from another post to my post so that it does send a trackback ping, but hopefully I will be able to update that process on this post soon.

You can also find instructions on using this plug-in at TelliTip 14: Improve your blogging with the Blog Extensions for GraffitiCMS

Update:  If you are interested in the SourceCode for the extension, the project has been posted here:

 If you install the Blog extensions plugin, and would like to try out the trackback functionality, please feel free to link to this post.  You should see the trackback present on this post shortly after you publish your content referencing this post.

Technorati Tags: graffiticms,

 Sites testing the Pingback/Trackback plugin: