-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
- --On 8. Dezember 2006 11:55:18 -0800 Javier Subervi <[EMAIL PROTECTED]> wrote: > 2 > > From: Andreas Jung <[EMAIL PROTECTED]> > > >>> - --On 8. Dezember 2006 10:38:25 -0800 Javier Subervi >>> <[EMAIL PROTECTED]> 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 > > You want to generate HTML as a result? You want to use to write ZPT! You want to call external functionalities? You create an external method and call it *from* your ZPT. That's the way to go. - -aj -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Darwin) iD8DBQFFecRlCJIWIbr9KYwRAu5lAKDZU/UTfisFbQ4HU9G5cSOAFigJsQCfWcFb WPZrh6JgQR/qJu2xVqATL/8= =vXTm -----END PGP SIGNATURE----- _______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )