I'm working on a site that will sell images for download, and I know there are a number of similar sites that have been done with Ubercart.
For the sake of simplicity, I'd like contributors to be able to upload a single image, and have imagecache generate watermarked thumbnails and previews (I got this working) and also store the unwatermarked original outside the web root, for use as a file download.
It's that last part I'm not sure I understand. Looking at the interface, it seems that Ubercart wants users to go to a completely separate interface to set up downloads, which would preclude re-use of the same file. Worse, in the current dev version of Ubercart 2, trying to add a downloadable file takes to to a new page with this message:
"Add file downloads through this page and then use the conditional actions interface to limit which orders they are applied to. Most important is the order status on which file download access will be triggered.
You must add files at the Ubercart file download administration page in order to attach them to a model."
It seems that attaching file uploads can only be done through a separate, general uploading interface, and then someone has to go back to the product and manually create the association. Not exactly an approach that scales well.
As I mentioned before, the ideal workflow would be for users to upload a single file which would be used for both the manipulated previews and the paid download. In fact, it might be best if it could start as the file download, that way there wouldn't be an original in the web root, as there is when you upload through imagefield.
So I guess what I'd like to see is to things:
1. A product-based file attachment interface that creates the file download and also the product association
2. Integration with imagefield/imagecache to generate the thumbnails, previews, etc. using my imagecache settings from the downloadable file.
I'm definitely willing to crack some code towards this effort, if someone could point me in the right direction (hooks to use, existing solutions that might solve some of this, etc.). Any thoughts?
