Informática Numaboa - Tutoriais e Programação
Componente 1.5 MVC - Interface Admin
Seg 21 Jan 2008 20:42 |
- Detalhes
- Categoria: Joomla
- Atualização: Segunda, 02 Julho 2012 19:31
- Autor: vovó Vicki
- Acessos: 17368
Estamos quase no fim desta maratona MVC - só falta criar a interface administrativa, o chamado backend, e o pacote de instalação.
A seção administrativa do componente Ola é necessária para que possamos, no mínimo, fazer a manutenção da sua tabela: adicionar, eliminar, editar, publicar e despublicar mensagens.
O framework básico da área administrativa
O framework básico do painel administrativo é muito parecido com a porção do site. O ponto de entrada principal da seção administrativa do componente é admin.ola.php. Este arquivo é igual ao arquivo ola.php que foi usado para a área do site, com uma exceção: o nome do controlador que ele carrega será OlasController, porque irá tratar de mais de uma mensagem de olá. O controlador default também será chamado de controlador.php e é igual ao controlador da porção do site, também com uma exceção: a classe do controlador será chamada de OlasController para que o ponto de entrada possa incluí-lo. Isto nos obriga a chamar a vista de olas para que possa ser encontrada e apresentar uma lista das saudações.
Disposição dos diretórios e arquivos
administration | |- components | |- com_ola | |- admin.ola.php |- controlador.php |- index.html |- models | |- olas.php |- index.html |- views | |- index.html |- olas | |- view.html.php |- index.html |- tmpl | |- default.php |- index.html
O ponto de entrada
Aqui está o código de admin.ola.php:
O controlador
O modelo Olas
O Modelo Olas será bem simples. A única operação de que necessitamos no momento é a capacidade de obter uma lista de mensagens de olá da base de dados. Esta operação será implementada num método chamado getDados( ).
A classe JModel possui um método protegido chamado _getList( ). Este método pode ser usado para simplificar a tarefa de obter uma lista de registros da base de dados. Só precisamos passar a query e o método retorna a lista de registros.
Pode ser que futuramente seja preciso usar nossa query a partir de outro método. Para preparar o caminho, vamos criar um método privado chamado _fazQuery( ) que retorna a query que será passada para _getList( ). Isto também facilita alterar a query porque tudo é processado num único ponto.
De acordo com este planejamento vamos ter dois métodos na nossa classe: getDados( ) e _fazQuery( ). Logo abaixo explico porque não chamei a função getDados( ) de pegaDados( ). Então o código de olas.php fica assim:
A vista Olas
Já temos o modelo que vai buscar dados para nós, agora precisamos da vista para apresentá-los. Todos os métodos do modelo que começam com get podem ser chamados através do método get( ) da classe JView (motivo pelo qual escolhi o nome de getDados ao invés de pegaDados).
Esta vista possui linhas importantes: uma para buscar os dados do modelo, uma para colocar os dados no template e uma terceira para invocar o método de display para apresentar estes dados.
O código da vista view.html.php fica assim:
O template Olas
Fizemos um template muito simples para a seção do site. Aqui no backend a coisa é um pouco mais elaborada. Veja o código de default.php:
Observe que a saída está num formulário (form). Apesar de não ser necessário no momento, vai ser logo mais adiante. Por isto é melhor já deixar tudo no jeito.
Este é o framework básico da área administrativa. Agora podemos criar um pacote de instalação e finalmente dar uma olhada no nosso componente MVC. Não que ele esteja pronto, mas já está com cara de componente de "gente grande"
O pacote de instalação
O pacote de instalação também tem novidades. É um pouco diferente daquele que vimos até agora. Isto porque faremos uso de uma característica do instalador do Joomla 1.5 que é a capacidade de executar queries armazenadas em arquivos texto durante o processo de instalação.
As queries
Temos três queries no pacote. A primeira elimina a tabela se ela existir; a segunda cria a tabela e a terceira insere alguns dados só para não deixar a tabela vazia. Aqui estão elas:
Estas queries serão salvas num arquivo chamado instala.utf.sql. Você pode escolher o nome que quiser, mas sempre com a extensão .sql.
É de bom tom que, quando o componente for desinstalado, a tabela também seja eliminada da base de dados. Para isto criamos um arquivo chamado desinstala.utf.sql com a seguinte query:
O arquivo xml
Criando o pacote de instalação
Todos os arquivos do pacote devem estar assim distribuídos na sua máquina local:
com_ola | |- ola.xml |- admin | |- admin.ola.php |- controlador.php |- index.html |- models | |- olas.php |- index.html |- views | |- index.html |- olas | |- view.html.php |- index.html |- tmpl | |- default.php |- index.html |- site | |- ola.php | controlador.php |- index.html |- models | |- ola.php |- index.html |- views | |- index.html |- ola | |- view.html.php |- index.html |- tmpl | |- default.php |- index.html
Faça um pacote zip com ola.xml e os diretórios admin e site. Se quiser pegar o pacote prontinho para ser instalado, faça o download de com_ola.1.3.zip.
Instalando o componente
Antes de instalar o novo componente, desinstale qualquer versão anterior. Verifique se os diretórios /components/com_ola e /administrator/components/com_ola foram eliminados; se não, faça-o manualmente. Depois disto, instale o novo componente.
Chame http://www.seusite.com.br/index.php?option=com_ola&view=ola para ver o componente em ação no frontend. Você deve receber a mensagem "Bom te ver!". Faça login na área administrativa e clique em Componentes - Olá Pessoal. A seguinte tela será mostrada:
Finalmentes
Ufa! Finalmente conseguimos um componente MVC completo
Na área administrativa temos uma tabela com os olás existentes na base de dados e os botões - só que estes botões ainda não estão atrelados a nenhuma tarefa. Este será o assunto do próximo tutorial: ativar os botões para que o administrador possa fazer a manutenção da base de dados.
Grande abraço a todos.
vovó Vicki
Índice da série de tutoriais Componente 1.5 MVC
- Componente 1.5 - Padrão MVCComponente 1.5 - Padrão MVC
- Componente 1.5 MVC - Frontend
- Componente 1.5 MVC - Frontend II
- Componente 1.5 MVC - A tabela
- Componente 1.5 MVC - Interface Admin
- Componente 1.5 MVC - Funcionalidade admin
- Componente 1.5 MVC - Funcionalidade admin II
Referência
Hello World MVC 2 Component - Admin interface