----- Original Message -----
From: "Martijn Pieters" <[EMAIL PROTECTED]>
To: "Performance.net Strategic Internet Solutions"
Cc: "ZOPE Mailing List" <[EMAIL PROTECTED]>
Sent: Monday, August 07, 2000 12:19 PM
Subject: Re: [Zope] Accessing .gif on disk with Python Product?
> On Mon, Aug 07, 2000 at 11:21:53AM -0300, Performance.net Strategic
Internet Solutions wrote:
> > I am writing a python product and want to display a GIF file in some of
> > manage_pages. It is not meant to be the "icon" property of the class,
> > an image to be included in DTML. I included it in my class as follows:
> > chooser = ImageFile('images/chooser.gif',globals()),
> > but when I call it in DTML (<dtml-var chooser>) I get the following:
> > <ImageFile instance at 014F1D90>
> > I thought maybe I could use an instance of the Image class:
> > chooser = OFS.Image('images/chooser.gif',globals()),
> > but this doesn't seem to work.
> > How do you create an instance of an Image in a Python Product?
> ImageFile objects do not (like ZODB stored Image objects) generate an IMG
> when called. Image object, when called, generate an IMG tag that points
> browser to the correct address to retrieve tha actual image.
> With an ImageFile object, you need to construct the tag yourself. If this
> class has an instance foo, with this ImageFile attribute chooser, and the
> instance foo is stored in the root of your Zope ZODB, you need to point
> browser to http://yoursever/foo/chooser. So your DTML needs to generate
> following HTML:
> <img src="http://yoursever/foo/chooser">
> I don't know enough about your DTML, but if it is another attribute of the
> same class, you could use one of the URLx REQUEST variables or something
> construct the URL for the image. Also, absolute_url() called on the foo
> instance may also work for a base URL.
> Hope this helps.
> Martijn Pieters
> | Software Engineer mailto:[EMAIL PROTECTED]
> | Digital Creations http://www.digicool.com/
> | Creators of Zope http://www.zope.org/
> | ZopeStudio: http://www.zope.org/Products/ZopeStudio
Okay, I've done the following:
# Create the method in the .py Class File
# Call from the .dtml File
<img src="<dtml-var absolute_url>/chooserIcon" border=0>
absolute_url() works and the URL points correctly to
http://myserver/foo/chooserIcon, but if I type in that URL directly, I get
a "Not Found" error as though the method does not exist. I've double-checked
that the image is there and named correctly, so it's not a syntax thing.
Perhaps I need to convert it to an "Image" object something like below?
# this doesn't work but illustrates the idea
chooserIcon = Image( ImageFile('images/chooserIcon.gif',globals() )
Zope maillist - [EMAIL PROTECTED]
** No cross posts or HTML encoding! **
(Related lists -