Notes from Design4Drupal 2010: Highlighting Library Collections


John Bickar from the Cubberley Education Library at Stanford University gave a talk called Highlighting Library Collections. Here are my notes:

One of the first things I was tasked to do was to convert our library's static HTML site to Drupal.

Working With a Library Database

We depend on the University library's database, but it can be a little overwhelming to users. Drupal provides a lot of out-of-the-box ways to push content out and pull content in, so you can target the kind of information that's pulled in to the fields that you want.

As an exmaple, we categorize historical photos. Some of them may not come up in the Stanford online catalog, but we still need to show them to provide some historical context.

The meat of our work is to provide resources to researchers. We have background handbooks, books, journals, databases and websites that we've selected for each different programs, including:

  • Each Masters program
  • Each Ph.D program
  • as well as each STEP program

We not only provide resources and links to other resources, but also links to information on the program websites as well.

Keeping it Up To Date

Nobody will be going back and sanitizing the data and cleaning things up on a static HTML website, going through and finding places where information has not yet been changed. We want to have the ability co change content, lists and links without changing things on all the different Stanford websites.

  • Biblio, for categorizing our books. Any bibliographic tool can export this information into a standard bibliograpic format that you can use with the Biblio module. It's basically like node_import for bibliographic data.
  • Image, for example with historical images
  • Links, would probably use CCK link field at this point in time
  • Panels, drives our research guides
  • Taxonomy
  • Views

Biblio Module: The Core Component

It provides a lot of fields for your content types by default, and it will auto-populate them as you enter them.


We use taxonomy in categorical and descriptive ways, including a "Meta" vocabulary that is more architectural, and drives the filters of the Views that we use.


Views helps you build lists of content based on different filters and parameters. These can be supplied by you or by the user. These arguments can be supplied through the URL, so you can end your URL with, for example, /topics/statistics to fetch articles about statistics.

We have a number of tabs, and each tab is a separate view. We use panels to lay out the views, and each view contains a number of different nodes, which each collect a number of different pieces of information. So the sequence goes:

Panel -> View -> Node

Filters in Views

Your view is just a big strainer that is putting constraints on the content and displaying whatever is left. The filters that we have on an example view:

  • Node: published set to Yes
  • Everything in this term should have a specific taxonomy term


The Send Arguments checkbox in our panel makes it possible to forward all arguments through to all the views displayed in that panel. The panel receives the taxonomy term name, and passes it on to the view as a taxonomy term ID.

The architecture of combining views and panels requires more Drupal know-how than probably anything else we did on this site.

Thanks to John Bickar from Stanford's Cubberley Education Library for giving this talk. You can find him as cubbtech on

Did you enjoy this post? Please spread the word.