WordPress, draft/private pages, and the parent hierarchy structure

pageshierarchyI’m working with a class of 250+ geology undergrads, split up into 53 groups. They’re using a WordPress site to publish online presentations as the product of a semester-long group project. I’m using the great WP-Sentry plugin to let them collaboratively author the pages without worrying about other students in the class being able to edit their work (I know – but it makes them more comfortable so it’s a good thing to add).

The premise is this – I created a Page called, creatively enough, “Winter 2009” – and each of the groups is to create a page (or set of pages) and add them to the site – and selecting “Winter 2009” as the parent page for the main page of their presentation. They are free to create as many other pages as they like, and can set those to use their first page as the parent, thereby generating a table of contents.

Works great. Except that the WP-Sentry plugin hijacks the “Private” state of pages, and the tree of Pages available in the Parent selector is based on “Published” pages.

Conflict. Confusion. Frustration.

The students could either collaborate on the pages, or organize them in the tree structure.

Of course they could create the pages and add them to the tree structure and THEN enable the WP-Sentry-managed group editing controls, but YOU try explaining that process to 250 undergrads, all stressed out about building web pages as part of a geology course.

So… I dug into the code to see what was yanking “Private” pages from the Parent list. Turns out, it’s in wp-includes/post.php, waaaay down on line 2618 (as of WPMU 2.7). All I did was remove the " AND post_status = 'publish'" bit, and it now appears to be listing all pages.

I’m quite sure I borked something else, but for now I’m leaving the Parent list wide open until the students are done publishing their presentations.

Update: Unintended consequence #242: Looks like with the tweak, Private pages show up where they’re not expected. I’m disabling the tweak for now until I can find a better way (if that’s even possible).

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 UCalgaryBlogs.ca – 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.