Antes de mais nada, Obrigado!

Resolveu o problema!

Mas ficou uma duvida na seguinte linha:

<table tal:replace="structure context/teu_hammer_script" />

O 'tal:replace' eu entendi, mas como o structure funciona? O que na 
prática ele faz é evitar que aparecam caracteres &lt; e &gt; (não 
estava havendo renderização do resultado antes, mas agora renderiza 
ok). Ou seja, o que o structure faz?

E por último... mas não é o fim... temos:

<table tal:define="objetos context/objectValues">
  <tr tal:repeat="objeto objetos">
    <td tal:content="objeto/Title">Titulo</td>
  </tr>
</table>

Não é possivel colocar no lugar de objectValues uma lista vinda de um 
script python que possa ser acessada pelo indice? Como por exemplo:

<table tal:define="objetos context/lista_de_strings_python">
  <tr tal:repeat="objeto objetos">
    <td tal:content="objeto[0]">Titulo</td>
  </tr>
</table>

onde objeto[0] seria a primeira string da lista de strings. Isto não 
poderia funcionar? Que código funcionaria se não este?

Grato antecipado,

João

---------------------------------------------------------------

--- Em zope-pt@yahoogrupos.com.br, "Rodrigo Castardo" 
<[EMAIL PROTECTED]> escreveu
>
> 2008/4/14 jgbalb <[EMAIL PROTECTED]>:
> >
> > Senhores,
> 
> Opa!
> 
> > tenho um script python que me devolve uma tabela em html
> > (<TABLE>) com conteudos nos TD´s (<td>). Preciso que esta tabela
> > apareça em uma página Plone. Como posso fazer isto?
> 
> 
> Bom, conceitualmente sua tabela deve ser exibida por um template 
(Page
> Template, vc vai ver mta gente tratando como ZPT). E nele eh q 
deveriam ser
> exibidas as informacoes.
> 
> Nao misture a camada de exibicao (seu futuro template) como o a 
camada
> logica, seu script. O script foi feito apenas para fazer logica, e 
nao para
> aprensentar conteudo okay?
> 
> No seu template, vc resolve isso facil com o seguinte:
> 
> <table tal:define="objetos context/objectValues">
>  <tr tal:repeat="objeto objetos">
>    <td tal:content="objeto/Title">Titulo</td>
>  </tr>
> </table>
> 
> onde:
> 
>    - tal:define - define variaveis
>    - context/objectValues eh a lista de valores que vc deseja iterar
>    - tal:repeat - eh o loop
>    - tal:content - preenche a tag HTML onde estah contido (no caso 
a td),
>    pela expressao que recebe (objeto/Title no caso)
> 
> Detalhe importante, nao use objectValues, ele instancia todos os 
objetos
> listados, isso eh caro pro Zope (App Server)!
> 
> Se estiver naquele famoso "um dia de furia" e mesmo assim quiser 
descer a
> loja de marreta ... ai teu script retorna a tabela e no teu 
template vc dah
> um:
> 
> <table tal:replace="structure context/teu_hammer_script" />
> 
> onde:
> replace substitui a tag HTML onde estah contido (table no caso), 
pelo
> resultado da expressao recebida
> 
> O structure aqui eh para reenderizar teu HTML e nao exibir ele como 
strings.
> 
> Lembrando que isto nao deve ser feito! (mas jah ouvo o barrulho da 
marreta
> rs)
> 
> Se nao souber como colocar seu template com aquela cara Plone:
> 
> <html metal:use-macro="context/main_template/macros/master">
> 
>   <body metal:fill-slot="main">
> 
>    seu codigo aqui
> 
>   </body>
> 
> </html>
> 
> Mas macros (caso vc ainda nao conheca) eu deixo pra vc aprender 
sozinho ;)
> 
> Boa sorte, abraco!
> 
> > Grato antecipadamente,
> >
> > João
> >
> > 
> 
> 
> 
> -- 
> Castardo
> ThreePointsWeb
> [EMAIL PROTECTED]
> +55 61 8162-2072
>


Responder a