Web Design

Inserir Campo de Busca no site sem banco de dados

Ao criar um site uma das funções que é muito importante e ter um campo de pesquisa, para que o usuário possa encontra o que procura no seu site mais rápido. Muitos sites utilizam banco de dados para o campo de pesquisa, pois sites que tem muito conteúdo geralmente utiliza banco de dados. Se o seu site utilizar um gerenciador de CMS, você não precisa criar um campo de pesquisa, pois maioria já tem, basta que o usuário adicione a função no site. Esse código que utilizei para criar o campo de pesquisa foi feito em java, não precisa saber java para utiliza-lo, basta fazer pequenas alterações para o código funcionar. O primeiro passo e escrever o código de busca onde o usuário irá digitar o que procura.

<form method="GET" action="resultado.html">
 <input type="text" name="query" placeholder="Pesquisar no site" required=""/>
 <input type="submit" value="Buscar"/></form></div>

Esse código acima está com a função de mostrar o resultado em outra pagina do site, quando o usuário digitar algo que procura ele será redirecionado para outra pagina que mostrará o resultado da pesquisa. Abaixo o código que ira realizar as buscas:

 <script language="">
function kw_list ()
{
this.keywords = new Array ();
this.num_words = 0;
this.query = "";
this.original_query = "";
this.query_length = 0;
this.possible_points = 0;
this.multiple = points_title + points_keywords + points_description;
this.get_words = get_query;
this.no_query = no_query_found;
}
function get_query ()
{
this.query = top.location.search.substring (top.location.search.indexOf ('=') + 1);
while ((the_plus = (this.query.indexOf ("+", 0))) != -1)
{
this.query_length = this.query.length;
this.query = this.query.substring (0, the_plus) + " " + this.query.substring (the_plus + 1);
}
this.original_query = unescape (this.query);
this.query = this.original_query.toLowerCase ();
this.query_length = this.query.length;
if (this.query != "")
{
var query_pointer = 0;
var end_word = 0;
var at_end = 0;
while ((this.num_words <= (max_keywords - 1)) && (! at_end))
{
end_word = this.query.indexOf (" ", query_pointer);
if (end_word == query_pointer)
query_pointer++;
else
{
if (end_word >= (this.query_length - 1))
at_end = 1;
if (end_word != -1)
this.keywords[this.num_words] = (this.query.substring (query_pointer, end_word)).toLowerCase ();
else
{
this.keywords[this.num_words] = this.query.substring (query_pointer, this.query_length);
at_end = 1;
}
this.num_words++;
if (query_pointer != -1)
query_pointer = end_word + 1;
if (query_pointer > (this.query_length - 1))
at_end = 1;
}
}
if (this.num_words == 0)
return (0);
else
{
this.possible_points = this.multiple * this.num_words;
return (1);
}
}
else
return (0);
}
function no_query_found ()
{
document.writeln ('<link rel="stylesheet" href="gp.css">');
document.writeln ('<CENTER><P>.</P></CENTER>');
}
function entry (url, title, keywords, description)
{
this.url = url;
this.title = title;
this.keywords = keywords;
this.description = description;
this.points = 0;
this.search_entry = find_keyword;
this.print_entry = print_result;
}
function find_keyword (the_word)
{
var the_title = this.title.toLowerCase ();
var the_keywords = this.keywords.toLowerCase ();
var the_description = this.description.toLowerCase ();
if ((the_title.indexOf (the_word)) != -1)
this.points += points_title;
if ((the_keywords.indexOf (the_word)) != -1)
this.points += points_keywords;
if ((the_description.indexOf (the_word)) != -1)
this.points += points_description;
}
function print_result (possible_points)
{
document.writeln ('<A HREF="' + this.url + '" ="meio">' + this.title + '</A> - ' + this.description + '<br>');
}
function no_entry_printed (the_query)
{
document.writeln ('<link rel="stylesheet" href="gp.css">');
document.writeln ("<CENTER><P> Não há ocorrencia da palavra <U><B>" + the_query + "</B></U>.</P></CENTER>");
}
function print_intro (the_query)
{
document.writeln ("<left><br><p>Os resultados da pesquisa por <U><B>" + the_query + "</B></U> são:</p><br></left>");
}
function begin_search ()
{
var key_list = new kw_list;
var entry_printed = 0;
if (! key_list.get_words ())
key_list.no_query ();
else
{
var counter = 0;
var counter2 = 0;
for (counter = 0; counter < entry_num; counter++)
for (counter2 = 0; counter2 <= (key_list.num_words - 1); counter2++)
the_entries[counter].search_entry (key_list.keywords[counter2]);
for (counter = key_list.possible_points; counter > 0; counter--)
{
for (counter2 = 0; counter2 < entry_num; counter2++)
{
if (counter == the_entries[counter2].points)
{
if (entry_printed != 1)
{
entry_printed = 1;
print_intro (key_list.original_query);
}
the_entries[counter2].print_entry (key_list.possible_points);
}
}
}
if (! entry_printed)
no_entry_printed (key_list.original_query);
}
}
the_entries = new Array ();
//aqui vai as entradas para a pesquisa
the_entries[0] = new entry ("confraternizacao.html", "Confraternizacao", "bola", "Do final do Ano de 2013", "<br>");
the_entries[1] = new entry ("comochegar.html", "Como chegar", "Asdefa", "Na associação dos servidores da delegacia federal de agricultura no Pará",".<br>");
the_entries[2] = new entry ("videos.html", "Videos", "futebol", "Na Asdefa", ".<br>");
the_entries[3] = new entry ("eventos.html", "Eventos", "Fim de ano", "Fotos do evento", "na Asdefa", ".<br>");
the_entries[4] = new entry ("divulga.html", "Divulgue", "Eventos", "Eventos na Asdefa ", "Asdefa", ".<br>");
the_entries[5] = new entry ("missa.html", "Missa de 30° dia de falecimento do Dr. Elwal Falcão Valente", "Elwal Falcão Valente", "Missa ", "Missa", ".<br>");
//abaixo vai o número de entradas existentes
var entry_num = 6; //aumenta de acordo com as obcoes de busca no caso 2 ate agora
var max_keywords = 20; //aumenta de acordo com as obcoes de busca no caso 2 ate agora
var points_title = 2; //aumenta de acordo com as obcoes de busca no caso 2 ate agora
var points_keywords = 2; //aumenta de acordo com as obcoes de busca no caso 2 ate agora
var points_description = 1;
begin_search ();
</script>

Caso necessite adicionar mais busca no código basta aumentar o numero na linha var entry_num = 4, lembrando que o 0 já conta, ou seja se você for adicionar mais um campo Ex: 5 a próxima the_entries[4] terá que ser 4 pois o zero e a primeira [1]. Veja como fica o codigo em funcionamento no site em que utiliza o mesmo Asdefa

2 comentários sobre “Inserir Campo de Busca no site sem banco de dados

  1. I’m truly enjoying the design and layout of your blog. It’s a very easy on the eyes which makes it much more pleasant for me to come here and visit more often. Did you hire out a developer to create your theme? Outstanding work! faakdddebdbb

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *