Informática Numaboa - Tutoriais e Programação

Componente 1.5 MVC - Interface Admin

Seg

21

Jan

2008


20:42

  • Imprimir
(15 votos, média 5.00 de 5) 


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:

execute( JRequest::getVar( 'task' ) ); // Redireciona de acordo com a tarefa $controlador->redirect(); ?>

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:

_dados )) { $query = $this->_fazQuery(); $this->_dados = $this->_getList( $query ); } return $this->_dados; } } ?>

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:

get( 'Dados' ); $this->assignRef( 'itens', $itens ); parent::display($tpl); } } ?>

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:

itens ); $i < $n; $i++) { $row =& $this->itens[$i]; ?> ">
id; ?> mensagem; ?>

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" smile


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:

DROP TABLE IF EXISTS `#__ola`; CREATE TABLE `#__ola` ( `id` int(11) unsigned NOT NULL auto_increment, `mensagem` text NOT NULL default '', `published` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; INSERT INTO `#__ola` (`mensagem`) VALUES ('Bom te ver!'), ('Boas vindas!'), ('Oi!');

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:

DROP TABLE IF EXISTS `#__ola`;

O arquivo xml

Ola 21.01.2008 vovó Vicki Creative Commons webmaster arroba numaboa.com.br www.numaboa.com 1.3 J1.5 RC4 Creative Commons by-nc-sa Componente simples para dizer Olá pessoal! index.html ola.php controlador.php views/index.html views/ola/index.html views/ola/view.html.php views/ola/tmpl/index.html views/ola/tmpl/default.php models/ola.php instala.utf.sql desinstala.utf.sql Olá Pessoal index.html admin.ola.php controlador.php instala.utf.sql desinstala.utf.sql models/index.html models/olas.php views/index.html views/olas/index.html views/olas/view.html.php views/olas/tmpl/index.html views/olas/tmpl/default.php

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:

Interface Administrativa
Fig. 1 - Interface Administrativa

Finalmentes

Ufa! Finalmente conseguimos um componente MVC completo biggrin

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.

vovo vovó Vicki

Índice da série de tutoriais Componente 1.5 MVC

  1. Componente 1.5 - Padrão MVCComponente 1.5 - Padrão MVC
  2. Componente 1.5 MVC - Frontend
  3. Componente 1.5 MVC - Frontend II
  4. Componente 1.5 MVC - A tabela
  5. Componente 1.5 MVC - Interface Admin
  6. Componente 1.5 MVC - Funcionalidade admin
  7. Componente 1.5 MVC - Funcionalidade admin II

Referência

Hello World MVC 2 Component - Admin interface

mfx brokerутятница купить в москвесупермаркет класс харьковуличные видеокамерыmfx broker выплатыалександр лобановскийотзовик