private and group blogging with WPMU and WP-Sentry

I just pushed the latest version of the WP-Sentry plugin out to general use on – any site can now enable it to have the ability to create groups and to set the audience for posts and pages. A site admin can create groups and put members of the site into any number of groups – which can also be hierarchically arranged – and then the members can decide who should be allowed to see the posts that they publish.

A workgroup could post updates that only group members can see (so a flood of group meeting notes doesn’t flood a blogsite used in a class of 300 students), or students could write posts on sensitive topics without worrying about it leaking out onto the open internet and into their permanent record.

The plugin is very well designed, and is easy to use. I’m going to be setting up a few sites using it as a means of managing information flow within large classes. One nice feature of the plugin is that it gives the ability to select multiple groups as the audience for a post, and to add individual member access, so you could invite someone in to view content without granting them full group member status. Very nice.


So far, the only suggestion that I could think to make would be some way to provide a list of groups (a group directory page) that links to a page listing content published in a given group – a group home page.

I know there are people for whom the idea of “private” blogging makes them break out in hives. But there are valid cases for providing safe places for students to publish content without worrying about public exposure, and this is a fantastic solution to that problem.

Update: It hit me, shortly after hitting “Publish” on this post, that the WP-Sentry plugin would be a perfect fit for the other plugin I’m playing with – WordPress-Wiki – which allows for wiki editing of pages and posts by members of a WordPress site, but without needing to delve into geeky MediaWiki syntax. It tracks revisions, allows diffing of changes between revisions, and generates the table of contents based on the headings in the content in the same way that MediaWiki does. All the fun of wiki, without the geeky stuff or pain.

WP-Sentry + WordPress-Wiki, when combined, would let people create private (or public, or any variant in between) wikis for workgroups, as part of their regular blog or website publishing workflow. No extra software to learn, no new syntax, no new jargon. Just an extra couple of checkboxes and widgets to twiddle when publishing a post to determine who gets to see the thing, and whether it should be wiki. Very cool stuff, and it could become a powerful tool as part of a course blogsite. Growth

I spent some time this afternoon poking around in the database that runs to see if I could get a better sense of how it’s growing. Turns out, it’s growing MUCH faster than I thought it was (and I thought it was growing pretty darned fast).


It’s still pretty small scale, compared with giants like and, but the growth looks pretty much exponential. I’m glad we’ve got lots of room to scale this puppy. And that campus IT isn’t upset with growing demands on database resources.

Testing WPMU 2.7

I thought it would be prudent to test the plugins, mu-plugins and themes I run at on the latest prerelease snapshot of WordPress Multiuser 2.7, to check for any incompatibilities or strangenesses. I grabbed the .zip archive from the SVN repository, dropped it onto my desktop, and installed a new site. I then grabbed the contents of my mu-plugins and plugins directories, and a subset of the themes that are used. After farting around repairing some file permission errors (caused by FTPing the files from the server to my desktop under a different user than apache runs under…) it looks like everything Just Works™.

It wasn’t an exhaustive test – I didn’t try upgrading the databases for the sites that are running on – all I really needed to know was if the plugins needed some love before thinking of upgrading to 2.7. The good news is that they appear to be fine. Woohoo.

Continue reading “Testing WPMU 2.7”

Is Flutter a CCK for WordPress?

Following a thread through some blog posts this morning – I started at The Reverend’s post about Martha’s documentation of her hacking on WPMU, including a description of a WordPress plugin I hadn’t heard of before – Flutter.

Damn. The Rev’s gonna love this.

One of the things I LOVE about Drupal is the fantastic CCK plugin that lets me create compound structured content types without hacking the database or writing code. Things like Events. Profiles. Pretty much anything that can be stored as database records.

Flutter appears to do most of what I use CCK for. It’s a bit of a hack on top of WordPress’s custom fields design, but whatever. I really don’t care how it works under the hood. It works. And it’s really nice. You can create any number of custom content types, groups that can contain any number of fields – and the fields can be simple text strings, long text chunks, images, audio, dates… Very cool.

So far, the only thing I’ve found really missing from what I use in CCK is the idea of linking nodes (or posts or pages – I haven’t seen a way to select a page or post as a field in another – but that’s not fatal – tags and categories can make up for some of that).

I’ll be playing with Flutter over the next few weeks. I think this might go a LONG way to implementing some of the things I’ve been thinking about wrt WordPress as a course blogging and publishing platform – WITHOUT HAVING TO WRITE CODE.

I love that. Thanks to Martha and Jim for the heads up on Flutter!

Update: doh. Looks like Flutter does some unpleasant things to the main Write Post interface as well – it was wrapping this post to a set width, making it look ickyier than usual. hrm…

yeah. definitely not quite ready for prime time. but still, something worth keeping a close eye on. this could really make some interesting things possible with wordpress…

Update 2: the evil russian spammers seem to REALLY like this post, so I’ve closed comments. Sorry. stupid russian spammers… Redesign

I’ve been meaning to redesign the main site at for awhile now – the Edublogs Clean theme isn’t intended to be dropped in as a stock theme, but as a starting point for hacking something tailor-made. The Edu-Clean theme is available as part of the fantastic Premium WPMUDev subscription – and it certainly helped me get off the ground quickly.

Edu-Clean has bugged me because it hijacks the front page by using home.php, rather than using a page template to render the front page. The annoying part of this technique is that it makes it difficult to list blog posts within that site – so news updates posted on the main blog only show up on the “latest posts” widget, and then disappear from sight when they roll off the bottom of the widget.

And, the Edu-Clean theme, while looking fantastic and being very well designed and polished, is really just the Edublogs theme. So, my straight reuse of the graphics and styles was a bit confusing (I had a couple people mention “oh, that’s edublogs. I know that.” – um. no. it’s not, but it’s using the same theme… confusing…)

So, today I decided to sit down and hack the best parts of Edu-Clean out, and graft them into a copy of the sweet and flexible Carrington theme.

I’ll post a description of what I did, why, and where, but for now it’s basically working. It’s still very much a work in progress (I’m thinking it’s a little busy, but I like the focus on community, content and function rather than marketing). The other nice thing that the use of page templates allows is the WordPress front page setting – I can set the front page to be rendered by a static template, and set the “real” blog to be displayed at another page on the blog – Site News, for example. Much better, IMO.

Here’s the previous design, powered by the elegant Edu-Clean theme:

And the redesign, based on Carrington:

I’m certainly no designer, but I like that the featured content is right up front, rather than marketing info about the service. It’s also much easier to spot the login info (if not logged in) and stuff you can do (list of your blogs, etc…) without having to scroll down.

I’ll be tweaking it, but I think it’s a keeper.

Batch adding users to a WordPress site

I’m working with a faculty member who is using a WordPress with his students this semester as a place for them to publish and reflect as a group. To make things easier for everyone involved, it’s a good idea to batch create user accounts for the students so they don’t have to go through that process (it’s easy, but every step avoided means people are more comfortable and less aggravated with a service).

Do support that batch creation of users, I installed the “Import Users Plugin” which, surprisingly, provides a way to import users into a site. All you need to provide is a username and email address for each student and it will create the account, generate a password, assign the specified user Role, and send an email to the student so they can login. It doesn’t create blogs for each student, but for our current use-case, it’s ideal – adding users to a single blog in a WordPress Multiuser service.

If you need to batch create a bunch of users, first enable the “Dagon Design Import Users” plugin on your blog, then follow these instructions:

The list of users could be pulled from Blackboard or Peoplesoft, but needs to be reformatted into

username|email address

structure so the plugin can make use of it.

learning communities

I spammed over 2200 faculty members with an invitation to vote on topics of interest for formation of Learning Communities, and used the opportunity to sneak in the first public mention of There’s no turning back now. Full steam ahead!

The votes have already started to roll in on the poll, and soon we’ll have a pretty good idea of where to take the project. w00t!

upgraded to wpmu 2.6.1

Donncha pushed the WPMU 2.6.1 update live today, and it’s a required upgrade for security reasons. I just wanted to post that I’ve upgraded to WPMU 2.6.1 and everything appears fine. It took all of 2 minutes to do, too.

Here’s my process:

  1. back stuff up.
  2. login to the server via ssh
  3. download WPMU 2.6.1 into ~/temp, and unzip it.
    cd ~/temp
  4. delete the wp-content directory in the freshly downloaded copy of WPMU 2.6.1 – I do this so I don’t accidentally overwrite any customized themes, or nuke anything in mu-plugins or plugins…
    rm -R wordpress-mu-2.6.1/wp-content
  5. copy the fresh copy of WPMU over top of the existing one in the web directory
    cp -R wordpress-mu-2.6.1/* ~/webdata/
  6. run the WPMU upgrade site script to run any necessary updates (I don’t think there were any database updates, but it’s probably a good idea to run it anyway). This will automatically run the script on each blog installed on that copy of WPMU.
  7. done. test some blogs to make sure stuff is working fine.

WPMU Tweakage for – Part 1

I said I’d share what I’ve done in setting up, and instead of waiting for The Mother of All Blog Posts, I’m going to break it up into a few parts. In Part 1, I’ll talk about some of the mu-plugins I added. Some are really cool, some are just shiny…

Basically, start with a fresh copy of WordPress Multiuser. I’m running 2.6 on Then, add the following bits into the wp-content/mu-plugins directory.


A great plugin that provides an extra tag to embed on pages to list all blogs in a WPMU installation. Good for a blog service directory..


Adds a bar to the top of every page of every blog, similar to, to make it easy to manage a site and log into the service.

WordPress MU Sitewide Tags Pages

Donncha’s awesome plugin to essentially aggregate every blog into a single überblog so archives and tag clouds can be shared. At first, I thought this was a silly way to do it – Drupal could have easily just displayed tag clouds and archives with no pre-aggregation, but it works, and it works very well.

Sitewide Feed

Generates combined feeds for all posts, comments, and pages posted to the WPMU service. Makes it easy to keep up to date on all activity. I’m guessing/hoping this will become essentially useless once the service takes off – I can’t imagine following hundreds of blogs/comments once they become active…

I’ve got a few more miscellaneous mu-plugins installed, but I may be yanking them as they’re really not critical and I want to keep the amount of loaded code down…

Next up: Part 2 – the “main” theme (including home page, sidebar, archives, tag cloud, etc…)

Pimping the WPMU for

I’ve been slowly tweaking the WPMU install that drives – it’s not quite ready for prime time, but it’s darned close.

It’s now got:

  • multiple blogs per user, and multiple users per blog
  • subdomain hosting for each blog (i.e.,
  • domain mapping – want to use your own custom domain? want to point to the blog you’ve got at there’s a setting for that, and then you just have to tell me what domain you want me to tell the webserver to respond to.
  • multilingual admin interface. English. French. Spanish. Chinese. Klingon. Well, I still haven’t found the Klingon.po file for WordPress, but once I do… *shakesfist*
  • over 100 themes, most of which are customizable. Want a photoblog? Got it covered. Newsletter? Done. Research project? Sure thing.
  • 500MB of upload space quota per user. This could be increased if needed.
  • Sitewide tag cloud and archives – want to find out who else is writing about mitochondrial RNA? Just hit the tag…
  • Blog directory listing all blogs in the system (currently, some test blogs, and the UC Dinos Football Blog! WOOHOO!)
  • A handy-dandy blog manager bar at the top of all pages – if you’re logged in, it gives you easy access to anything you want to do. If  you’re not logged in, it gives you an easy place to login from, from any page on the service.
  • Lots of other great WordPress goodies, like podcast serving, editing from your iPhone or iPod Touch, great visual editor for posts (with spel chekker, too!) and collaborative blogs with multiple authors.

But, there are still a few things on my todo list before I consider it fully ready for prime time:

  • Documentation. It helps if there’s some M to RTF. I’ll be linking and borrowing heavily from the great stuff already out there…
  • A UCalgary theme (or themes) for sites that need to look all offishul ‘n junk.
  • better antispam – I can’t use Akismet because I have a budget of $0.00, and SpamKarma2 is EOL. Maybe Mollom? It doesn’t play well with WPMU yet…
  • hmm… actually, that’s pretty much it. once it goes live, it can be tweaked on the fly…

Once it’s been live for a bit, I’ll look at stuff like BuddyPress, integration with Flickr, integration with MediaWiki, and a bunch of other stuff. So far, it’s been fun setting up the service. Now to start rolling this sucker out…