Criando uma nova ferramenta

Para explicar o funcionamento de uma ferramenta no ambiente, iremos construir passo a passo uma nova ferramenta e incluí-la no sistema, ao lado das demais já existentes. Esta será bem simples, com o intuito apenas de demonstrar a lógica e estrutura de arquivos padrão utilizada, facilitando, assim, o entendimento das outras ferramentas.

1º passo: criação de um diretório para a ferramenta

Por padrão, os arquivos relativos a uma ferramenta são colocados no seguinte diretório:

teleduc4/cursos/aplic/nomedaferramenta/

Vamos criar, então, uma pasta chamada "ferramenta" em teleduc4/cursos/aplic/. Este será nosso diretório base e todos os arquivos criados serão colocados dentro dele.

A estrutura básica de uma ferramenta é composta por 5 arquivos, sendo eles: ferramenta.php, ferramenta.inc, acoes.php, resultado.php e historico.php. Estes arquivos serão explicados mais abaixo.

2º passo: cadastro da ferramenta no banco de dados

No TelEduc, todas os textos são cadastrados no banco de dados ao invés de serem incluídos no código diretamente.
Desse modo, para incluirmos nossa ferramenta e torná-la acessível no ambiente, será necessário alterar 3 tabelas: Lingua_textos, Ferramentas e Menu.

Começaremos pela "Lingua_textos". Como o nome indica, nesta tabela ficam os textos apresentados ao usuário, relacionados a um idioma específico. Iremos adicionar aqui o nome e uma descrição para nossa ferramenta. Note que esta tabela possui 4 campos: cod_texto, cod_lingua, cod_ferramenta e texto. Use para esse exemplo o cod_lingua 1, relativo ao idioma portugûes e cod_ferramenta -4, indicando que são informações relativas à administração externa (nome e descrição da ferramenta). Para decidir qual será o cod_texto, é necessário verificar, no banco de dados, o último valor de cod_texto registrado com cod_lingua = 1 e cod_ferramenta = -4, e então, utilizamos o número seguinte. Neste exemplo, o último registro possuía cod_texto=59, então foram escolhidos os valores 60 e 61 para as novas entradas. Assim, o comando SQL para a inserção (que pode ser feito utilizando phpMyAdmin), no banco de dados TelEduc fica:

INSERT INTO `TelEduc`.`Lingua_textos` (
`cod_texto` ,
`cod_lingua` ,
`cod_ferramenta` ,
`texto`
)
VALUES (
'60', '1', '-4', 'Nova Ferramenta'
), (
'61', '1', '-4', 'Ferramenta de teste para tutorial'
) 

Feito isso, iremos adicionar uma entrada na tabela Ferramentas. Ela registra todas as ferramentas existentes no ambiente. Devemos escolher um cod_ferramenta único, verificando no banco para não utilizar uma já existente, nesse exemplo cod_ferramenta será 31. O cod_texto_nome, e cod_texto_descricao são os números inseridos na etapa anterior, 60 e 61, respectivamente. O campo diretório deve conter o nome da pasta criado no 1º passo, no nosso caso: "ferramenta". O comando SQL para a inserção ficará, então:

INSERT INTO `TelEduc`.`Ferramentas` (
`cod_ferramenta` ,
`cod_texto_nome` ,
`cod_texto_descricao` ,
`diretorio`
)
VALUES (
'31', '60', '61', 'ferramenta'
) 

Sugestão: Podemos tornar a coluna `Ferramentas`.`cod_ferramenta` um campo autoincrement [[http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html]]. Com isso, não precisaremos ficar verificando no banco para não utilizar um código já existente. O insert ficaria assim:

> INSERT INTO `Ferramentas` (
> `cod_texto_nome` ,
> `cod_texto_descricao` ,
> `diretorio`
> )
> VALUES ('60', '61', 'ferramenta'
> )
> 

Agora, a ferramenta já está cadastrada no sistema, o que falta é torná-la acessível no menu principal. Fazemos isso adicionando uma entrada na tabela menu. Inserimos o código da ferramenta, no nosso caso 31, e a ordem na qual desejamos que ela apareça no menu, nesse exemplo na posição 27:

INSERT INTO `TelEduc`.`Menu` (
`cod_ferramenta` ,
`posicao`
)
VALUES (
'31', '27'
)

Com isso, a ferramenta já existe e pode ser vista normalmente no menu principal:

Por padrão, o link do menu principal aponta para um arquivo com o nome da ferramenta, dentro do diretório cadastrado no banco de dados, ou seja: 'teleduc4/cursos/aplic/novaferramenta/novaferramenta.php'. Esse é o arquivo de testes que criamos no primeiro passo, e que deve ser exibido ao clicarmos no link.

Observação: Com o Firefox, pode acontecer de não aparecer a nova ferramenta. Basta limpar a cache (e talvez reiniciar o Firefox) e ela irá aparecer.

3º passo: compondo a ferramenta

Abaixo temos o código básico mais um formulário simples de como é formada uma página padrão do teleduc. Temos os includes necessários(topo_tela.php, menu-principal.php,tela2.php) e como deveremos implementar as tabelas (Externa, Interna e Container). Este código deverá ser escrito em ferramenta.php.

<?php

  $bibliotecas="../bibliotecas/";
  include($bibliotecas."geral.inc");

  $cod_ferramenta=31;

  include("../topo_tela.php");

  include("../menu_principal.php");

  echo("        <td width=\"100%\" valign=\"top\" id=\"conteudo\">\n");

  echo("          <h4>Teste</h4>\n");

  /* <!----------------- Botão Voltar -----------------> */
  echo("                  <ul class=\"btsNav\"><li><span onclick=\"javascript:history.back(-1);\">&nbsp;&lt;&nbsp;Voltar&nbsp;</span></li></ul>\n");

  /* <!----------------- 3 A's - Muda o tamanho da fonte -----------------> */
  echo("          <div id=\"mudarFonte\">\n");
  echo("            <a href=\"#\" onClick=\"mudafonte(2)\"><img src=\"../imgs/btFont1.gif\" alt=\"Letra tamanho 3\" width=\"17\" height=\"15\" border=\"0\" align=\"right\" /></a>\n");
  echo("            <a href=\"#\" onClick=\"mudafonte(1)\"><img src=\"../imgs/btFont2.gif\" alt=\"Letra tamanho 2\" width=\"15\" height=\"15\" border=\"0\" align=\"right\" /></a>\n");
  echo("            <a href=\"#\" onClick=\"mudafonte(0)\"><img src=\"../imgs/btFont3.gif\" alt=\"Letra tamanho 1\" width=\"14\" height=\"15\" border=\"0\" align=\"right\" /></a>\n");
  echo("          </div>\n");

  /* <!----------------- Tabelão -----------------> */
  echo("            <table cellpadding=\"0\" cellspacing=\"0\" id=\"tabelaExterna\"class=\"tabExterna\" width=\"100%\">\n");
  echo("              <tr>\n");
  echo("                <td>\n");

  /* <!----------------- Tabela Interna -----------------> */
  echo("                  <table id=\"tabelaInterna\" cellpadding=\"0\" cellspacing=\"0\" class=\"tabInterna\">\n");
  echo("                      <tr>\n");
  echo("                      <td>\n");

  /* <!----------------- Ferramenta -----------------> */
  echo("                        Conteúdo da nova ferramenta");

  /* <!----------------- Fim Tabela Interna -----------------> */
  echo("                      </td>\n");
  echo("                    </tr>\n");
  echo("                  </table>\n");

  /* <!----------------- Fim Tabelão -----------------> */
  echo("                </td>\n");
  echo("              </tr>\n");
  echo("            </table>\n");

  include("../tela2.php");

  echo("  </body>\n");
  echo("</html>\n");

  ?>

O resultado deve ser algo parecido com isso:

4º passo: os outros arquivos

Na nossa ferramenta, temos também os arquivos ferramenta.inc, resultado.php, acoes.php e historico.php.

ferramenta.inc

Este arquivo irá possuir as funções utilizadas em todos os outros arquivos.
Por exemplo, podemos escrever uma função que retorna uma lista:

function setListaNomes(){
    //array:
    $lista_nomes = array("Amanda","Thais","Cintia","Camila","Bia","Veronica");
    return $lista_nomes;    
}
Esta função poderá ser chamada no arquivo novaferramenta.php da seguinte forma:
/*adiciona-se um include para o arquivo ferramenta.inc*/
include("novaferramenta.inc");

$nova_lista = setListaNomes();

resultado.php

Neste arquivo, geralmente colocamos a mesma estrutura do arquivo ferramenta.php, com a diferença dos dados que serão apresentados na tela.
Para exemplificar, este arquivo pode ser chamado pelo arquivo acoes.php (ver próxima explicação) para mostrar um resultado que foi processado lá.

acoes.php

É neste arquivo que dados são processados, ações do tipo limpar a tela ou excluir algum intem são feitas, e direcionar o que foi processado para uma outra tela.
Ele pode ser chamado por qualquer outro arquivo e redireciona para qualquer outro também.

historico.php

Este arquivo mostra os resultados já obtidos do uso dessa ferramenta.
Assim como em resultado.php, o historico é formado (incluir dados no banco de dados) no arquivo acoes.php

Captura_da_tela-1.png (106,805 KB) Diego Fernandes, 07/08/2009 12:01