Early explorations in Drupal

This week I began exploring Drupal. When I started working on the Anchor Archive project back in September, my friend installed Drupal on his server and added the Content Construction Kit so that I could assess Drupal’s suitability for building a system for the Anchor Archive. I didn’t get a chance to use the Drupal system too much in the fall, but I’ve been trying it out this week.

I started out by perusing the Drupal Cookbook (for beginners) and found some initial definitions:

Node: A unit of content, such as a “page,” “story,” “book page,” or “blog entry.”

Theme: How the site is displayed to the user.

Block: A “container” for pieces of content on a page. For example, the navigation menu and log-in are blocks.

Modules: Things you add to your site to extend functionality. Some modules are core and included when you install Drupal, others are optional to add.

Story: Content you add to your site, like a blog posting or an announcement.

I quickly realized, however, that the Drupal Cookbook (for beginners) was not going to get me very far since it focuses on using Drupal to build a website. This is, of course, what Drupal was designed for, but the Content Construction Kit is a key addition to the basic package for building a system for the Anchor Archive, because, as far as I can tell, it allows one to build a sort of relational database within Drupal (keep in mind that the main frame of reference I’m using for understanding Drupal is my experience building databases) . So instead I sought out the Content Construction Kit Handbook for more relevant instructions.

On a side note regarding documentation… One thing I noticed about Drupal as opposed to Koha is that all of the documentation is web-based. This means that although the documentation consists of various different handbooks for different things and it’s sometimes hard to determine which handbook is for what, having all of the documentation in web-based format on the Drupal site means that you can just perform a search for what you’re looking for and usually be directed to the right handbook. With Koha, on the other hand, some of the documentation is in PDF documents or on a wiki, so it’s harder to search for in this manner. Also, it’s too early for me to pronounce this with conviction, but so far the Drupal documentation is easier to understand and more thorough than the Koha documentation.

The main thing we’re trying to determine with Drupal is whether we can set up a function for circulation in it, as well as how easy it is to use overall. It looks like this will be possible using the Content Construction Kit. In Drupal, a content type is basically a table, in which you can create fields and define parameters for those fields. We should be able to create a content type/table called “zines,” which will essentially be our library catalogue and contain fields like title, author, and subject. Then for the circulation aspect we could do one of 2 things:

  1. Create another content type/table called “patrons” and in here enter fields for all of the essential information about our patrons, such as their names and contact information. Then create a third content type/table called “circulation” or something like that, which will link to zines and patrons and will have an entry for each time someone signs out a zine. The fields in this content type/table will be zine title (or identifying number), patron name, and due date.
  2. Rather than enter patron information in a content type/table, we can set up patrons as users of the system. In Drupal you can define various types of users and give them different privileges, so we would have one type of user called patron who has limited privileges. Then within that user type, we could enter the names of individual patrons. It is possible to link users with fields in a content type/table, so then we would either have a field in the zine content type /table called “borrowed by,” where we would link to the user who has borrowed an item (we would also set up a user called “in library” for when the item is not being borrowed), or we would still set up another content type/table called circulation where we would have a field that links to the zine table and a field that links to users to indicate who has borrowed an item. The latter option would probably be better because then we could include due date information and the catalogue records would be kept separate from the circulation records (better for privacy and data integrity).

One potential problem with option 2 is that currently to register as a user in Drupal, you only need to enter a username and e-mail address. We would need to have more information than that about the people who borrow items from the Anchor Archive. I did, however, find something in the Drupal documentation that says you can give your users a form to fill out when they sign up that asks for specific information about them. I will have to investigate this further.

I’m left with many questions after my first session with Drupal and I’m looking forward to playing with it more. I always find it exciting to learn new software. Still thinking through the lens of databases, I think we will need to set up data entry forms for entering content into the content types (tables) in a more usable way than is currently there, and I wonder how easy this will be. I also wonder if the system will be able to give us reports, such as lists of overdue items. This is the kind of built-in functionality that we’re likely to find in Koha, since it was designed as a library system, whereas Drupal was built for website development. Finally, I still have no idea how all of the content will be displayed in the front-end of the system. There is no obvious way to switch to a front-end view in Drupal and I haven’t yet tried to find out how to do this.

I will tackle some of these questions during my next session with Drupal. I am also going to explore the taxonomy function.