Informática Numaboa - Tutoriais e Programação
Componente 1.5 MVC - Frontend
Dom 20 Jan 2008 23:37 |
- Detalhes
- Categoria: Joomla
- Atualização: Segunda, 02 Julho 2012 19:28
- Autor: vovó Vicki
- Acessos: 20937
Criando o controlador
Nosso componente, por enquanto, tem apenas uma função - colocar "Olá pessoal!" na tela. Para fazer apenas isto, vai precisar de um controlador muito simples. Como ainda não é necessário manipular dados, o controlador só precisa carregar a vista apropriada. Por este motivo, precisamos apenas do método display( ) e, como tudo o que precisamos já está na classe JController, a única coisa a ser feita é chamar o método JController::display( ).
Aqui está o código do controlador.php:
Depois do código de segurança testando _JEXEC, a primeira coisa a fazer é importar um arquivo do framework que é necessário para nosso componente. O arquivo em questão é libraries/joomla/application/component/controller.php que é incluído no nosso script através da função jimport. Os pontos '.' no parâmetro são usados como separadores de diretórios. Este arquivo contém todas as definições da classe JController, o que é necessário para poder estender esta classe.
O construtor JController sempre registra uma tarefa display( ) e, se não for especificado de outra forma (usando o método registerDefaultTask( ) do JController), esta tarefa é a default. Por este motivo, a função display( ), que apenas chama a mesma função da classe mãe, nem precisaria estar no nosso controlador... é chover no molhado. Mesmo assim, vamos deixá-la aí para mostrar o que o nosso controlador está fazendo.
O método JController::display( ) determina o nome da vista e do layout através da solicitação feita. Com esta informação ele carrega a vista apropriada e esta é arrumada de acordo com o que for especificado no layout. No nosso componente temos apenas uma vista chamada ola e apenas um layout, o default.
Criando a vista
A tarefa da vista também é muito simples: ela busca os dados que devem ser apresentados e os coloca no template usando o método JView::assignRef( ).
O código da vista view.html.php é:
Primeira providência: importar a classe JView para que possamos estendê-la.
Aqui novamente a convenção de nome da classe: nome do controlador (Ola) + tarefa (View) + nome (diretório) da vista (Ola) ou seja, nossa classe precisa chamar-se OlaViewOla (não existe diferença entre maiúsculas e minúsculas, mas não use espaços ou letras acentuadas!).
Nossa classe estende a classe JView com uma função display( ). Esta função pode receber um parâmetro, o $tpl. Se for chamada sem o parâmetro, $tpl será null e, se $tpl=null, o template default.php será utilizado.
Nesta função criamos a variável $falaOla e lhe atribuímos o valor 'Olá pessoal!'. A seguir, colocamos no OlaViewOla (que nada mais é do que o JView ampliado) a referência 'saudacao' cujo valor deve ser o mesmo da variável $falaOla com $this->assignRef( 'saudacao', $falaOla ). Esta referência é uma nova propriedade da classe.
Tudo pronto! Agora chamamos a classe mãe para jogar o template na tela com parent::display($tpl).