Image-heavy CMS: is Drupal the right choice?
May 3, 2009 7:13 PM   Subscribe

Drupalfilter: Image-heavy CMS with specific functionality - your thoughts on the best option?

I am developing a site using Drupal with a custom template. Drupal is well-suited, I think, to the CMS. The functionality is to be:

- store and display many images with many tags. images must be zoomable, which I believe can be accomplished with jQuery
- manage a few disparate user types who will need to see different forms of the site
- handle form entries which will be collected and stored in a database
- payment processing
- bookmarking system

If you have a better suggestion than Drupal for these requirements, shoot.

I'm using Webfaction to host, and I like it thus far, though I do worry a bit about bandwidth if we grow, particularly since we are image-heavy. I'm using MAMP for local development. I can elaborate on details to some degree as needed, so ask away.

Big question: I also need to - and this is the challenging part, in my view - swap out different color samples for the images. We won't have images of all the pieces in each color, so we're trying to engineer a system to show samples. So if I have a bag in a blue fabric, I need to overlay an orange, green, red, or etc. or different patterns - polka dots, stripes, paisley, etc. These will be for different things than just bags, but the functionality desired is similar to this. This loads slowly, however, IMO. Wrinkles in fabrics makes this kind of hard.

I'm wondering if we could contract out for someone to create this part, and then do the rest myself. I looked at the oneybags code and it seems complicated. I think they are using image overlays - can someone maybe elaborate on what's going on there? If we contract it out, what would you say is reasonable to pay for this functionality? Or, should we have someone do the whole site?

Your thoughts are very much appreciated.
posted by xiaolongbao to Technology (8 answers total) 2 users marked this as a favorite
Have you looked at Gallery2? I think it's even drupal-based...
posted by SpecialK at 7:19 PM on May 3, 2009

Response by poster: SpecialK: Thank you - Gallery2 looks cool - but unless I'm missing something, it just looks like Flickr functionality for the site. I think we probably need something a bit more custom than that, though not 100% sure - maybe it's easy enough to write functionality on top of Gallery2?

Also, a more clear example of the challenging functionality we need is on this page. Oops.
posted by xiaolongbao at 7:32 PM on May 3, 2009

Best answer: If you look at the source, you'll see evidence that they are using an offsite image generator. This is why it takes a long time to see each change, even more so if they are uploading the same image components each time only to still wait for a return download to show you. Most of the work for something like this will be in getting images of each of the materials, and masking out each of the regions in each piece. You don't say what your skill level is, but you could certainly write a processor for something like this in PHP as a Drupal plugin with ImageMagick.
posted by rhizome at 7:49 PM on May 3, 2009

Best answer: I would say, if you like the looks of Drupal and your skill set fits it just run with that. I don't think those requirements are specific enough to really call for one CMS over another; you just want to pick a generally well-engineered product and Drupal fits the bill.

If you go into that Oneybags site, select a bunch of fabrics, and then right-click and choose "View Image" you'll see a single image with all of the fabrics showing. So if I understand what you mean by "overlays" correctly, that does not appear to be what they're doing, at least not in the web browser; there is some server-side image processing component that is generating a single image.

Depending upon how many options you offer it might just make sense to pre-generate some or all of the possible image combinations, in which case the web visitor manipulating the interface would just need to cause the correct pre-generated image to be displayed. But overlays is a good idea too if you can get it to look right for you.

As far as contracting for CMS customization, I think you have to be very careful and be aggressive in keeping on top of things, which I elaborated on in this AskMe. But note that others in that thread disagreed with a number of my opinions.

Also, to conserve bandwidth you might look into client side caching. You can wait until a later phase to implement it, but because turning that sort of caching on all the way means that you really need to change the image file names whenever they're updated, and thus change the image tags everywhere, so if you want to use it eventually you have to plan ahead.
posted by XMLicious at 7:54 PM on May 3, 2009

Best answer: I love drupal to the core, etc. But something like this I think may call for some flash. It seems like the site you link to is doing something like this: Requesting a certain part of an image to be filled by another pattern. The web page sends the request, a server side script processes it and returns the new image. Yeah, kind of slow.

With kind engineering this could be done most instantly with flash. A simple BitmapFill on the desired part of an image would show the user what they want to purchase. It's basically what is being done in the site you link to, and it can be done in the browser without requesting a new image from the server. That is, of course, if you can find the right developer to do it correctly and in a way that is extendable and maintainable.
posted by localhuman at 8:07 PM on May 3, 2009

Response by poster: Great answers all around. Lots of best answers to mark here! Thanks, everyone.

rhizome - ImageMagik looks appealing & perhaps exactly what we need, but may be beyond my skill set to code too much into that. Hence wanting to outsource that part :)

XMLicious - Thanks for all the tips. I'm going to investigate client side caching now rather than later as you suggest.

localhuman - Flash is a great thought. Would love to speed this up and we'll look into getting a Flash developer on this as that's definitely not my specialty.

And, it is clear I didn't understand the code...hah.
posted by xiaolongbao at 8:32 PM on May 3, 2009

if ImageMagick is what you're looking into also consider the Imagecache module for Drupal and the ImageCache Actions module. They allow you to set up canned Image manipulation actions, and have derivatives for images generated automatically. It's probably not the best match for what you're looking for, given that a large product list would mean a lot of variations that are product-specific rather than catalog-wide, but it's a good bit of sample code to look at.

Seconding localhuman, though, that maintaining server-side originals and doing client-side tinting/recoloring is a really good bet.
posted by verb at 9:36 PM on May 3, 2009

Response by poster: Thanks, verb. I am reading up on ImageCache now. Indeed, this is going to come in handy for the site in general, it looks!
posted by xiaolongbao at 11:24 PM on May 4, 2009

« Older Need to get in hot water in San Jose   |   How to surf securely while traveling, especially... Newer »
This thread is closed to new comments.