[Zope] IMG attributes in ZPT

Troy Farrell troy@entheossoft.com
Fri, 18 Oct 2002 17:49:57 -0500


Jon, I'm hear to second your request.  I got sick of the blatant XHTML 
standards violation here, so I edited Image.py, commenting out lines 748 
and 749.  Anyway, that fixes the direct call method.  I got sick of 
editing source code for all the installs (and to lazy to make a 
HotFix/Monkey Patch - religous debate anyone?), so for ZPT, I started 
using this when I didn't want to hard code it:

<img tal:define="image python:getattr(here.img,'guests_logo.png')"
      tal:attributes="src image/absolute_url;
                      height image/height;
                      width image/width;
                      alt image/title_or_id" style="border: 0;">

This works for an image guests_logo.png stored in a subfolder img.

HTH,
Troy

Jon Whitener wrote:
> Zopers:
> 
> How can I manipulate the attributes that are included when I insert a ZPT-rendered image tag, for CSS reasons?  (I hope there's a way to do this in the page template.)  Specifically, I want to keep the WIDTH, HEIGHT, and ALT attributes as they render dynamically, but add a CLASS attribute, and get rid of the BORDER attribute.
> 
> Currently, the ZPT code: 
> 
>   <div tal:replace="structure here/menu_icon">MENU ICON</div>
> 
> renders as:
> 
>   <img src="http://localhost:8080/menu_icon" alt="Stub Menu Icon" height="69" width="92" border="0" />
> 
> I'm glad the WIDTH and HEIGTH are included automagically, but how can I:
> 
>  - Insert a CLASS attribute, e.g. class="menu-icon"?
>  - Leave out the BORDER attribute?  I don't know how that got in there.
> 
> Is there some way to add a class="menu-icon" attribute in the tag?  If I really must break it down into:
> 
>   <img src="IMG SRC" class="menu-icon" tal:attributes="src here/menu_icon/absolute_url" />
> 
> Then, how do I include the ALT, WIDTH and HEIGHT attributes into the tag, without hard-coding them?
> 
> BTW {
>  I found in the docs about the
> 
>   tag(height=None, width=None, alt=None, scale=0, xscale=0, yscale=0, **args)
> 
>  method of an Image object, but I have no idea how to access or modify that stuff.  If this is necessary, please provide details.
> }
> 
> 
> Thanks in advance,
> Jon Whitener
> Detroit MI, USA