[Zope] Embedding absolute_url in TAL Syntax
Dan Shafer
pydan@danshafer.com
Thu, 06 Jun 2002 23:57:58 -0700
Robert, thank you. Your answer gave me the clue that led me to the solution.
When I build the dictionary of each item in the folder, I can get its
absolute_url then using the Python method absolute_url(). I stuff that into
a third entry in the dictionary and now when I write my TAL, it is quite
straightforward:
<table border="1">
<th>Title</th>
<th>Summary</th>
<tbody tal:repeat="item here/ListAllArticlesDict">
<tr>
<td>
<a tal:attributes="href item/url"
tal:content="item/title"></a></td>
<td tal:content="item/Summary">Summary</td>
</tr>
</tbody>
</table>
Works perfectly.
At 07:35 AM 6/7/2002 +0200, Robert Rottermann wrote:
>That probably means, that your item does not have an absolute_url method.
> >From the name of ListAllArticlesDict I assume it is a dictonary. Then of
>course the items do not have an absolute_url.
>Hovever you could get at the "real" object and then use its absolute_url
>like so:
>
><a tal:define="obj python:getattr(here, item['id'])"
> tal:attributes="href obj/absolute_url"
> tal:content="item/title">
></a>
>I assume your dictionary has an entry 'id' with the objects id.
>
>Here is a codesnippet I copied verbatim from one of my scripts that uses
>absolute_url:
><span tal:define="vlist request/vlist | options/vlist | python:[''] *
>here.getNoOfArtikels()"
> tal:omit-tag=""
> tal:repeat="artikel python:here.objectValues('Photo')">
> <tr>
> <td width="100" rowspan="2" valign="top">
> <img alt="bild" style="margin-right:10"
> tal:condition="python:artikel.size() > 0"
> tal:attributes="src python:'%s?display=thumbnail' %
>artikel.absolute_url()">
> </td>
>Robert
>----- Original Message -----
>From: "Dan Shafer" <pydan@danshafer.com>
>To: "Robert Rottermann" <robert@redcor.ch>
>Cc: "Dan Shafer" <pydan@danshafer.com>; <zope@zope.org>
>Sent: Friday, June 07, 2002 2:34 AM
>Subject: Re: [Zope] Embedding absolute_url in TAL Syntax
>
>
> > Thanks, Robert. But that produces a runtime Zope error:
> >
> > Error Type: Undefined
> > Error Value: "absolute_url" not found in "item/absolute_url"
> >
> > For completeness, here's the entire relevant snippet:
> >
> > <tbody tal:repeat="item here/ListAllArticlesDict">
> > <tr>
> > <td>
> > <a tal:attributes="href item/absolute_url"
> > tal:content="item/title"></a></td>
> > <td tal:content="item/Summary">Summary</td>
> > </tr>
> > </tbody>
> >
> > We know that the first line produces the items because if I don't try to
>do
> > the URL, the table displays as expected.
> >
> > At 11:45 PM 6/6/2002 +0200, Robert Rottermann wrote:
> > >In this case you must use tal:attributes
> > ><a tal:attributes="href item/absolute_url" tal:content="item/title"></a>
> > >Robert
> > >----- Original Message -----
> > >From: "Dan Shafer" <pydan@danshafer.com>
> > >To: <zope@zope.org>
> > >Sent: Thursday, June 06, 2002 9:48 PM
> > >Subject: [Zope] Embedding absolute_url in TAL Syntax
> > >
> > >
> > > > OK, now that I have my table of objects produced by a Python script
> > >working
> > > > in ZPT, I need to figure out how to connect an entry in the table to
>its
> > > > URL. What is the TAL equivalent of:
> > > >
> > > > <td><a href="<dtml-var absolute_url>"><dtml-var title></a></td>
> > > >
> > > > It *seemed* like I should be able to code:
> > > >
> > > > <td><a
> > > >
>href="tal:content='item/absolute_url'"><tal:content="item/title"></a></td>
> > > >
> > > > But that creates a compilation error in the TAL HTML Parser. Maybe
>it's a
> > > > quoting thing (which I had sort of hoped would be cleaner in ZPT than
>it
> > >is
> > > > with DTML stuff) but I can't find anything in the docs about using
> > > > absolute_url in TAL, so I'm kinda stuck.
> > > >
> > > >
> > > >
> > > > _______________________________________________
> > > > 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 )
> > > >
> >
> >
Dan Shafer, Chief Scribe and Tablet Keeper
PythonCard Open Source Project
http://pythoncard.sourceforge.net