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() > 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