Informática Numaboa - Tutoriais e Programação

Componente 1.5 - Tabela de Dados

Sab

19

Jan

2008


22:51

  • Imprimir
(13 votos, média 4.54 de 5) 


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

  1. Componente 1.5 - O basicão
  2. Componente 1.5 - Como registrar
  3. Componente 1.5 - Barra de Ferramentas
  4. 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_):

CREATE TABLE `jos_ola` ( `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY, `mensagem` TEXT NOT NULL, `published` TINYINT( 1 ) NOT NULL );

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:

Ola 19.01.2008 vovó Vicki Creative Commons webmaster arroba numaboa.com.br www.numaboa.com 1.1 J1.5 RC4 Creative Commons by-nc-sa Componente simples para dizer Olá pessoal! ola.php Olá Pessoal admin.ola.php toolbar.ola.php toolbar.ola.html.php tables/ola.php 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`) ) TYPE=MyISAM CHARACTER SET `utf8`; DROP TABLE IF EXISTS `#__ola`;

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.

atencao Volto a repetir: cuidado com os backticks ( ` ) para os nomes dos campos e tabelas e com as aspas simples ( ' ) para os valores!

info 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 < < entrou um novo parâmetro, folder="admin", para indicar o diretório base dos scripts da área administrativa.


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 smile

Finalmentes

Para instalar o novo componente com a sua tabela:

  1. desinstale a versão anterior.
  2. 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.
  3. 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.

биография Вадим Логофет купить сковороды полигон ноутбук леноватрубановости про актеровалександр лобановский