Aceitando a sugestão do XAngel irei providenciar um artigo bem completo sobre decorators do zend framework. Mas enquanto ele não vem, segue algumas dicas simples e úteis:
Remover todos os decorators do campo:
Na definição do campo no form, adicionar:
->clearDecorators()->addDecorators(array(array('ViewHelper')))
Remover apenas os erros do form:
Na definição do campo no form, adicionar:
->removeDecorator('errors');
Remover apenas os labels:
Na definição do campo no form, adicionar:
->removeDecorator('labels');
Substituir o “dd” por “div”
Na definição do campo no form, adicionar:
->addDecorator('HtmlTag', array('tag' => 'div'));
^^
Posts relacionados:
- Desvendando os Decorators (Zend_form_decorator) – Parte 1 Como sempre tive (e ainda tenho) problemas com os decorators,...
- Zend Framework – Tutorial – Personalizando os decorators php, zend, hospedagem, ajax, programação, tutorial, curso, apostila, site, criar...
- Dica Rápida: Rotas Você ja deve ter percebido que o padrão de url...
8 Comentários Recebidos
March 23rd, 2009 @13:44
Dicas bastante uteis. Aguardando ansiosamente pelo artigo.
March 27th, 2009 @18:31
Cara, me diga uma coisa. Você conhece alguma forma de criar templates (viewscripts) para os formulários, para dar uma ‘full’ customizada no layout dos formulários em Zend?
Sabe, tem vezes que nem utilizando os decorators a distribuição fica conforme o cliente quer.
March 28th, 2009 @20:16
Não sei se entendi bem.
Mas o que eu faço as vezes, quando o form é muito “rebocado” é fazer ele na mão mesmo. Tipo, Crio o Zend_Form normalmente, mas uso ele apenas para validar e pegar os erros server side. O tratamento dos html eu faço tudo manual. No ultimo trampo assim que aconteceu, eu peguei os erros do zend_form (getMessages se não me falha a memoria) e exibi todos acima do formulario (com o getLabel você pega o label do campo).
O que talvez seja interessante para fazer nesses casos, é criar um view helper para cada tipo de campo ou grupos de campos. Daí você consegue fazer esse controle dos erros e das gerações em “blocos”.
Uma outra saída que ja usei também, é usar fieldset. Porque com ele você pode definir um ID, dai pode trabalhar melhor com o css dos campos que estejam la dentro. Fica muito fácil de agrupar e de brincar com eles.
Espero ter dado umas idéias. Ainda não tive tempo de brincar com a criação dos templates dos decorators para saber se é tão flexivel mesmo ou não. Mas tenha fé! hehehe
April 3rd, 2009 @14:36
Olá Nivaldo,
Tudo bem?
Sou jornalista da TIdigital, revista totalmente focada no desenvolvedor web, e para a edição de maio estou escrevendo uma reportagem sobre os 10 frameworks javascript mais populares. Um deles é o Dojo Toolkits e, como vi que você escreveu alguns posts sobre ele em seu blog, gostaria de saber se você poderia colaborar para a matéria, dando informações sobre o Dojo.
Se for de seu interesse, envio algumas perguntas para te ajudar no texto. Não é nada extenso. Aí precisarei também de um mini-currículo seu para te apresentar corretamente na matéria.
Muito obrigada Nivaldo! Desculpe enviar este convite por aqui, mas não consegui achar o seu email que no blog.
Att.,
Flávia Freire
Jornalista
55 21 2253.0596
flavia.freire@arteccom.com.br
http://www.revistatidigital.com.br
http://www.arteccom.com.br
April 3rd, 2009 @17:39
E o blog largado as traças?
April 3rd, 2009 @18:59
@Flavia: Meu email pessoal é nivaldo@gmail.com, mas de qualquer forma, mais a noite eu lhe respondo por ele. Legal a oportunidade. Valeu!
@Saraiva: Que nada, estou com algumas idéias já, mas o problema agora é tempo. Ainda estou tentando me acostumar aos novos horarios, hehe.
April 22nd, 2009 @09:30
Olá amigo, parabéns pelo post.
Aproitando que vc está falando sobre decorator, para que serve o ViewHelper e o Description?
Abraços.
April 22nd, 2009 @11:15
Olá Maurício, obrigo pelo elogio e fique de olho que logo logo sai do forno outro post (dessa vez mais completo) sobre decorators.
Viewhelper é um helper (uma classe com “utilitários”) que você pode acessar direto de sua view. Com ele você pode reaproveitar códigos que são compartilhados por mais de uma view e/ou layout. Vou tentar descolar tempo para terminar o post de decorators e fazer um de viewhelper
Description é um atributo do zend_form. Nele você pode informar uma “descrição” para o seu campo. Mas você pode utilizar ele para passar alguns comandos HTML dentro do form gerado pelo zend. Para isso, você vai precisar de 2 comandinhos (no elemento do seu form).
//desabilita o scape do html
->addDecorator(‘Description’, array(‘escape’ => false))
//insere a descrição
->setDescription(“<b>Olá mundo com html</b>”);
Faça seu Comentário