[Zope] non static size parameter in dtml-var
Steve Alexander
steve@cat-box.net
Sun, 07 May 2000 21:34:35 +0100
Scott Parish wrote:
>
> I have a dtml-var tag that is being repeated over and over inside of a dtml-in
> tag. I would like the client to be able to custimize the maximum amount of
> text output they see, so i did something like the following:
>
> <dtml-var "item['title']" size="getTitleLen()">
>
> Where getTitleLen is a method which returns an integer of how many characters
> max the title is to be. However, when i have this dtml method rendered, i
> get the following error:
>
> a size attribute was used in a var tag with a non-integer value.
Looks like you'll need to patch lib/python/DocumentTemplate/DT_Var.py to
get this working.
326,328c326,331
< except: raise 'Document Error',(
< '''a <code>size</code> attribute was used in a
<code>var</code>
< tag with a non-integer value.''')
---
> except:
> try: size=atoi(str(md[size]))
> except:
> raise 'Document Error',(
> '''a <code>size</code> attribute was used in a <code>var</code>
> tag with a non-integer value.''')
After this patch, you can use normal numeric literals, or you can use
values from the namespace.
Here's an example:
index_html dtml-method:
----
<dtml-var standard_html_header>
<h2><dtml-var title_or_id></h2>
<p>
This is the <dtml-var id> Document.
</p>
<dtml-var "'Hello world'" size="getLen">
<dtml-var standard_html_footer>
----
getLen dtml-method:
----
<dtml-return "5">
----
--
Steve Alexander
Software Engineer
Cat-Box limited