[Zope3-Users] images in a content object
Jean-Marc Orliaguet
jmo at ita.chalmers.se
Tue Sep 27 14:09:03 EDT 2005
Duncan McGreggor wrote:
>
> On Sep 27, 2005, at 11:54 AM, Benji York wrote:
>
>> Duncan McGreggor wrote:
>>
>>> My problem is that I haven't figured out how to point to this image,
>>> as it is part of the content object itself. Ideally, I would like to
>>> be able to refer to it in a ZPT via a URL. Something on the order of
>>> <img tal:attributes="src
>>> string:${context/@@absolute_url}/image_file" />
>>> Any ideas or code to which I could be pointed?
>>
>>
>> You could make the content object traversable, so you could do
>> http://path_to_object/image_file.
>
>
> Man, that sounds perfect...
>
> But! *sheepish grin* I've never done that before... is there someplace
> you could point me (and future readers of the list archives) where I
> could read about doing that (chapter of a book?) or some code in svn
> that shoes an example in a zcml file (I'm assuming this would be done
> in zcml?).
>
> Thanks, man!
>
> d
>
I've done something similar for caching images in a RAM Cache and
accessing them through a url. I simply added a page / BrowserView.
see:
http://svn.nuxeo.org/trac/pub/file/z3lab/cpsskins/branches/jmo-perspectives/browser/caching.py
If you remove the RAM cache part, your code could look like this (not
tested ....):
__init__.py:
from zope.app.file.browser.image import ImageData
from zope.app.file.image import Image
from zope.app.publisher.browser import BrowserView
class ImageView(BrowserView):
"""A view for accessing images.
"""
def show(self)
viewer = ImageData()
viewer.context = Image(context.data)
viewer.request = self.request
return viewer()
configure.zcml :
<pages
for="zope.app.file.interfaces.IImage"
class=".ImageView"
permission="zope.Public">
<page
name="show"
attribute="show"
/>
</pages>
then access your image with http://path_to_object/image_file/show
/JM
More information about the Zope3-users
mailing list