terça-feira, 14 de abril de 2009

Alterando o Layout em um único Controller

Toda vez que você precisa setar um componente em todo o controller você pode reescrever o método abaixo:

public function preDispatch()
{
if($this->getViewScript()=="login/index.phtml"){
$this->_helper->layout->setLayout('blank');
} else {
$this->_helper->layout->setLayout('arearestrita');
}
}

preDispatch é uma função que é chamada toda vez que ocorre um Action no Controller e nesse caso está dizendo que todo o controller deve usar um determinado layout a menos que o script seja o index.phtml.

Nesse caso o preDispatch acima está sendo usado em no LoginController de um site. Uma solução bem simples e útil.

2 comentários:

Lucas de Almeida disse...

Ola, estou estudando o zend framework a pouco tempo, minha duvida seria com o Zend ACL e Zend AUTH, voce poderia me mandar um exemplo de seu funcionamento, li seu post anterior sobre Zend que abordava esse assunto, mas nao consegui entender muito bem, se possivel mande em meu email o exemplo sera de grande ajuda, estou grato desde ja.
Obrigado.
Att Lucas Almeida.
Email - lucasalmeidab@gmail.com

Microengenharia disse...

Oi Lucas,

Zend ACL é quando você tem permissões de acesso em seu código e precisa gerenciar essas permissões. Por exemplo: administrador, visitante, etc

Zend Auth gerencia o acesso a área restrita, eu escrevi um post sobre isso agora, veja se ele esclarece suas dúvidas e me mande um email caso precise de mais informações, o post é:

http://zendframeworkphp.blogspot.com/2009/04/implementado-zend-auth-no-zend.html