Re: [Archetypes-devel] accessing fields of Archetypes objects in topic_view.pt
At 02:21 PM 12/18/2003 +0100, you wrote:
I want to list the content of some field of various Archetypes objects in a Topic object. Anyone could tell me how to access the fields from topic_view.pt page template for instance? I have already managed to access them from a custom view template, but since I'm not a programmer, I could't figure out yet how it works from another places.
Thanks: József Jároli
It's pretty easy once you remember (or figure out) that the information you want from the object is likely NOT being stored in the portal_catalog as metadata. So, here's all you do to add another TD to the table and display an AT field called "teaser"... 1. get the topic_view.pt and hit customize 2. find the line just inside the <tbody> tag where it says <metal:block tal:repeat="match batch"> info: That's the start of the part that grabs info from your AT (and any other matching objects). But all it grabs is the metadata from the portal_catalog, and not your interesting field. You need to tell it how to find info from your AT object by using getObject. 3. So add a line like this inside the block <span tal:define="matchobj match/getObject"> and add a matching </span> just before the close of that </metal:block> 4. To get your "teaser", add this line right after the one calling Description: <td tal:content="matchobj/teaser | nothing">Teaser</td> That will grab your teaser from your object. If there's no "teaser" field (as in some non-AT object), it will return nothing, but not an error. Alternatively, you could replace "nothing" with " string:no teaser ". 5. Don't forget to add a matching teaser TH up in the top of the table so that people know what they're looking at: <th> <tal:block i18n:translate="">Teaser</tal:block> </th> Longer term, if this might be a performance barrier, get the portal_catalog metadata to pick up whatever AT fields that you'll need in your Topics. Good luck. =Paul
participants (1)
-
Paul Howell