Ir para conteúdo
Fórum Script Brasil
  • 0

Javascript: Sistemas de buscas


Jhonas55

Pergunta

Olá eu atualmente estou usando o seguinte código para fazer o sistema de buscas.

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 ('');
}
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 style="font-family: arial; font-size: 12px; color: #4d61ff;" href="' + this.url + '" target="_self">' + this.title + '</a><br><font style="color: #0bdb00;">' + this.url + '</font><br>' + this.description + '');
}
function no_entry_printed (the_query) {
    document.writeln ('<font style="font-family: arial; font-size: 12px;">Sua pesquisa - <b>' + the_query + '</b> - não encontrou nenhum documento correspondente.<br><blockquote>Sugestões:<br><li>Certifique-se de que todas as palavras estejam escritas corretamente.</li><li>Tente palavras-chave diferentes</li><li>Tente palavras-chave mais genéricas</li></blockquote</font>'); 
}
function print_intro (the_query) {
    document.writeln ('<center><font style="font-family: arial; font-size: 12px;">Foi encontrado resultados para a sua pesquisa - <b>' + the_query + '</b></font></center><br>'); 
}
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 ();

the_entries[0] = new entry ("http://tecnewsoft.pcriot.com/downloads.php", "<div class='results'>Downloads ", "baixar, downloads, jogos, programas, softwares", "Baixe arquivos, jogos ou programas nesta página, sem risco de serem vírus, pois eles são testados antes.</div><br>");
the_entries[1] = new entry ("http://tecnewsoft.pcriot.com/news.php", "<div class='results'>Notícias", "news, noticias, recentes, novo", "Conheça os novos softwares disponíveis, e as notícias recentes do site.</div><br>");
the_entries[2] = new entry ("http://tecnewsoft.pcriot.com/videos.php", "<div class='results'>Vídeos", "videos, recente, tutorial, imagens", "Assista os vídeos mais recentes do site.</div><br>");
the_entries[3] = new entry ("http://www.baixaki.com.br/download/warzone-2100.htm", "<div class='results'>Warzone 2100", "war, zone, warzone, alpha, 2100, game, games, jogo", "Reconstrua o mundo livre e democrático após um holocausto nuclear que varreu a humanidade da Terra.</div><br>");
the_entries[4] = new entry ("http://www.baixaki.com.br/download/battle-tanks-ii.htm", "<div class='results'>Battle Tanks II", "battle, tank, game, jogo, 2, games, battle tank", "Volte à Segunda Guerra Mundial e participe de combates de tanques brutais entre diversas nações.</div><br>");
the_entries[5] = new entry ("http://www.baixaki.com.br/download/assault-cube.htm", "<div class='results'>Assault Cube 1.0.4", "assault, cube, jogo, game, tiro, FPS", "Escolha uma facção e participe de um combate no estilo do CS com muito sangue e morte.</div><br>");
the_entries[6] = new entry ("http://tecnewsoft.pcriot.com/contact-us.php", "<div class='results'>Contatar", "contact, contatar, mensagens, enviar", "Informe problemas que ocorreram neste site, ou uma simples mensagem com a sua opinião.</div><br>");
the_entries[7] = new entry ("http://tecnewsoft.pcriot.com/publish_software.php", "<div class='results'>Publique seu software", "publicar, enviar, upload, arquivo, arquivos, programas, programa", "Publique seu software na página de downloads do site, gratuitamente.</div><br>");
the_entries[8] = new entry ("http://tecnewsoft.pcriot.com/login_page.php", "<div class='results'>Tecnew Soft - Login", "login, entrar, registrar, site, membros", "</div><br>");
the_entries[9] = new entry ("http://tecnewsoft.pcriot.com/register.php", "<div class='results'>Registro gratuito", "registro, registrar, entrar, site", "Registre-se e faça login no site gratuitamente.</div><br>");
the_entries[10] = new entry ("http://www.tecnewsoft.pcriot.com/pages/files/Phoenix_Video_Player.zip", "<div class='results'>Phoenix Vídeo Player", "reprodutor, video, phoenix, player, audio", "Assista seus vídeos favoritos e ouça suas melhores músicas com Phoenix Video Player.</div><br>");
the_entries[11] = new entry ("http://www.baixaki.com.br/download/mission-against-terror.htm", "<div class='results'>Mission Against Terror", "mission, against, terror, tiro", "Novos mapas e modos de jogo aterrorizam a caçada aos monstros! Junte-se à guerra contra o terrorismo e detone monstros de verdade.</div><br>");
the_entries[12] = new entry ("http://www.baixaki.com.br/download/cross-fire.htm", "<div class='results'>Cross Fire", "cross, fire, fps, tiro, jogo, game", "Não marque bobeira! Escolha seu time e entre em combate no melhor estilo CS.</div><br>");

var entry_num = 13;
var max_keywords = 20;
var points_title = 2;
var points_keywords = 2;
var points_description = 1;
begin_search ();

Mas eu queria separar os resultados em páginas, queria que aparecesse apenas 10 resultados em cada página. Se alguém souber fazer isso em PHP sem usar MySQL me avisa.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...