[Zope] Re: Why doesn't this work?
Javier Subervi
javier_subervi at yahoo.com
Fri Dec 8 14:55:18 EST 2006
2
From: Andreas Jung <lists at ...108>
>> - --On 8. Dezember 2006 10:38:25 -0800 Javier Subervi
>> <javier_subervi at ...112> wrote:
>>
>>> <html>
>>>
>>> But when I try to make it work in an External Method like this:
>>>
>>> stuff = '<html>\n'
>>> stuff = stuff + '<body>\n'
>>> stuff = stuff + '<table width="100%" align="center" class="text"
>>> border="3" cellspacing="5" bgcolor="#E694FE" bordercolor="#D24BFA"
>>> bordercolorlight="#DD77FB" bordercolordark="#C512FA"><tr><td>\n' stuff
>>> = stuff + '<span
>>> metal:use-macro="here/en-us/Quotes/10/macros/quote"></span><br />\n'
>>> stuff = stuff + '<div align="center"><span class="text">\n'
>>> stuff = stuff + ' <a href="All_Quotes.pt" target="_top"><b>Show me all
>>> the quotes!</b></a>\n' stuff = stuff + '</span></div>\n'
>>> stuff = stuff + '</td></tr></table>\n'
>>> stuff = stuff + '</body>\n'
>>> stuff = stuff + '<html>\n'
>>
>> An external method is not a ZPT. The external method returns just HTML.
>> Why and how should Zope treat interpret *something* inside the HTML
>> generated by the external method as macro? If you want a macro, the
>> called object has to be a ZPT - nothing else.
>>
>> - -aj
>
>If you want something different: you must instantiate a Pagetemplate inside
>your external method, add the content through the related API and let the
>pagetemplate render the content. But there is usually no need for such an
>approach. Somehow you're trying to do something the wrong way round.
What I'm trying to do is change the line in question to this:
stuff = stuff + '<span metal:use-macro="here/en-us/Quotes/' + `randrange(1, len(self.objectValues()), 1)` + '/macros/quote"
></span><br />\n'
So it generates a random number. Now, that's the "easy" scenario, and for that I originally had just a Page Template. However, next up I need to be able to accommodate another folder which requires:
1) walking the folder, opening each subfolder
2) creating a tuple of the folder (or numerical representation) plus the number of the quote
3) randomly choosing a quote from all the subfolders
Ideas? Perhaps I should instantiate a page template in the ext. method. How would I do that?
TIA,
Javier
____________________________________________________________________________________
Do you Yahoo!?
Everyone is raving about the all-new Yahoo! Mail beta.
http://new.mail.yahoo.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.zope.org/pipermail/zope/attachments/20061208/3f1b37a4/attachment.htm
More information about the Zope
mailing list