At 08:54 AM 6/7/2002 +0200, Robert Rottermann wrote:
Somehow I do  not believe you.
In your case it aoumts to about the same code.
Mabe I do not understand your problem really.
Why donty you send me a dtml-code snippet where your problem is saved the
dtml-way.

OK. Here's the pure-DTML approach:

<table>
<tr>
<th>Title</th><th>Summary</th>
</tr>
<dtml-in objectValues>
<tr>
<td><dtml-var title></td>
<td><dtml-var Summary></td>
</tr>
</dtml-in>
</table>

Now here's the DTML approach where I'm using a Python script to retrieve the records and then feeding them to the page:

<table>
<tr>
<th>Title</th><th>Summary</th>
</tr>
<dtml-in expr="ListAllArticles()">
<tr>
<td><a href="<dtml-var absolute_url>"><dtml-var title></a> </td>
<td><dtml-var Summary></td>
</tr>
</dtml-in>
</table>

Note that I added the URL stuff here, but including it in the earlier example would also be trivial.

What I ended up with in TAL is pretty clean as well. It is simply that while absolute_url is a dtml-var that gets picked up without any extra effort on my part, when I go to TAL and want to use a Python script, as I understand it, I have to stuff the results into a Python list or dictionary to make them work with TAL. So I "lose contact" with the object, as it were, which means I have to grab any information I want about the object *before* I pass to the TAL processing.

My comment about it being more obtuse was based not on what I eventually got working but on the code snippets you were sending, which I had a hard time following, probably because of my relative inexperience.

Robert
----- Original Message -----
From: "Dan Shafer" <pydan@danshafer.com>
To: "Robert Rottermann" <robert@redcor.ch>
Cc: <zope@zope.org>
Sent: Friday, June 07, 2002 8:44 AM
Subject: Re: [Zope] Embedding absolute_url in TAL Syntax


> Thanks, Robert. I'll study these snippets and see if I can make the
> technique work.
>
> Boy, it sure seems that this ZPT/TAL stuff, far from simplifying the
> perceived complexity of DTML, is making things *much* more difficult and
> obtuse. The same code using DTML is quite straight-forward.
>
> 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() &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 )
> > > > >
> > >
> > >
>
> Dan Shafer, Chief Scribe and Tablet Keeper
> PythonCard Open Source Project
> http://pythoncard.sourceforge.net
>
>

Dan Shafer, Chief Scribe and Tablet Keeper
PythonCard Open Source Project
http://pythoncard.sourceforge.net