Recipe for building a Drupal-powered blogging community website

I worked with our Faculty of Education to build a community blogging website for use by after-degree student teachers as part of their personal/professional development, reflection, and collaboration process, as well as to collect materials for use in ePortfolios. They had a set of pretty simple constraints. Because the student teachers would be writing about activities in the K-12 classroom, and likely would be posting media (photos, videos, etc…) they needed to restrict access to the site – there could be no public access to this content. Additionally, they needed to control with a fairly fine granularity which individuals within the community would be able to see specific pieces of content. Because of these constraints, we couldn’t just load up WPMU and set them free, nor could we just point them to WordPress.com or Blogger.com. What to do…

Drupal, of course. It’s got a blogging module available out of the box (it takes a checkbox to enable it). OK. Blogging is taken care of. Members just have to click “Create content” and select “Blog post”. Easy peasey.

Want to allow members of the community to create their own groups? Organic Groups. It’s amazingly flexible, and has an added bonus, in this case, of also enabling access control to content based on group membership (after enabling Organic Groups, go to the settings page for the module and enable “Access Control”). Meaning that the student teachers could create as many private group contexts as they like, and then grant access to their content to any of their groups (and only those groups) if desired. Very powerful stuff.

OK. So now we have a bunch of student teachers blogging their brains out. That’s a lot of content to keep track of. Their professors and practicum teachers need to keep up on all of the relevant posts, and provide feedback in a timely manner. How to provide tools to let individuals track content that they’re allowed to see, that they haven’t seen yet, and that they need to respond to… Views. Drupal’s Views module is killer for this. It’s basically a database query generator, where you can provide a set of criteria to filter content, and create a display on the website. So I created a couple of handy views to help people keep up.

The first view was a simple “all content that has been posted to any of your groups, sorted in reverse chronological order” – this is the “river of news” display, which meant that members didn’t have to go hunting through their various groups (some had over a dozen group memberships) to find new content. It’s all merged, sorted, and presented to them on the front page of the site. This let members keep their fingers on the pulse of the community – they could see at a glance what was being published in all of the groups they cared about. This view also displayed the number of comments (and any new comments were flagged) so people could easily follow up on conversations.

The second view was intended to help members keep up with new content – essentially an “inbox” to be used by professors and teachers. This view was a clone of the first “river of news” view, but only displayed unread items. As a professor viewed a blog post, it would get dropped out of this view for them.

We also used the Book module to create documentation on the site (how to use the site, as well as pages with links to other resources, an FAQ, etc…) and we enabled the Forum module to create a separate non-blog discussion board within the site (but this never really got used much…)

That’s really all there is to it – Drupal just handles the rest, and once it’s configured it takes very little care and feeding.

Here’s the stuff we used (the site was built a year ago on Drupal 4.7, but I’m listing what would be used as of the current Drupal 5.3):

I’ll try to revise this post to clarify stuff as needed, but this is the basic recipe. The best thing to do is just start downloading and playing…

3000km in 2007

I did it. I managed to ride my bike 3000km (so far) in 2007. Last year, I rode about 1500km. I estimated I might ride 2000-2500km this year. But this morning, after dropping Evan off at school, I pulled the bike out and rode along the Bow River Pathway. I’ve now ridden over 3000km this year, and hope to do even more in 2008.

3000km

The year’s riding started while on Maui, when I rode about 60 miles down Haleakala – starting at over 10,000′ and descending to near sea level. As I rode through the year, it’s like a switch got thrown – I wasn’t making myself ride my bike to work, it was just how I got around. I didn’t have to give it much thought. And, because I was riding on my commute, I was making far more time for exercise than I could have otherwise (with a family at home that needs attention as well) – but because I have to spend time getting to and from work, it was really simple to just convert that into some great exercise. I wound up losing almost 20 pounds of flab without really trying, and without paying any attention to what I was eating.

The season’s almost over for the year (never thought I’d be thinking the season wasn’t officially over at the end of November!) and I know I’m going to miss it during the deep winter months. I’ll try to ride earlier in the season – maybe starting in March 2008? All I need is a pair of waterproof riding pants, and I’m good to ride through the spring rainy season…

Captain Obvious works for Dell’s Internet Team

I just went to the Dell website to look something up, and was rewarded by this incredible bit of sleuthery on the part of Dell’s crack team of internet designers:

You are in Canada.

Thank you, Captain Obvious.

The web designers didn’t indicate if my being in Canada somehow altered the behaviour of the website, or if the selections were somehow tuned to my location. Just to brag that they were clever enough to detect where I’m located. It might have been more useful to have the message read something like “You are currently viewing the Canadian Dell Store.” It’s a little less braggish, as opposed to “Dude! We TOTALLY located your IP address! We are teh kool! You’re in CANADA. Dude…”

Simple Tags – Tag Autocompletion in WordPress

When I switched from Drupal to WordPress as the software that runs my blog, one of the things I missed was tag autocompletion while writing posts. Drupal has a great freetext tag field, including an AJAX utility that automatically checks with the server for tags that match what you’ve started to type in the tags field.

And now, WordPress has that too! With the Simple Tags plugin. It has some other features, too (but I haven’t tried them yet) but the tag autocompletion is killer. Why isn’t that included in a stock WP install?

Here’s what the autocompletion offered as I entered the tags for this post:

SimpleTags Autocompletion