Danto sequencia aos nossos posts de desenvolvimento de sistemas dentro do Joomla, temos que falar agora da camada view.
A criação de uma view tem algumas regras.
O seu arquivo .php onde a view será escrita deve obrigatoriamente estar no local
Aplication/components/com_calculadora/views/calculadora/view.html.php
Dentro deste arquivo temos a classe view que deve ser nomeada desta forma:
class calculadoraViewcalculadora JView
Portanto, a nome e endereço do arquivo se define como algo mais ou menos assim:
Dentro da pasta views que devemos criar no mesmo nível de calculadoraController.php
views/[Nome da Nossa View em Letras Minúsculas]/view.html.php
E o nome da nossa classe dentro deste arquivo se dá por
class [Nome da Classe Controle sem 'Controler']View[Nome da View]
Em geral colocamos como nome da view o mesmo nome do controle, por isto calculadoraViewcalculadora.
Apenas aproveitando o gancho da view, nossos templates de view se localizarão em
Aplication/components/com_calculadora/views/calculadora/tmpl/calculadora.php
O endereço deve ser este, dentro da pasta tmpl nas pastas de view, porém o nome do template você pode se sentir à vontada para dar desde que seja minúsculo.
Só para complicar um pouco, mas nem tanto, existe a possibilidade da view e do layout não estarem definidos na URL como dito em posts anteriores. Nestes casos o Joomla carregará utilizando na maioria dos casos as regras que eu defini para vocês (não por coincidência).
Vejam:
Quanto a URL está com View e Layout em branco (http://aplicacao/index.php?option=com_calculadora) os mesmos serão definidos como:
Arquivo de View:
Aplication/components/com_calculadora/views/calculadora/view.html.php
O trexo em negrito ele retira de com_calculadora sem com_
Classe dentro do Arquivo de View:
calculadoraViewcalculadora
Este vem do nome da classe controller sem controller antes e depois da palavra chave View.
O Layout utilizado será localizado dentro de tmpl como eu disse acima, porém se chamará default.php
Esta é a única diferença entre a sintaxe que eu defini acima e a que o Joomla define quando tudo está em branco.
É uma boa prática estruturar seu componente da mesma forma do Joomla, para evitar problemas de carregamento caso os parametros não sejam fornecidos.
Agora, caso você defina tudo na URL, o Joomla carregará do modo que você especifícou, veja:
Para
http://aplicacao/index.php?option=com_calculadora&view=calculadora&layout=calculadora
Você carregará exatamente o primeiro exemplo de view que dei neste post.
Não sei se me fiz entender ou se confundi mais ainda.
A estrutura destas pastas (view e tmpl) que eu disse ser obrigatória pode ser alterada no construtor do Controle (JControll), porém estas são as pastas padrão do mundo todo e não é recomendado ir contra todo o universo.
Pelo menos eu acho que não.
Agora uma pausa nas views, até aqui eu apenas falei da view para que você pudesse entender o modelo que utiliza algumas características da view.
Porém eu não mostrei código nenhum para a view e ainda não mostrarei.
Vamos ao Modelo cuja funcionalidade eu já disse em posts anteriores.
A primeira coisa a se dizer é que o modelo se localiza na pasta models, ao lado da pasta views.
O nome do nosso arquivo de modelo deve ser o mesmo nome da nossa view, no nosso caso calculadora.php dentro de models.
Lembre que o nome da nossa view pode ser especifícado no parametro view e portando o nome do nosso modelo pode vir de lá.
O nome da nossa classe modelo, será:
class calculadoraModelcalculadora JModel
Isto é:
[Nome da Classe Controle sem 'Controler']Model[Nome do Modelo]
E como foi dito o nome do modelo vem da view.
Então para explicar um pouco mais do método display do Controle que eu mencionei lá no terceiro artigo, podemos dizer que o método display carrega a View e o Modelo consequentemente.
Ele também chama o método display da view, entendeu?
O display do controle chama o display da View (Ainda não o escrevemos).
Continuarei em um outro post mais tarde pois este está muito grande.