An End of Week Community Server Riff

Yeah, I know what I said, but transitions take time and I’m weak, unable to resist the urge to blog about the Community Server coding that continues to comprise most of my freelance workday.  An occasional Community Server riff will be the price we bare.  But at least we will bare it together.

This week I began appreciating Community Server 2008.  The week’s tasks included creating thumbnail post displays and a Primary-Secondary Category model with tags.  I’ve done both before in CS2007, but I wanted to take a fresh approach with CS2008.  In CS2007 I wrote a mod that used the post attachment, which worked fine but required the thumbnail to be physically created.  I wanted a more automated process so I visited Eric Duncan’s site and hoped he released the source code for his PostIcon add-on.  YES!  THANK YOU ERIC!  This is a sweet add-on, which generates thumbnails from the post’s first <IMG /> file.  You can set the control to generate the thumbnail dynamically, but the beauty of Eric’s control is that it contains a CSModule on PostPostUpdate that creates the thumbnail JPG for future reference making it extremely fast.  I always thought Eric wrote beautiful code, and his PostIcon source is beautiful stuff.  I had a slight issue with the generated thumbnail url (my CS site is a couple layers deep) and changing one line of code did the job.  That’s the beauty of Open Source and “Source Available” applications like Community Server, of course.  Without the PostIcon source I may still have been able to use it, but would have had to do some hack to make it work in my environment.


In conjunction with the thumbnail mod I wanted to work through how users would handle image creation in general, and encountered the CS2008 Media Content popup.  This is extremely slick!  And from a developer’s perspective, it’s a great base app to customize.

The Primary Category mod this week was interesting as well.  I did this in CS2007, but wanted to do it cleaner this time around.  My CS2008 logic was similar to my CS2007 approach in that a PrimaryCategory bit is stored in a dbvt_post_categories table, with a DBVTCategory object extending PostCategory to hold the IsPrimaryCategory flag.  Here’s the CS2008 Category Admin piece.

This form is an example of CS2008’s move to more AJAX and client-side data handling, which made it interesting for me, since I haven’t got to do much of that.  The form handles the DBVTCategory object (as opposed to PostCategory) passing database updates back to my custom DBVTSqlDataProvider.

A Tags Administration sidebar:  I spent some quality time with this function and am pretty sure there’s no way to unpublish a tag.  That’s pretty lame if I’m correct.  Perhaps someone will point out how to unpublish a tag in CS2008, cause I sure didn’t see it.

And while in the Control Panel, I might as well say that I’m not a fan.  Too much clicking around to get to where you want to go.  For example, in CS2007 I needed 2 clicks to see the Exceptions report.  Now it takes 5 clicks.  Nice.

In my CS2007 implementation of Primary Categories I restricted access to the PostTagEditor and tag creation outside of the Category Administration form.  This enforced a standardized taxonomy, which sounds nice, but in actuality was a shortcut to ensure the enhanced tags were being created properly.  In CS2008 I wanted to support tag handling in all instances so I went with a CSModule on PostPostUpdate.  There is no CategoryCreate event in Community Server, mainly because tags are created in several ways. For one example, they are passed to the cs_weblog_post_update stored proc as XML.  This supports the creation of multiple tags, but it means that a CategoryCreate application event isn’t gonna happen.  My CreateDBVTCategory CSModule on PostPostUpdate simply inserts any new categoryIDs and a default non-PrimaryCategory flag to dbvt_post_categories if they exist.

Next up is to get groovy with Ben Tiedt’s CS2008 Widget architecture to create the sidebar Primary Category “Tag Cloud.”  There’s usually a period of time required to get up to speed with Ben’s models, but once you get them you realize how slick they are.  For instance, when I’m working on non-Community Server apps, what I miss most is Chameleon.

Since this is an impromptu riff on what’s happening in my little Community Server world, let’s see what else is going on.  Ahh, I noticed this week through my “Community Server” RSS feed that afscrome is now on the Telligent Support Team.  This guy might have a funny handle, but he knows Community Server like few others in the world.  Amazing, really. I don’t know what the title means “officially,” as I haven’t seen anything announced about it other than the congratulatory thread Shakes began. I do hope it means that there is remuneration involved.

Speaking of real money, I went to look at what was available in the “Get it Now” area this week at and saw that the pricing of the Professional License was removed.  “Call For Pricing.”  That’s always a good sign, eh?

And on that note I better end this riff before it turns into a full-blown jam session.

Article written by

A long time developer, I was an early adopter of Linux in the mid-90's for a few years until I entered corporate environments and worked with Microsoft technologies like ASP, then .NET. In 2008 I released Sueetie, an Online Community Platform built in .NET. In late 2012 I returned to my Linux roots and locked in on Java development. Much of my work is available on GitHub.