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…

9 thoughts on “Recipe for building a Drupal-powered blogging community website”

  1. Thanks D’Arcy!

    I’ve been working on just this very thing, presently in prelaunch for our community, & have recently upgraded it to Drupal 5.3.
    We’re using Moodle as an LMS, but are in the process of converting from a relatively fragmented course-by-course curriculum to a more integrated, problem-based curriculum – so are wanting to augment the excellent course-support provided in the Moodle platform, with a platform that bores across the curriculum – permitting journaling/blogging, portfolio development, access to multimedia learning objects, permits learner group development & support, &c.

    I might add to your list, to meet the needs of a learning community such as ours, a good aggregator that can create site-wide-accessible as well as organic-group restricted aggregated feed pages. I’m using SimpleFeed, as the built-in Aggregator module seems to break my installation. The Bibliography module also looks promising for our needs. (the Drupal module archives is a bit of a candy box …)

    Thanks for the reference to Anarchy Media Player! I’ll let you know how this works for us.

    Am still waiting for a simple solution to single sign-on for a Drupal/Moodle installation, this would be great to provide a more seamless experience to the user.

    Will Taylor
    National College of Natural Medicine
    Portland, Oregon

  2. D’Arcy,

    This post came at a most excellent time for me, as I’m preparing to move my site into launch. As I’m getting this Ready to Go, for our winter quarter, the question that has come up most clearly, is one of simplicity (the KISS factor) v/s built-in functionality (the candybox factor when reviewing the extensive Drupal modules pages, and all their amazing possibilities).

    And in reference to Gardner Campbell’s Theme Parks and Sandboxes article which you recently linked (thanks, what a great read), it occurs to me that there is something between a Sandbox and a Theme Park – & that’s a big box of Legos (and when it comes to a platform like Drupal, it’s a really Big Box).

    So I’m deliberating … Is it best to leave a site like this a Sandbox, or to develop it into a box of Legos?
    e.g. – re sharing weblinks among users – what are the advantages, one way or the other, from the educational perspective – of creating formal respositories of weblinks which users can contribute to and build up over time – v/s merely permitting users to share a link or two here or there in Blog posts? To creating Bibliography pages where users can assemble Useful References, to merely permitting conversations such as this to be shared in Blog postings? One might argue that by creating things such as Links Repositories and assembled Bibliographies, something of durable value is created, which future users will be able to access, and they will not need to “re-invent the wheel” as such. But wait a minute – what we’ve really done, perhaps, is permitted the early users to create a Theme Park – albeit out of Legos – for the “benefit” of future users, and redirected the attention of future users from the Sandbox functions of the site – which is where the real learning occurs.

    I’ve decided to go Simple, so I’m constructing another site just for myself with all the features built in (just ’cause I can’t keep my hands off of all the toys …).

    I’d love to hear others’ thoughts & experiences.

    Will Taylor
    National College of Natural Medicine
    Portland, Oregon

  3. I, too, am using Drupal now for my next “community” website. I’ll be using most of those modules too, as it turns out. (Got to you site searching to fix some random wp bug, heh)

    I think one of the key benefits to Drupal is that there is an amazingly enormous amount of functionality behind it without ever actually needing to write a single line of code. That, still, blows me away.

    One of the most incredibly powerful tools you’ve left out of this post is CCK. I consider CCK, along with Views, to be absolutely indispensable to a drupal site. To be quite honest, I am hoping that someday CCK and Views are core modules for the actual creation of content types and site pages, but that’s a long ways off (like v7/8 :D).

    As a long time WP user, it’s been pretty staggering working with Drupal so far. One thing, however, that has been a NIGHTMARE compared to working in WP is that themeing in Drupal is pretty much the most difficult time I’ve ever had themeing anything. Sheesh.

  4. Jeff, CCK completely rocks, and I use it for 99% of the sites I build in Drupal, but for a simple community blogging site, it’s a bit overkill. It’d just add complexity (where do I put the text? in the “body” field? or these other ones?) so it’s better to err on the side of simplicity in a case like this. For a site where structured content types can be effectively used (like my department’s site) CCK can’t be beat.

  5. Now what I’m really trying to figure out is if there is something similar that can be done in WordPress using some plugins and changing the settings using the ‘subtle’ theme series. because I know it supports multi-author blogs very well. I say this because while Drupal is a great CMS, its capabilities are more suited for high-end, corporate level users, not lame little bloggers like me 🙂

  6. I was thinking of building a Community site using Joomla, then I considered WordPress and swung back towards Joomla.

    After reading your article, I think I have swayed towrds Drupal.

    Thanks for the article

  7. We had serious debates (that actually took months!) should be go with WordPress or Drupal for our child-related website. Finally, it ended up being Drupal\’s Forum module that tipped the scales for us. Drupal\’s Forum comes right out of the box, it is a part of Drupal\’s core. No need to integrate 2-nd party forum software with your CMS. It does not have all the bells and whistles of mainstream forum scripts, but it does the job for us.

Comments are closed.