Informática Numaboa - Tutoriais e Programação
Componente 1.5 - Tabela de Dados
Sab 19 Jan 2008 22:51 |
- Detalhes
- Categoria: Joomla
- Atualização: Segunda, 02 Julho 2012 19:27
- Autor: vovó Vicki
- Acessos: 13924
Nesta quarta etapa do Componente 1.5 vamos aprender como criar uma tabela na base de dados do Joomla para armazenar informações referentes apenas ao componente "Olá Pessoal".
Índice da série de tutoriais Componente 1.5
- Componente 1.5 - O basicão
- Componente 1.5 - Como registrar
- Componente 1.5 - Barra de Ferramentas
- Componente 1.5 - Tabela de Dados
Três métodos para criar uma tabela
Podemos criar a tabela na linha de comando do console, usando um gerenciador de banco de dados via web (como o PHPMyAdmin) ou através do arquivo de instalação do componente.
Se você tem acesso direto ao banco de dados, execute a seguinte query na linha de comando do console (se o prefixo das suas tabelas forem jos_):
Se você tiver um gerenciador, use-o para criar uma tabela com os mesmos campos citados na query.
Se você não tiver nenhum dos dois, só resta criar a tabela através do arquivo xml de instalação:
Veja que as queries para criar a tabela jos_ola foram colocadas na seção <install>, subseção <queries>. Você pode usar quantas queries forem necessárias para criar uma ou mais tabelas.
Observe que foi inserida uma query para eliminar a tabela quando o componente for desinstalado. É uma boa prática e uma questão de respeito com outros usuários não deixar tabelas inúteis na base de dados.
Volto a repetir: cuidado com os backticks ( ` ) para os nomes dos campos e tabelas e com as aspas simples ( ' ) para os valores!
Cuidado com a sintaxe do xml. Qualquer errinho e o Joomla vai dar uma mensagem de erro de que não encontrou o arquivo de instalação (não diz que existe um, mas que tem erros) ou uma mensagem de query com problemas.
Aproveitando o embalo, já que estamos mexendo no script de instalação, resolvi incluir o script mostrado a seguir e dar uma ordem nos diretórios. Na máquina local criei o diretório admin para colocar os scripts e os novos diretórios da área administrativa. A árvore agora está assim (os diretórios são mostrados entre colchetes):
[com_ola] | |- [admin] | |- [tables] | |- ola.php |- admin.ola.php |- toolbar.ola.html.php |- toolbar.ola.php |- ola.php |- ola.xml
Para atender a nova disposição dos arquivos, no marcador da seção <
Criando uma classe tabela
Podemos escrever uma classe com os métodos necessários para adicionar, atualizar ou deletar dados na nossa tabela jos_ola, como também podemos aproveitar o que já existe no framework do Joomla e tornar as coisas muito mais fáceis. Para isto, vamos criar um "filhote" da classe JTable, ou seja, vamos apenas estender esta classe e fazê-la trabalhar para nós.
Crie um diretório em /administrator/components/com_ola/ (ou em /com_ola/admin/ se estiver trabalhando localmente) com o nome tables. Entre em /administrator/components/com_ola/tables/ (ou /com_ola/admin/tables/) e crie o script ola.php:
Parece uma sopa de letrinhas? Não se preocupe, aqui vai a explicação. Criamos a classe TabelaOla estendendo a classe JTable. JTable é mais uma das classes do framework do Joomla, com uma porção de métodos para lidar com tabelas prontinhos para ser usados.
Depois disto criamos e instanciamos uma variável para cada campo da tabela.
A seguir criamos o método __construct que tem como parâmetro um referência ao objeto $db (a referência é indicada pelo &).
A única coisa que este método faz é construir uma instância da tabela jos_ola para que possamos acessá-la de qualquer ponto do nosso código (que ainda está para ser escrito - veja os próximos tutoriais da série).
Sei que tudo isto parece meio tenebroso, mas console-se: no começo é assim mesmo, depois vira arroz com feijão
Finalmentes
Para instalar o novo componente com a sua tabela:
- desinstale a versão anterior.
- verifique se o diretório /components/com_ola/ e o diretório /administrator/components/com_ola/ foram totalmente eliminados. Se não foram, faça-o na mão.
- reinstale o componente com este novo script xml e o novo arquivo.
Você pode fazer o download do pacote de instalação se quiser facilitar as coisas.