'Today at Brown' and 'Media Relations' websites released for Brown University

The websites Today at Brown and Media Relations, developed in Drupal, have been released and live for a few months now. Media Relations was released at the beginning of this last semester, while Today at Brown was released within the past month.

The two websites were developed in tandem, both having the same core functionality. They were originally going to be a multi-site set up, sharing stories amongst each other, but it was eventually decided that the two would ultimately diverge over time and it would be best to keep them separate in the first place to allow their own separate organic growth.

User Roles and Permissions

The Public Affairs office was open ready and willing to use a content management system to manage their content, so setting up roles and permissions would be important. The entire office, the editor and all writers, would be using the new system to compose, store and publish press releases.

I have several roles to manage various permissions, keeping in mind that one user can have several roles.

  • Writer: Create press releases and edit their own, unpublished press releases. They can also view unpublished press releases of other writers.
  • Editor: Has all permissions of a writer, while also being able to publish and unpublish a press release. They can also manage other content on the site, such as the home page, informational pages and staff member listings.
  • User Admin: Add and block users and modify any user’s roles.
  • Site Admin: Any and all permissions that can be safely performed on a live site. Normally reserved for the more proficient user to fix any bugs, or to make significant changes to the site.
  • Super Admin: All permissions that are possible. Reserved for developers in a development environment.

What really make these roles much more powerful is the Workflow Module. Workflow states are set up to pass an article along the approval process. The states are:

  • Draft
  • Ready for Review
  • Public Draft / Embargo
  • Publish
  • Unpublish

A writer can create drafts, and when complete they can move it into the “Ready for Review” state. An editor then can look through press releases in the “Ready for Review” state, edit them as needed, and publish them. A writer is unable to publish their own content, only an editor can move content in a published state.

The intermediary to publishing is the “Public Draft / Embargo” state. When a press release is moved into this state, it is available for all visitors to see - as long as they know the URL. This allows the editor to show the article to people outside of the Public Affairs office for approval. This is especially valuable for highly technical articles, like science research. A large “DRAFT” message appears at the top of the article so there is no confusion as to it’s purpose.

A press release in the “Public Draft / Embargo” state that has been scheduled to be automatically published at a specific time has it’s message changed to “EMBARGOED”, allowing the editor to distribute a link to the article to other media sources before the publishing date.

Flexible Content Type

Besides some basic content types like press releases, staff members and pages for static content, I developed a flexible content type called the “News Blurb”.

The News Blurb currently handles Messages, Alerts and Awards, and is flexible enough to quickly add new types of small content. News Blurbs can appear along with press releases on the homepage and are themed differently depending upon it’s type - the alert blurb is more bold to catch a visitor’s attention.

Using views, you can quickly grab a certain type and display it’s content. Awards are listed in a block on the homepage. The blurb can be published and unpublished at will, allowing them, for example, to save a blurb about the University being closed due to snow and quickly publish it when needed.

Managing Content

There is a slew of content, so I created several management screens for users. There is the main “Manage Content” section that will list all Published, Embargoed, Waiting for Review and Unpublished content for all users. Each have their own filtering to assist in finding the exact article, such as published date, title, author, etc.

The other section is for “My Content”, which contains the same as above, but specific to the current user. The goal of this page is that it would be their dashboard for managing their content. A writer will see only their work, and the status of their work, while an editor will be able to quickly manage content awaiting their review.

A special interface was added for editors to manage the homepage. The desire was to allow as much flexibility as possible, instead of just sorting the page automatically by published date. The Drupal standard is to use “weights” but that is not entirely intuitive. So, we created an interface that will change the weight automatically by pressing an up or down arrow for a story. They can then see instantly how the homepage will look.

This also allows for “pre-ordering” embargoed content. Although an article is embargoed, and not visible anywhere in the navigation (and search engine!), it shows up in the “reorder homepage” interface so the editor can put it in the correct spot immediately.

This flexibility allows an editor to change the quantity of stories, and have some stories stay on the homepage for a long time, while others fall off quickly, or remain in a particular position.

Connecting Authors with Staff Members

Each press release is connected with an author and contact information is provided. If the author is a staff member, then that person’s contact information is provided, while if the author is an outside writer, then generic Public Affairs contact information is included instaed.

There is already a Staff Member content type that includes their contact information. I found the best way to provide contact information for an author would be to use the information already provided in their Staff Member profile.

Using a user reference field from CCK, the staff member content type can be linked to a user. Then when a user creates a press release, their information is automatically filled into the author fields using data from their staff member profile. If the press release they are creating is not authored by them, they can either select a different staff member or enter a custom author for an outside writer with their contact information automatically filled in.

Having the author contact information connected with the staff member profiles enables mass changes to contact information on the fly. Phone numbers change, and names change when people marry (which often includes their email address). Staff members also can come and go, allowing an author’s contact information to change with ease on all their past press releases to a generic phone number.