Dear Walkah - the wishlist for images in core
Dear Walkah - This christmas i wish for world peace, that my beers always is served cold, more metal in the airways and a kick ass image handler for Drupal.
A user perspective of image handling in Drupal.
At the drupalcon in barcelona walkah held yet another an images in core session, i kinda promised to make this huge wishlist to figure out what is is we wants inside this image thingie - So here it is my collection of thoughts an ideas of how images could be in drupal - seen from a dumb users perspective.
---
This is the first draft im gonna cross post it at the relevant groups.
posted in groups: http://groups.drupal.org/node/6462
flickr tag "drupalimagesincorewishlist"
---
All the images are at flickr so we can get comments in there.
Pretty please comment, lets get all the ideas & the concept right before the mad drupal code army takes over.
One manager to rull them all.

The different approaches that each module have have today are very diffucult for the users to work with (and even som geeks)
- we got the image is added to a node and cannot be reused on the site again but its posible to cached in different sizes (cck & image cache),
- singe file (IMCE) works as a centralised storidge manager, but not possible to create ned sizes with cache
- attached to the node (image attach), predefined sizes
- the user image & avatars
Let us stop the madness. one image manager for image inside drupal, if you add a picture to you cck widget it goes into the manager, if you ad an image to a user profile it goes into the manager if its added through tinymce well it goes into the manager.
So when you have to find that picture again you know where the image is.
The manager can be called as popup window, a ajaxy thickbox thingie, or an expandable div inside the page, and add the images to drupal.
A user can access and work with all images that have been uploaded, and dont have to take into account if its an user picture, a cck image or an attached image, or any other kind of image, its just an image.
add, replace & remove images into drupal
Where would we like to work with the images...
cck widget


The user can replace an image thats already added to the manager (or replace it with a new)
If theres more than one image we can change the order of the images.
Title & alt is inheritet from the original file, the user can overwrite em at each cck adding
If the user wants to add a new image it can upload directly as we do now im the image widget or open the manager an add it through here.
2. text area: wysiwyg & text
The user can add an image from the manager or replace it with another image.
The user can select the different imagecached presets that have been set in drupal or create a new variation of the image.
crop resize etc, image magick stuff - and then save it and add it to the manager. (yai photoshop built in javasctipt & xhtml ...mmm)
3. profile image (avatars)

•When a user adds an image to his profile its store in the manager the image is stored in the manager (folder defined in the settings as usual?)
• If the user have permissions he could have acces to a predifened collection of avatars.
• permissions for how many images a user may add to the avatar folder?
• if the user removes the refrence to the file should it be deletede or only removed
4.terms

Why oooh why dont we have en easy way to add images to terms - again add image to term from the manager and voila
with the use of image cache. we could have a nice page with an image for each term
(like übercart: http://www.ubercart.org/files/screenshots/product_catalog.jpg)
5. gallery
A gallery would be a taxonomy term
a gallery can have a special selected image as identifier for the gallery (add a image to a term se above)
a gallery can have a desciption
An image can be added to more than one gallery
each image posibility to hook up with drupal functionality: comments, send to a frient, add to favorites, vote, add term, whatever...
add weight to each image in the gallery to change the order of the images in the given gallery
the gallery can have each image sorted by date, title etc
All these functions must be accessible from the gallery control panel (lets make it easy for the people man)
[GALLERY control panel]
6. block
Add an image to a block do it direcly through the image manager - or should that be done inside a html field instead?
-----
Upload & import images
-----
Browser upload:
- upload 1. image at a time through the manager.
- flickr like import of multible images
http://flickr.com/photos/upload/
http://swfupload.mammon.se/
FTP upload & structures in the image folder
when a user is working with a lot of images its gonna be a real pain to upload them one by one.
<photogeek example>
Lets say the user have 50 different galleries that is store as folders on the harddrive an she wants em all online fast n easy...
upload all the folders to files/images/
and then go to the import image folder option and upload each of the folders as image gallerys
if a folder haves images thats not importet they can be importet again
</photogeek example>
[Screen of import images]
Folders with images can be importet an each image & folder is registret into drupal and used as an gallery.
This gives the user a way to download all the images again at a sane level instead that all the images are in one folder (and the user can actually again export the image if he decides to not use drupal anymore)
To have all the images in one folder is a real pain, and unless theres a really good reason for that we should try to work in a way a user would store the data (and so the quickly can add images from iPhoto, lightroom, etc)
Metadata import
When a file is importet lets use the metadata and add those to the terms for the image
exif import (adds as terms)
iptc import
---
filestructure for the images
---
Local based images:
images/
images/foo
images/foo/bar
images/bar
images/bar/foo
images/mortendk/barcelona2007
images/mortendk/brussels2006
images/mortendk/sanfran2007
images/adminGroup/foo
images/adminGroup/foo/bar
external disk amazons S3
have no idea at this moment how it works etc
but again the users should then just add the images through the manager
------
Manager: edit / properties / delete / information bout each image
-----
property editor:
add default title & alt tags to the image
add terms to the image (might be importet from iptc/exif data)
lets the user add new terms for the image
checks the permissions for the image
whos my daddy: before you wanna do crazy stuff with an image it would be nice to know where its used at (delete?)
which gallerys are the images a part of
Normally you would only remove an image from a page element
if you wants to remove it 1. you must have the permissions 2. go into the manager an remove
Lets have an easy way to remove 4321 files
[MANGER Props]
[MANGER delete]
[MANGER info]
----
access to imagefiles
---
We want to give special users the right to download original image (think - shop etc)
foo.jpg - paying customer
foo.jpg cached 1024 * special users
foo.jpg cached 300 * 300 all registred users
---
Filter in textareas?
----
Maybe it would be wise to have a filter so instead of using in a textarea we can use [img cacheprofile="foo"] instead?
then add a ref to the original image so we know wheres the image is used .
If we delete the original image, the image will no longer be shown.
---
theming
---
control the imagecache elements directly from the theme / template.php
control siziing from cck through the display options
Its importent that the themer can controle the image cache driectly from the templates - a scenatio could be that it were usefull to have 1 image size for block-leftbar.tpl and another for block-right.tpl
links
http://flickr.com/photos/upload/
http://swfupload.mammon.se/
http://www.ubercart.org/files/screenshots/product_catalog.jpg
modules:
----------
am
images
imce
tinymce
imagecahce
cck
imagefield
so Walkah - when will it be done ;)
| Attachment | Size |
|---|---|
| images in drupal rtf file | 156.16 KB |


Wow, that's a lot of
Wow, that's a lot of information. I have yet to grok everything, but I have two comments for now :
- I guess here an image is a node (or some kind of "first class object"), with a title and attributes, and not just a file in a directory,
- so the UI has to be very clear to avoid any confusion between the image object and the image resource.
In other words, there is a difference between "replace this image (object), only in this particular content" and "replace this image (resource), only the pixels part, so it will be replaced everywhere on the whole website".
yup so we dont have the
yup so we dont have the users/clients/ girlfriends crying in the phone that they accidentally delete the image from drupal.
im thinking of:
the thrashcan icon = deletes
red cross = removes the "link" betwen the image and node
I guess you delete an
I guess you delete an Image-Object from a Node or Page.
Only within the Asset-Manager you could be able to delete the actual Image-Resource.
It would be nice to have the Asset-Manager be able to know if and where the image is used so that it can warn you when you are about to delete an Image-Resource when it is being used as an Image-Object somewhere on the site.
I'm with elv... much to grok
I'm with elv... much to grok and too little time at the moment. May make a few comments before I hit the floors with a sander. It's gonna take a while...
Ciao,
-Ryan
ROCK! Morten, you sir are
ROCK! Morten, you sir are the man. Lots to digest here, but this is great stuff... I'll be shoutin' back atcha soon!
well well well. my mind is
well well well. my mind is already spinning at the possibilities. i will be working on incorporating some of this into the am module. i will be writing a new module to do flickr style rest api with rpc and hopefully get some tools to use it like http://juploadr.org/
the only thing i didn't see on here was the kitchen sink we are going to be adding?
great work mr king.
-steve
Okay, we're rollin'! This
Okay, we're rollin'!
This image manager you're describing looks a lot like the one used in Escenic, a closed source CMS for newspapers, used at PinkRoccade (bertboerland's company). I no longer work there, so I don't have access to compare features, and Bert is on holiday. Maybe when he's back he can give some feedback.
I wonder how your ideas compare to other CMSes? Also: how about Gallery? (Gallery is GPLed.)
add weight to each image in the gallery to change the order of the images in the given gallery
On first thought this sounds like the way to go. However, weigths in Drupal normally range from -10 to 10 or -15 to 15. This may not be enough for an image gallery. Gallery also uses a weight-like drop-down box to order images. Its usability sucks when working with 50+ images.
external disk amazons S3
have no idea at this moment how it works etc
but again the users should then just add the images through the manager
Excellent! The image object should not depend on the location of the image resource.
How would you handle resizing, though? And access control? Available features depending on location (and download method) should be clear in the image manager.
whos my daddy: before you wanna do crazy stuff with an image it would be nice to know where its used at (delete?)
which gallerys are the images a part of
So:
1. adding images, and defining resized versions, can be done from any place (CCK widget, text area, tinyMCE, image manager, whatever)
2. editing or deleting the original resource can only be done from the image manager
3. image manager shows all places where the image is referenced
Let modules override
Let modules override defaults!
It might be very useful to allow a custom module to override the default image manager policy & behaviors via hooks.
For example, if a module wants to have its own directory location for raw image storage that differs from the 'standard' locations, the module should be able to do that. Same goes for naming conventions, image derivatives, image dimension & file size limitations, etc.
In other words, it should be possible for custom module developers to take advantage of the image manager without causing problems for other modules.
Example: I have a module that needs to allow the user to upload and store a single full-size image scaled to a standard size, and an associated thumbnail of specific dimensions. The file directory location is specific to my module, in order to keep the images separate from those used by other modules or Drupal core.
What I'm driving at: it would be helpful to allow my module to 'set policy' regarding the defaults used in an image manager. Please consider this kind of need when making decisions about image (or any uploaded file) management.
In any case, this is all good stuff, I'm glad to see some discussion of core image management. Keep up the good work!
Why want to override the
Why want to override the storage behaviour?
My guess is the image manager is not only managing the user interface but also provides an API to get to images in general.
Looks like you thought it
Looks like you thought it through really well. We are, at my company, develophing a new version of our website in drupal, and have gotten a really nice file/image managenment system, maybe some of that can be used. If you want to see it send me an email.
hi thomas. well mate lets
hi thomas.
well mate lets see it GPL the sucka ;)
i have send you a mail
thanks for information
thanks for information
A lot of the things you are
A lot of the things you are describing here will be in the new version of assets: cck widget, title/description, gallery, support for panels, imagecache, lightbox, ... I will probably launch this withing one month as I'm currently very busy with a lot of projects.
Hey guys, if you actually
Hey guys, if you actually build this image module, you would became my super heroes, I've been crying around for a good image module and only solved my problems by using 4 or 5 different modules at the same time (CCK, Views, Image fields, Image pager...). What a shame !
The latest version of the
The latest version of the asset module does almost everything you ask here. The cck interface even looks a whole lot like the one on your screenshot.
It integrates nicely with cck, views, panels, imagecache, tinymce and lightbox without requiring them. It uses panels to create galleries and automatically provides a block as a preview to the gallery.
It would be great if you could take some time to check it out and give some critique.
The image handling page
The image handling page looks good. Good idea!
I would love this
I would love a package deal like this - just make it extensible so, say, you can add another module to turn your image galleries into views slideshows, or jquery-enabled carousels. Allow images to be associated with nodes or terms, etc.
Sanding a Floor
Useful information ..I am very happy to read this article..thanks for giving us this useful information.
thanks !!
Floor Sanding London - Sanding Wood Floors with over 15 years experience in floor sanding & restoration. Call us FREE on 08000 076 076. We use latest DUST FREE floor Sanding Machines.