James Website

James (http://www.theiconoclast.ca) has been a friend of the family for many years, and a close personal friend of mine. it has been an interesting process trying to help him to adapt to the new communications options that have come about from the inception of the world wide web and later content management systems.

Originally we had built a single page site years ago which served as an online business card essentially. I gradually talked him into the idea of working toward using a system that would allow him to update his content feed on a regular basis, in spite of some early reservations toward the process. There are a few really amazing things that i'd like to spotlight here as examples not only of what i've helped do for him, but simply features of Drupal which i consider to be very powerful and useful.

I'll try to explain some of the concepts involved with Drupal jargon if i can, but what follows assumes a modicum of knowledge of the web.

Music

James is a musician and composer by professional occupation. One thing that i'm glad i was able to talk him into was the idea of sharing some of the content that comes out of his works in progress, or recordings that simply aren't part of an official release. The consequence has been that i get to enjoy his streaming music for free whenever i feel like popping over to see what he's done lately. There are several parts to this feature.

Here is a link to his music page:
http://www.theiconoclast.ca/songs

Each song that james publishes is published as a filefield connected to a node. A node in Drupal is conceptually a lot like an individual page, and so what i'm saying is that i've created a special type of page called a "song page" which has a field in it to which one attaches a single song file. In order for this functionality to happen in Drupal six one requires the following modules:

 Audio             MP3 Player (mp3player) 
 CCK               Content (content) 
 CCK               Content Permissions (content_permissions) 
 CCK               FileField (filefield)
 CCK               FileField Meta (filefield_meta)
 CCK               Filefield MP3 Player Formatter (filefieldmp3player)
 Other             Automatic Nodetitles (auto_nodetitle)
 Other             getID3() (getid3)
 Other             Pathauto (pathauto)
 Other             Token (token)
 User interface    jQuery UI (jquery_ui)  

This thing is great. When you upload an MP3 to the site a few things happen

  • The getID3 module will be able to build information about the song/artist etc from the id3 tags embedded in the file.
  • The Automatic Nodetitles module will automatically name the node the same title as the file name, or the artist/song from ID3
  • The Pathauto module will make use of text parts provided by Token in order to automatically generate the node URL
  • The MP3 Player module fits the uploaded file into a streaming mp3 player.

What's most amazing about all this to me is that when you use a view to aggregate a list of "music" nodes and generate a series of mp3 players, the player that you are currently listening to will stop when you click play on another one, which is magic to me.

This tool has been wonderful for not only giving James a way to share his creations with people, but also for us to have a handy way to listen to it without the hassle of downloading the file and running it in another program.

Photos

Photos operate on a similar principle using the following modules:

 CCK               Content (content)
 CCK               FileField (filefield)
 CCK               FileField Meta (filefield_meta)
 CCK               ImageField (imagefield)
 CCK               Imagefield Import (imagefield_import)
 ImageCache        ImageAPI (imageapi)
 ImageCache        ImageAPI GD2 (imageapi_gd)
 ImageCache        ImageAPI ImageMagick (imageapi_imagemagick)
 ImageCache        ImageCache (imagecache)
 ImageCache        ImageCache UI (imagecache_ui)
 Other             Pathauto (pathauto)
 Other             Token (token)
 
  • The Filefield module works with ImageField to allow for binding of a single image to a content node.
  • The real magic is in ImageAPI which allows for automated image optimization for the web. This means that he can upload a really large photo to his website without shrinking it, and the website will automatically create thumbnail, medium and large size.
  • ImageField Import is a fancy tool that is used for a bulk creation of nodes, in such a case as wanting to add hundreds of photos to the website.
  • Pathauto / Token are used for automatic creation of URL to the photo nodes

The photo page on his site (http://www.theiconoclast.ca/photos) is a view of the uploaded photos. On the front page is a block that contains a view that displays one random photo.

The Front Page

The main feature of the front page is a feed that displays new content ordered chronologically. We decided, after several versions, that the most tidy looking format was a single line for each new item, and it seems to work nicely. I like being able to see, at a glance, what's new on his site.