A Decision


It's Saturday night and I'm watching Dr. Who while Pazi plays games on our XBox. After checking my feeds and generally catching up on all net-based goings on, I found myself with little to do.

After meandering for a short while, I decided to go poking at the website once more. One thought I had recently is to begin adding additional content types to the site to support posts of different media types. The implementation process would be fairly straightforward. The question is if this is right thing to do.

This is actually an old argument, one I've been having for months now. Earlier, I had thought it would be wonderful if we could create a single content type on deninet called a "creation". The interface would then be smart enough to provide the appropriate interface to the poster, as well as display it properly once posted. While this sounds great, it does have a number of problems.

I would need to write the code necessary to make the content system smart. It should be possible using a custom CCK field. The problem is that this creates a piece of code I need to maintain in order for the site to function. Not all bad, but I'm not confident I would have the time to do so.

The other method is to create a content type for each type of media in need of posting. This means that graphic files -- photographs, artwork, sketches -- would have a "picture" content type. Audio files and video files would have corresponding types. Text based creations such as stories, prose, or poetry, would have a Text content type.

There are certainly advantages to this method. It would be far more natural for Drupal to accept as each type can be tweaked and customized easily. Cross integrations in views and categorization would be more complicated, but significantly less so today given what I know now about fields and views. This method is essentially, much more maintainable.

The only downside is the complexity of getting to posting what you want. Tumblr, however, sums this up rather easily with big, friendly icons on their dashboard page. Given that, I'm inclined to create more content types and work out the bugs and UI issues as they crop up.