A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

Componente 1.5 MVC - Frontend

Dom

20

Jan

2008


23:37

(22 votos, média 5.00 de 5) 


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 é:

assignRef( 'saudacao', $falaOla ); parent::display($tpl); } } ?>

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).

Informações adicionais