Busca - Como integrar sua ferramenta

A ferramenta de busca serve para o usuário buscar algo em alguma ferramenta.
Seus arquivos são relativamente simples, são eles: busca.inc, busca.php e busca2.php.

busca.php define a página inicial onde aparecem os checkbox e os nomes das ferramentas. busca2.php define as buscas específicas em cada ferramenta selecionada.

Assim que você cria uma ferramenta nova, ela já aparece na página principal da busca, porém, não conseguirá achar nada nela por enquanto. Para isso precisamos alterar a página busca2.php.

Vamos colocar aqui dois exemplos: como foi colocada a ferramenta Forum e a ferramenta Correio em busca2.php:

Forum:

 case 9:
          $tabela="Forum_mensagens";
          $par1='mensagem'; $par2='titulo';
          $busca=RetornaBusca($sock,$cod_curso,$cod_usuario,$texto,$tabela,$par1,$par2);

          if (count($busca)>0)
            foreach ($busca as $cod => $retorno)
            {
              $cont++;
              $pagina="../forum/ver_forum.php";
              $parametros="?cod_curso=".$cod_curso."&cod_msg=".$retorno['cod_msg']."&cod_msg_pai=".$retorno['cod_msg_pai']."&cod_forum=".$retorno['cod_forum']."&status=".$retorno['status']."&cod_ferramenta=".$ferramenta;
              $pagina_item=$pagina.$parametros;
              // F 19 - F�runs de Discuss�o
              $resultado[$cont-1]="<b>".$cont." - </b><a href=\"".$pagina_item."\">" 
                  .RetornaFraseDaLista($lista_frases_ferramentas, 19)." - ".FormataSaida($retorno['titulo'],$texto)."</a>\n";
              $resultado[$cont-1].="<br />\n";
              $resultado[$cont-1].=FormataSaida($retorno['mensagem'],$texto)."\n";
            }
        break;

Em cada case temos o código da ferramenta do banco de dados. Neste caso, o código da ferramenta Fórum no banco de dados é 9, então temos case 9. Em $tabela, especificamos o local que será feita a busca. $par1 e $par2 indicam os campos, no caso, em Fórum mensagens há os campos "mensagem" e "titulo".

Outra coisa específica para a ferramenta Fórum é a indicação da $pagina, que no caso recebeu o caminho "../forum/ver_forum.php". E a última mudança está em $retorno, que deve ter como indexação "cod_forum".

Correio:

case 11:
          $tabela="Correio_mensagens";
          $par1='mensagem'; $par2='assunto';
          $busca=RetornaBusca($sock,$cod_curso,$cod_usuario,$texto,$tabela,$par1,$par2);

          if (count($busca)>0)
            foreach ($busca as $cod => $retorno)
            {
              $cont++;
              $pagina="../correio/correio.php";
              $parametros="?cod_curso=".$cod_curso."&amp;cod_msg=".$retorno['cod_msg']."&amp;cod_ferramenta=".$ferramenta;
              $pagina_item=$pagina.$parametros;
              // F 23 - Correio
              $resultado[$cont-1]="<b>".$cont." - </b><a href=\"".$pagina_item."\">".RetornaFraseDaLista($lista_frases_ferramentas, 23)." - ".FormataSaida($retorno['assunto'],$texto)."</a>\n";
              $resultado[$cont-1].="<br />\n";
              $resultado[$cont-1].=FormataSaida($retorno['mensagem'],$texto)."\n";
            }
        break;

Aqui, temos case 11, pois 11 é o codigo da ferramenta Correio. Depois, altera-se $tabela para "Correio_mensagens" que é onde irá ser feita a busca. $par1 e $par2 recebem os campos da busca. $pagina tem o caminho "../correio/correio.php" e $retorno tem a indexação de "cor_msg".

Repare que a estrutura de cada caso é muito semelhante, apenas algumas variáveis são alteradas.

Então, para uma nova ferramenta, praticamente basta colocar mais um case no switch e depois alterar as variáveis $tabela, $par1 e $par2 (se tiver ambos, pois pode acontecer de ter apenas um), $pagina e $retorno.