Re: [zope-pt] Re: Resposta de Formulário

2008-06-08 Por tôpico Luciano Ramalho
2008/6/6 vinicius.osiro [EMAIL PROTECTED]:
Só uma dúvida, do modo como você explicou, o Page Template iria
 perder o contexto e a REQUEST ou estes parâmetros são enviados
 implicitamente?

O PT não perde o contexto e nem o request, porque aquela invocacao
*nao* resulta em um redirect. O que acontece quando um script invoca
um template é que o template é processado e retorna uma string com seu
HTML renderizado. Daí o seu script retorna este HTML. Tudo no contexto
do mesmo request.

[ ]s
Luciano


[zope-pt] Re: Resposta de Formulário

2008-06-06 Por tôpico Edgard Costa
A idéia, a princípio, era tentar algo para facilitar a construção de
resposta.

Para não ter uma construção complicada do tipo:

return 
html
body
sua resposta é: %s
/body/html%resp

Pensei que seria possível alguma sintaxe para embutir no html o script
python da mesma forma que se pode fazer com java ou php. 

Este era o espírito da pergunta.

Fiz, sem embassamento algum, testes. Nada aconteceu

Acho que não é possível outro tipo de sintaxe no zope que não seja o
descrito acima

EdgardCosta





Re: [zope-pt] Re: Resposta de Formulário

2008-06-06 Por tôpico José Henrique
2008/6/6 Edgard Costa [EMAIL PROTECTED]:
 A idéia, a princípio, era tentar algo para facilitar a construção de
 resposta.

 Para não ter uma construção complicada do tipo:

 return 
 html
 body
 sua resposta é: %s
 /body/html%resp

 Pensei que seria possível alguma sintaxe para embutir no html o script
 python da mesma forma que se pode fazer com java ou php.

 Este era o espírito da pergunta.

 Fiz, sem embassamento algum, testes. Nada aconteceu

 Acho que não é possível outro tipo de sintaxe no zope que não seja o
 descrito acima

 EdgardCosta


Claro que é possível retornar código HTML a partir de um script
python.  Mas para que fazer isso quando você tem page templates (ZPT)
para separar a apresentação da lógica?  E se houver algo mais
complicado, a dupla ZPT e script python é mais do que suficiente.

Você também pode usar DTML para uma abordagem mais próxima ao PHP.
Hoje não há muito incentivo para uso dessa ferramenta para a geração
de código HTML, mas ela ainda conta com vários fãs espalhados pelo
mundo.

Zénrique.


[zope-pt] Re: Resposta de Formulário

2008-06-06 Por tôpico vinicius.osiro
Edgard, 

Não sei se entendi completamente seu problema, mas acho que você
pode resolver isso da seguinte forma:

O Python Script seta a resposta na request, e faz o seguinte
retorno, exemplo:

request.set( 'resp', 'aqui vai a resposta' )
return resposta( client=context, REQUEST=request )

Onde resposta pode ser algum DTML Method ou Page Template.
Por fim, neste objeto resposta você faz a construção do HTML e
imprime a variável resp que está na request.

Att,
Vinícius Osiro

--- Em zope-pt@yahoogrupos.com.br, Edgard Costa
[EMAIL PROTECTED] escreveu

 A idéia, a princípio, era tentar algo para facilitar a construção de
 resposta.
 
 Para não ter uma construção complicada do tipo:
 
 return 
 html
 body
 sua resposta é: %s
 /body/html%resp
 
 Pensei que seria possível alguma sintaxe para embutir no html o script
 python da mesma forma que se pode fazer com java ou php. 
 
 Este era o espírito da pergunta.
 
 Fiz, sem embassamento algum, testes. Nada aconteceu
 
 Acho que não é possível outro tipo de sintaxe no zope que não seja o
 descrito acima
 
 EdgardCosta





[zope-pt] Re: Resposta de Formulário

2008-06-06 Por tôpico Edgard Costa
Opa Vinicius

Uma Luz

Obrigado



Re: [zope-pt] Re: Resposta de Formulário

2008-06-06 Por tôpico Luciano Ramalho
2008/6/6 vinicius.osiro [EMAIL PROTECTED]:
O Python Script seta a resposta na request, e faz o seguinte
 retorno, exemplo:

request.set( 'resp', 'aqui vai a resposta' )
return resposta( client=context, REQUEST=request )

Onde resposta pode ser algum DTML Method ou Page Template.
Por fim, neste objeto resposta você faz a construção do HTML e
 imprime a variável resp que está na request.

Se a resposta é um Page Template, existe um jeito melhor do que setar
variáveis no request, que é passar parâmetros nomeados. A ultima linha
do script fica assim:

return resposta(mensagem=Eis a mensagem)

E no template você escreve algo assim:

p tal:content=options/mensagem /


A vantagem de usar parâmetros nomeados é evitar o abuso de variáveis
do request, pois como o request é um objeto global, usa-lo
desnecessariamente é tão ruim quanto usar variáveis globais: pode
gerar bugs difíceis de tratar quando diferentes componentes alteram o
valor global de forma descontrolada.

[ ]s
Luciano


[zope-pt] Re: Resposta de Formulário

2008-06-06 Por tôpico vinicius.osiro
Olá Luciano, 

Só uma dúvida, do modo como você explicou, o Page Template iria
perder o contexto e a REQUEST ou estes parâmetros são enviados
implicitamente?

   Na verdade, eu citei o exemplo de setar na request, porque achava
que se passar por parâmetros nomeados eu perderia o contexto e não
poderia fazer chamadas a outros objetos caso precisasse.

Att,
Vinícius Osiro

--- Em zope-pt@yahoogrupos.com.br, Luciano Ramalho [EMAIL PROTECTED]
escreveu

 2008/6/6 vinicius.osiro [EMAIL PROTECTED]:
 O Python Script seta a resposta na request, e faz o seguinte
  retorno, exemplo:
 
 request.set( 'resp', 'aqui vai a resposta' )
 return resposta( client=context, REQUEST=request )
 
 Onde resposta pode ser algum DTML Method ou Page Template.
 Por fim, neste objeto resposta você faz a construção do HTML e
  imprime a variável resp que está na request.
 
 Se a resposta é um Page Template, existe um jeito melhor do que setar
 variáveis no request, que é passar parâmetros nomeados. A ultima linha
 do script fica assim:
 
 return resposta(mensagem=Eis a mensagem)
 
 E no template você escreve algo assim:
 
 p tal:content=options/mensagem /
 
 
 A vantagem de usar parâmetros nomeados é evitar o abuso de variáveis
 do request, pois como o request é um objeto global, usa-lo
 desnecessariamente é tão ruim quanto usar variáveis globais: pode
 gerar bugs difíceis de tratar quando diferentes componentes alteram o
 valor global de forma descontrolada.
 
 [ ]s
 Luciano