RFC: Drupal for Campus-Wide Blogging project
I've been working on a plan for campus-wide blogging at USC using Drupal and am hoping to get some feedback, especially on the technical implementation side.
Plan, documentation: https://w3.usc.edu/display/blogs/Home
Clickable partial wires: http://w3.usc.edu/blogs/site/
I'm working from the latest Drupal 4.6.0 release (am keeping a separate svn vendor branch, as I think some core modifications will be unavoidable)
The focus for the blogging functionality are:
* formal and ad-hoc group forming - I think this will be done primarily through the organic groups module
* fine-grained, layered, per-entry privacy control - throwing an interface on top of the by-node privacy
* emergent taxonomies (freetags) - looking at Julian's Folksonomy as well as the new 4.6 Folksonomy module
I'm not sure how roles plays with all this yet, I think since a lot of the control I'm looking at is group-based rather than traditional roles, I may just skip that entirely?
Here are the issues I'm encountering so far that I'm hoping to get suggestions on:
* webserver_auth - I'm kicking the wheels on the webserver_auth module (http://drupal.org/project/webserver_auth) right now (we use Shibboleth for our WebISO/SSO, but it's basically a form of Apache authentication). There seems to be an issue with how it processes the REMOTE_USER though. Can someone point me to docs or explain how the authmap works w/ the external user calls? I don't mind just hacking in there, but if possible, I'd like to do things the 'right way'.
* first-login - is there a first-login module? basically, we need to create a step-by-step process for when users first sign-in: http://w3.usc.edu/blogs/site/Step%201.html
* theming - this is perhaps a biggie. Drupal currently seems to work on a per-user basis for theme selection. We're looking to allow users to choose their own themes for their own blogs, that will apply on a per blog/space basis (and in the future customize w/ coloring, images): http://w3.usc.edu/blogs/site/My%20Blog.html Any suggestions? Are we going to have to write (adapt) our own theme engine?
* friends view - one of the other big pieces is a creating a personal aggregator view (http://w3.usc.edu/blogs/site/My%20Favorites.html), sort of like a mega-livejournal/y!360 friends view. Is there anything out there that does this?
* blog view - I've seen some earlier posts about adapting the 'blog' view to handle all types of content types. We're definitely interested in doing that. Any thoughts beyond the hacks that people have done already?
* aggregation - one of the things we're trying to do is have a graceful way of handling users who already have their own blogs. I'm looking into the idea of using the rss aggregation solely for importing a user's external blogs into nodes for a user (see blog view for displaying all content types by a user)
* major changes to input forms - I don't think there's any other options besides hacking away at the node and filter modules?
* Dashboard - the main page view, once logged in and first-logged in'd, is for a Dashboard - does something like this exist? in the past, I've hacked things directly into the theme templates, but the 'right' way to do it is through a module (and then change the front-page setting from node to dashboard?)
A lot of functionality is there, I think a fair bit of this is wrapping my head around the best way to implement within Drupal. As mentioned, any feedback, suggestions, pointers would be appreciated. (Also pointers to integration points w/ Core roadmap, previous implementations, potential trouble areas).

You can get some nice ideas
You can get some nice ideas from the folks at UCalgary: http://weblogs.ucalgary.ca/ as they use Drupal for a similar project. The site is down at the moment, though.
Drupal does offer individual users the ability to use their own themes- in fact that is how the UCal people use the system. AFAIK, Drupal can also comfortably handle friends view (personal aggregation), aggregation(set up a block that displays RSS feeds from the user's existing site) and blog views.
Sorry I am not an expert enough Drupal user to give you more detailed information.
Will Return
The site is still in beta but will return shortly.
ramdak, thanks for the
ramdak, thanks for the feedback. I've actually been in contact w/ D'arcy about what they're doing @ Calgary.
As far as themes, go, while Drupal offers users the ability to customize their own themes, what I'm looking for is a way to customize on a per-space/per-blog basis, not a per-user basis. D'arcy has tried out the blog_theme.module, which works somewhat, but with caveats, I've gotten some good leads however, on how I might accomplish what we need elsewhere.
I've seen some modules, like mypage.module and the buddylist.module, but none offer the sort of customizable view that we need (the ability to arbitrarily filter between sets of groups and tags). I believe this will need to be a custom module, although the two modules I mentioned look like good places to start...
sections.module
Have you taken a look at sections.module? http://drupal.org/project/sections
sections.module
clydefrog, thanks for the pointer, I'll add it to my list. I will be spending a couple days trying to get comfortable for the hooks I need, but hopefully things will proceed quicker once I get my bearing. Looking at the various similar modules will definitely help.
I agree
I agree. You pretty much typed everything that i wanted to add
I would put emphasis on blog theming, blog view, and privacy!
first-login
Your bullet point about doing stuff on the first login jumped out at me. What I would do is write a module to act on hook_user() when
$op == "login". Do your stuff, then set a variable in$user->datato indicate the user has filled out the form. Check this variable at the beginning and only act if it isn't set.clydefrog, thanks for the
clydefrog, thanks for the advice on writing the firstlogin module. I'm still digging through the API at drupaldocs so the proper hook advice is much appreciated.
It looks like at the minimum, the modules I'll need to write:
* firstlogin.module - to require going through firstlogin sign-in
* watchlist.module - interactive custom views
* miniboard.module - custom context-senstive mini-dashboard
* directory.module - custom views for taxonomies and groups
And I'll need to customize:
* blog.module - to display multiple node types
* node.module - customize/simplify input
* filter.module - simplify input
* theme engine - tweaks for where to show what
Excellent!
I am monitoring activity toward campus-wide blogging for Azusa Pacific University. We don't have any resources or direction applied to it, but the work you have started is great!
Great use of confluence as well. Great tool.
As we are a uPortal institution as well, I wonder if you have any long term plans to provide some type of integration with the portal... perhaps simply making blog rss feeds available etc. You say you use Shib. as your Web SSO/ISO, are then you using its bundled pubcookie for uPortal authN?
SSO
Yes, we're using Shib w/ the Pubcookie authN backend, so that'll be integrated out of the box.
We're looking into the alternatives for inlining aggregation views into the portal using either IFRAMEs or possibly WebProxying (the XSLT channels cache on a global basis). We're also switching to Aggregated Layouts which may give us some additional flexibility from a layout perspective.
Great project !
I hope you can make it true and gives us some feedback about customisation, new modules.
Good luck