[Zope] Embedding absolute_url in TAL Syntax

Robert Rottermann robert@redcor.ch
Fri, 7 Jun 2002 07:35:05 +0200


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() &gt; 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 )
> > >
>
>