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 < e > (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 [email protected], "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
>