Project outline and UI Design for an AJAX-powered Image Gallery Module

hubert
2008
26
05
created on Mon, 2008-05-26 16:25

After designing and theming with Drupal for almost a year and a half, I realize now that if there is one thing that is not easy with Drupal, it's creating Image Galleries.

I now know many ways to create image galleries (image, image_gallery, imagefield, views, etc. etc. etc.), but none of them feels to me like the ideal solution. The way I see it, Drupal does not have a "proper" image gallery module. And more important, none of them are user-friendly enough.

I've been thinking about how we could use the node system to create image galleries, where images could be re-used, categorized, organized... and how to make all this easier for the end user. After sharing these ideas with the Raincity folks, I came up with this outline for a new, flexible Drupal-native image gallery system.

photo image gallery screenshot

As you may know, I am not a coder (and I can hear Katherine, Steve, and Boris laughing right now). But I have done a lot of work on user interfaces (if you read my last post, you can see the design work I did on Views2, imagecache, and imagefield. My main goals with this project outline were:

  • out of the box image gallery functionality
  • flexibility for site admins and developers through the use of CCK, imagefield, and imagecache
  • integration with views and organic groups, as well as per user image gallery support (galleries are nodes)
  • re-use of images (images are nodes)
  • easy mass upload for users and admins, as well as other batch operations, especially gallery organization
  • use of AJAX where appropriate for better usability

As I said, I'm not a coder. I don't have a full plan on how to build all of this. My developer friends here at Raincity have said that some of the AJAX image uploading and the node relationships are going to be tricky. But I'm confident that you smart Drupal people will be able to help figure that out :P

Depending on the feedback we will receive, we hope to develop this module by using a reverse bounty to finance its development.

Please find the full PDF attached to this post or embedded below:

Read this doc on Scribd: Ajax-img-gallery

Link to full screen on Scribd

Feel free to comment this project idea, either here or in the Image group on groups.drupal.org. If you or a client would like to help fund this project, or if you would like to help develop it, please get in touch. If there is enough interest, we'll set up a donation page and go from there.

AttachmentSize
Ajax-img-gallery.pdf2.38 MB

Sounds great. Setting up

Sounds great. Setting up an image gallery is not trivial right now in Drupal. I'm looking for something that works like this where everyone can contribute, and the display is more-or-less simple.

The image_gallery which is

The image_gallery which is a part of image.module is probably best adapted for this.

The main thing that is lacking is it does not allow an easy way to create galleries - they are more or less an admin task atm.

(Image.modules as a collection have a lot of potential - image_attach should allow attaching galleries to posts too... )

I've heard that the image

I've heard that the image module is going to be depreciated or combine with imagefield, so using the image module might not be the best solution in a long term.

That may be the case, but

That may be the case, but atm, it works pretty well.

When it is merged I expect there will be an upgrade solution, so nothing to worry about... yet.

Awesome

Nice work on outlining this project hubert. This is exactly what i've been looking for and trying to achieve by modifying other modules and writing my own. This module would make an important contribution to making Drupal continue to grow in popularity. A lot of users are frustrated about the lack of a good image module.

It seems to be a general problem in the world of Open Source that developers create modules that are technically impressive, but still mostly useless to the end-user because the UIs are complex or even terrible to use. This would change all that for image galleries in Drupal :)

I'll keep following this project and try to contribute to it as much as I can.

Best regards,
Thomas Kulvik

Ny Media AS
www.nymedia.no

Right on

I wonder if this is the way Drupal will go in the future? Starting with a Problem, solving the interface issues, and then programming it.

I love this aproach for galleries. Have you thought about combining it with other work that has been done? Projects like Asset or AM already do part of what you have in mind. I'd hate to see the resources that are going into those projects wasted.

If your UI would be applied to asset.module and your gallery would sit on top of asset.module, that would help both of you. Asset would get a some UI improvements and your gallery.module wouldn't have to handle all of the file/asset-management.

Just a thought. There are so many great modules - they just don't fit together all that well. There lies a challenge that Drupal has as a project has to overcome.

Jan

irc chat on June 16th

Hi Thomas

Please join us on irc #drupal-image on June 16th.
http://groups.drupal.org/node/11750#comment-39716

Thanks
Audrey

Question

Couldn't you reuse a part of this solution:
http://szeged2008.drupalcon.org/blog/now-you-choose-drupalcon-szeged-log...

For the logo contest they used CCK with imagefield for submissions. Then views is used for listings.

That works, but it's really

That works, but it's really not flexible, images cannot be re-used easily, and each image is part of a content, not a content by itself, and that make it difficult to separate informations about the content and infos about each image. No re-arrange options, harder integretion with Views (you need code to have an icon). So this is one of the existing solutions that I have used many times, but it is not something adapted for proper image galleries.

Asset... integration ?

Thanks for your comments !
About Asset, I don't think that we need one module for all images. I think images can be used in many ways, and image galleries is a totally different from 'embedded' images in content.

I already posted a comment on this thread that explain my point of view.

And now that I think about it, it would be absolutely awesome to have an integration with ASSETS, so the user who already uploaded images for galleries, could re-use them in asset to embed a chosen image in the content.

AJAX Usability

I've been looking into a Drupal-based solution to replace my Gallery 2.x (http://gallery.menalto.com/) based image gallery. I'm currently looking at using imagefield and imagecache, though they're missing the concept of albums, which seems to be what you're trying to solve. I look forward to the results.

Some of the current image gallery solutions for Drupal use AJAX, but they don't allow you to link directly to a specific image. This is a major usability issue with AJAX-based applications. It should always be possible to link directly to an image and find it's URL easily. Please don't sacrifice this important bit of usability and accessibility.

great idea

I would love to help with something like this. I've tried to do this by cobbling together other modules (imagefield, views, imagecache, custom code, etc.), but I've been frustrated with the amount of work required. If you need help with code, I would be glad to help (drupal.org username is mikegoodwin).

Thank you for volunteering

Thank you for volunteering :) !
I'm not sure yet how we are going to proceed for the development, but we might need some help from the community, so you're all welcome to join. But before that, we have some discussions to do with maintainer of other modules to see how we could integrate this module with already existing one, like assets or else.

JS problems

This seems like a really great idea, and I don't want to get bogged down in a 'you can't do this, you can't do that' type discussion...but, you won't be able to upload files using javascript in a nice way. In fact upload module is about the best you can do. You might have to write some kind of flash or probably java applet to do the heavy lifting, ala facebook.

Other than that seems like a really great idea, and I'll help out if I can!

I was expecting this

I was expecting this kinda of problem.. if it was so easy I think someone else would have do it already :) !
I've been looking around about another module using something similar, and found this one :
http://drupal.org/project/imagex
By just drag and drop, you can upload many images, so we might look into a similar way to do this, or as you said, a java applet. But in general, I think we should stay away from flash. The facebook way is actually something very interesting that we totally should look into.

Keep Tabs on Image and Drupal 7

I've already committed myself up and down to getting Image module into Drupal 7 core, so you might want to keep tabs on where progress on this issue heads:
http://drupal.org/node/232129

It's not far now except for a port of Imagefield for Drupal 6. I intend to merge imagefield, image, and imagecache modules (for Drupal 6), and if CCK gets into core, then your module won't have any dependencies in it's Drupal 7 version.

Erm... Hello?

A good portion of this has already been tackled in one form or another. I'm not entirely sure it's is the duty of ONE module to do ALL of these things, i.e. imagecache does the thumbnailing, imagefield (asset, and many others) already does the uploading. Not that there isn't potentially a better way of doing it, just that there are some good ways existing already, and by-passing them seems a bad idea.

With that in mind, imagefield_gallery DOES a lot of what you're talking about here, and I'm working on a 2.x release shortly to improve the UI. I was more than open during drupalcon boston and still am to anyone helping with UI improvements on that, but the idea of galleries as nodes isn't difficult, and truly, what you're wanting to do with node references is high on my list once 2.x is released.

With that said, it's been my opinion for a while now that imagefield gallery could be altered so that in 6.x it IS a view style, and this would allow views to make used of the theme code natively. If this were tackled then we could have views as galleries (in a very easy to use manner) and galleries on a node easily. Perhaps what's left to do then is build a "view reference" field that would display a view on a node, instead of giving imagefield_gallery the ability to do node references. That way we can reuse all the hard work that views is already doing for us.

With Nate working hard to get image/field/cache into 7.x and merlin working hard to get views into 7.x, this solution would be essentially dependent only upon whatever needs an individual gallery type might have. I would LOVE to get some more feedback on all this to see if we can get this ball rolling because you're absolutely right, Drupal has been lacking this for a while, and I think that ultimately it's essential to getting people using Drupal more.

With all of that said, I really like the idea of a java applet that does uploading like you outlined in your pdf, and if imagefield could do this... my word that would rule.

EclipseGc

great outline! I think it

great outline! I think it will give a further push for drupal's popularity.
Moreover, I would like to see some integration of the functionality of "node carousel", "view slideshow", "lightbox", "image_caption" modules in to this "project". In addition, I would like to see adding comments directly within the image shown in lightbox, I wonder if lightbox has this features or some jquery module can do it?

Syndicate content