David Wiley just blogged about using WPMu as an OCW solution, and one of the issues he is running into is directory structure. What he wants is each department to have its own parent blog, and then child blogs within each department space. For example: http://ocw.byu.edu/math (a department blog) and http://ocw.byu.edu/math/math101 (as a blog within the department blog). I’ve been thinking about this, and Multi-Site Manager won’t work, it would be a clean solution, but as far as I can tell it will only map new domains onto an existing WPMu install, and it won’t allow you to install a series of sites at the sub-directory level. In other words, you can’t map a site http://ocw.by.edu/math or http://ocw.by.edu/physics and then create individual blogs within each of these departmental sites. (Am I wrong? Is there a way around this with multi-site manage plugin?—cause that would certainly be the most elegant solution.)
Now, I got to thinking about another way at this (obviously David and I have been talking about this for a bit 🙂 ), and I think I have come up with a fairly simple solution using the ever powerful syndication bus. So, here is my idea:
You create the departmental sites at http://ocw.byu.edu/math, http://ocw.byu.edu/physics, etc. And you still let people create the course/content blogs at http://ocw.byu.edu/math101 or http://ocw.byu.edu/physics101. Not a solution, right? Well no, not on its own, but if when people created a new OCW blog they could select the department and course from a drop down menu, and automatically create two default categories for the blog being created which all posts were filed under, with this setup you could simply place one sitewide feed into FeedWordPress for each ĂĽber departmental blog. So, to bring all the posts from any individual math course blog into the departmental blog, you would place this feed http://ocw.byu.edu/tags/category/math/feed (this is using the sitewide tag pages plugin) into FeedWordPress on the Math department blog. Now, since every post is not only categorized with the department name (math) but also the course (math101) you can use a simple plugin like Top Level Categories on the departmental site to hide the category part of a WordPress URL. Now, given that during the creation of each course blog it was give two default categories—the department (math) and the course identifier (math101)—after the posts were feed into the departmental blog you would have a unique URL for every post categorized with math101. And, with the Top Level Categories plugin what would have been http://ocw.byu.edu/math/category/math101 would now read http://ocw.byu.edu/math/math101. And there is one way at David’s issue.
Now, given that the site will most likely be consistently themed, you can make the category pages look exactly like a blog, so the difference will be negligible. The real trick is adding default categories upon the creation of each course blog (i.e. math and math101). The benefit of this approach is that it affords you some powerful ways of exposing content on a blog-by-blog basis for departments, but even more important it will keep you from creating a new wpmu install for each department—which would be an administrative nightmare and occlude the possibilities for a sitewide searchable archive (which with one WPMu install you can have with the sitewide tag pages plugin).
So, I think you’d only need to develop one plugin that used a dropdown menu at the point of blog creation to specify the department the blog was for and another that created a default category based on the subdirectory url for that blog, i.e. math101. (Now thinking about that the profile fields in BuddyPress, you may even make this a much simpler hack, not even a plugin.)
2) If you were able to create the above two default categories for each new blog based on department and course number, then you could simplly add the following feed to each department blog: http://ocw.byu.edu/tags/category/math/feed (using sitewide tag pages plugin) and every post in the math category will be fed into the http://ocw.byu.edu/math blog and given that the additional category math101 has been created as a default at signup (and the top-level-cat.php plugin is hiding the category portion of the url) you can find every relevant post for math101 here: http://ocw.byu.edu/math/math101
Genius!, If I do say so myself, it would need a little hack, not at all difficult—and damn it I think it would work. But there may very well be an easier way I am missing, and I know the Drupal folks can think of a million reasons to do it in Drupal, and they may be right. But here is my hack solution. And if you get that working, you can then use Tony Hirst’s WP OpenLearn plugins for WPMu that allow you to time-release feeds, as it were.
I don’t know, what do you think? I know my description is unclear, but does it make any sense? 🙂
Hmmm… one thing you might be able to use is the domain mapping plugin. I haven’t played with the latest version, but doesn’t it let you create new blogs under the newly mapped domains? So if you mapped some sub domains of your blog (something like math.ocw.byu.edu) as a new site, then you should be able to make blogs like math.ocw.byu.edu/math101.
As for you second suggestion, it seems crazy enough to work. As for the plugin you need, I’ve done a hack to automatically add categories (by changing the default ones) but each change had to go into the WPMU source code. Since then I am almost sure I heard of a plugin that does it. I know UBC’s Faculty of Education (the department I did the hack for) have a similar problem and they might have found an elegant solution by now. Catherine Paul (@catherinepaul on Twitter) is the person to contact about any headway that they may have made with a plugin.
Andre,
Yeah, you’re right, creating each department as a subdomain would allow you to use the multi-site manager for mapping each departing as it’s own wpmu within one wpmu—nice work.
And if they can’t do that, let me ask you this—would it be possible to have to categories automatically checked in every post of a blog? I’d like to see your hack, and I have yet to search for a plugin to do this, but I’m sure there is one. The trick would be have those categories established when someone created a new blog, but I have to believe this is just a simple matter of writing some code, but what do I know 🙂 I’ll get in touch with Catherine, and as usual you rule. Will you be in Van Rock in August? I just got my ticket, I’m getting all fired up.
Hey Jim,
Starting with one category at least is simple, we just define it as the default category when creating the blog. I sent you an email with the hack… again I would call it a last resort.. but a resort that will work.
I also came up with another way to do this while I was reading David Wiley’s blog and of course confused matters by posting it on his entry http://opencontent.org/blog/archives/970
And finally, yep I will be in Van Rock and more importantly, I will be at Open Ed.
Andre,
Good news all around, also I like your recommendation on David’s blog for doing all in the department site. You could use role manager to pull that off. But at that point I wonder if the question of why not just use Drupal would emerge. I mean the directory logic and more specific controls and permissions is handled far better in Drupal, but I understand the WordPress interface is a bit friendlier and easier to use. I wonder what’s gotten into me, I usually never recommend Drupal 🙂
Pingback: Question for the Experts: Drupal vs. Wordpress