[Zope] RE: RE: Q: How can i check the existence of an image?
Dirk Datzert
Dirk.Datzert@rasselstein-hoesch.de
Sat, 05 Jan 2002 20:41:14 +0100
Andreas Pelzner schrieb:
> Hello Ben,
>
> thanks for your help. The code peace works only if an image is
> available. Otherwise it will result in an error:
>
> Zope Error
> Zope has encountered an error while publishing this resource.
> Error Type: KeyError
> Error Value: theme_c_auf_einen_blick.gif
>
> But i need the <dtml-else> case. If an image is not available, the code
> has to give back an default image.
>
> My Code:
> <dtml-let myTemp=id>
> <dtml-let MyID="'theme_'+myTemp+'.gif'">
> 'if an image is not available, this will result in an KeyError
> <dtml-if "images[MyID]">
try <dtml-if "hasattr(images, MyID)"> instead
>
> <dtml-var "images[MyID]">
> <dtml-else>
> <dtml-var "images['theme_']">
> </dtml-if>
> </dtml-let>
> </dtml-let>
>
> - Andreas
>
> >
> > Hello Andreas,
> >
> > This example assumes that the MyID variable gets filled
> > somehow, such as
> > from the query string or form:
> >
> > <dtml-if "imgs[MyID]">
> > <dtml-var "imgs[MyID]">
> > </dtml-if>
> >
> > Where "imgs" is the name of the folder in which the image objects are
> > stored. You don't need to specify the extension in your Zope
> > image object
> > names, as Zope will figure out the content type when you
> > upload the image.
> > The <dtml-var> tag will write out the IMG tag, including the path,
> > dimensions, etc., for you. If you want to add additional
> > parameters to the
> > IMG tag, use <dtml-var "imgs[MyID].tag(param='myParam')"> .
> >
> > --Ben
> >
> > > How can I check the existence on an image file in my image folder. I
> > > coded a workaround, but it doesn't fit my needs exactly:
> > >
> > > <dtml-let myTemp=3Did>=20
> > >
> > > 'Build the image file name
> > >
> > > <dtml-let MyID=3D"'theme_'+myTemp+'.gif'">=20
> > >
> > > 'loop over each image in the image folder
> > >
> > > <dtml-in expr=3D"images.objectValues('Image')">
> > >
> > > ' String find
> > >
> > > <dtml-if "_.string.find(id(),MyID) > -1">=20
> > >
> > > ' -> if there is a matching file print image in HTML
> > > <img src=3D"/images/<dtml-var id>" width=3D"145"
> > height=3D"129"> 'print =
> > > image
> > > in HTML
> > >
> > > </dtml-if>
> > > </dtml-in>
> > > </dtml-let>
> > > </dtml-let>
> > >
> > > ...but I'm looking for something like this:
> > >
> > > 'check if true or not
> > > <dtml-in expr=3D"images.<image_name>">=20
> >
>
> _______________________________________________
> Zope maillist - Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
> ** No cross posts or HTML encoding! **
> (Related lists -
> http://lists.zope.org/mailman/listinfo/zope-announce
> http://lists.zope.org/mailman/listinfo/zope-dev )