KISS - Keep it simple, stupid!

Gerando HTML 4.01 com o HTML Helper do CakePHP

postado por Fabrício Ferracioli em 15/12/2009 14:21:18

Apesar das melhorias introduzidas no HTMLHelper do CakePHP 1.2, sempre achei ridículo ele gerar marcação apenas em XHTML. Sempre preferi HTML, e me via engessado pelo CakePHP nesse aspecto.

Acredito que muitos passam por essa dificuldade quando estão trabalhando com o HTMLHelper e FormHelper do CakePHP. Uma das principais consequências disso, é que o código gerado na maioria das vezes não é válido, pois mistura tags HTML e XHTML.

Mas sempre imaginei que deveria haver um meio de contornar isso. Certa vez verifiquei que existia um método chamado docType no HTMLHelper, e que era possível definir HTML 4.01 com ele. Mas minha alegria logo acabou quando percebi que ele não alterava o comportamento do Helper para gerar tags HTML.

Finalmente, hoje acabei me deparando com uma alternativa. Cansado de mensagens de código inválido fiz uma leitura mais cuidadosa do manual do CakePHP e encontrei a página que diz como gerar tags HTML 4.01. A solução não é muito elegante, mas é uma alternativa presente no próprio framework.
Espero que a solução sirva para vocês também!

Update 1:Para quem estiver com preguiça de fazer o arquivo do zero, fiz um repositório no Github com o arquivo e algumas tags. Conforme for sentindo necessidade vou aumentar o conteúdo dele. Quem quiser colaborar, está convidado!

Update 2: Apliquei as sugestões do Juan Basso, agora um Helper está disponível para manter as tags HTML 4.01. Vejam a discussão abaixo. O link do Github contínua o mesmo. Mantive o arquivo anterior para quem preferir o método da documentação do Cake.

Tags: , , , , ,
Topo

4 Comentários

Mudar as Tags do HtmlHelper

postado por João José Pedrini em 10/02/2009 03:03:04
Tags: ,

Não sei se todos sabem, mas quando vocês utilizam o HtmlHelper para escrever seus códigos HTML o CakePHP utiliza um conjunto de padrões de estrutura de Tags. Um exemplo seria: ‘textarea’ => ‘<textarea name=”%s”>%s</textarea>’

O que não é tão trivial é que há uma maneira simples de se alterar estas Tags como mostra o Blog Cake a Lot. O conceito é simples e utiliza o AppHelper como princípio. No exemplo ele coloca as modificações dentro da Configuração do CakePHP (o melhor local seria no bootstrap.php), mas poderíamos criar no próprio código.

class AppHelper extends Helper {
	function __construct() {
		if ($this->toString() == 'HtmlHelper') {
			$tags = array('image' => '<img src="http://cdn.domain.com%s" %s/>');
			if (is_null($tags)) $tags = array();
			$this->tags = am($this->tags, $tags);
		}
	}
}

Essa é só uma dica, não sei se pode ser útil para alguém mas sempre é bom conhecer esses truques.

Tags: ,
Topo

Sem comentários

Creative Commons License
Sou Ágil: KISS em http://kiss.souagil.com.br está licenciado sobre
Creative Commons Attribution-Share Alike 2.5 Brazil License.

souÁgil