Publicidade (Anuncie Aqui)

Open Search: Adicionando a Busca Rápida no seu site

Open Search: Adicionando a Busca Rápida no seu site

Fala gente,

Semana passada falei sobre a busca rápida (ou Open Search)… Muita gente ficou interessada em como poderiam incluir esse recurso em seus sites então eu fiz um scriptzinho pra facilitar a vida de vocês.

Pra você poder usar esse recurso no seu site o mesmo precisa ter suporte a busca via método GET… Método GET é quando os parâmetros são enviados na URL, veja o exemplo do Google:

http://www.google.com.br/search?q=Thiago+Belem

Aquela parte no fim onde tem “?q=” significa que o parâmetro “q” está sendo passado por método GET, caso contrário você não veria nada na URL.

O que realmente importa é se o que foi buscado aparece na URL da pagina que mostra os resultados de busca, não importa como ou em qual posição… Faça uma busca aqui no blog e você verá que, o que você buscou, aparece na URL.

Sem mais baboseiras, vamos direto ao ponto:

Primeiro você precisa inserir um código HTML dentro do <head> do seu site que irá avisar os outros sites, sistemas e navegadores que o seu site tem um Open Search:

<link rel="search" type="application/opensearchdescription+xml" href="http://www.meusite.com.br/opensearch.php" title="Meu Site" />

Perceba que o código está apontando pra um arquivo opensearch.php, o nome do arquivo não importa, mas o seu conteúdo sim:

<?php
/**
 * Gerador de busca 'open search' para sites
 *
 * @author Thiago Belem <contato@thiagobelem.net>
 * @version 1.0
 * @require PHP 5.1.3+
 */

$_CONFIG = array(
	'site_nome' =>			'Meu Site',
	'site_nome_longo' =>		'Meu Site Legal',
	'busca_descricao' =>		'Busque no Meu Site',

	'email_contato' =>		'contato@meusite.com.br',

	'endereco_busca' =>		'http://meusite.com.br/busca.php?q={searchTerms}',

	'imagem_icone' =>		'http://meusite.com.br/open_search.jpg',
	'imagem_tamanho' =>		array(16, 16),
	'imagem_mimetype' =>		'image/jpg',

	'conteudo_adulto' =>		false,
	'linguagem' =>			'pt-br'
);

// --------- Aqui você pode parar de editar :] ---------

header('Content-Type: text/xml; charset=UTF-8');

$xml = new SimpleXMLElement('<OpenSearchDescription></OpenSearchDescription>');
$xml->addAttribute('xmlns', 'http://a9.com/-/spec/opensearch/1.1/');

$xml->addChild('ShortName', $_CONFIG['site_nome']);
$xml->addChild('LongName', $_CONFIG['site_nome_longo']);
$xml->addChild('Description', $_CONFIG['busca_descricao']);

$xml->addChild('Contact', $_CONFIG['email_contato']);

$url = $xml->addChild('Url');
$url->addAttribute('type', 'text/html');
$url->addAttribute('template', $_CONFIG['endereco_busca']);

$imagem = $xml->addChild('Image', $_CONFIG['imagem_icone']);
$imagem->addAttribute('width', $_CONFIG['imagem_tamanho'][0]);
$imagem->addAttribute('height', $_CONFIG['imagem_tamanho'][1]);
$imagem->addAttribute('type', $_CONFIG['imagem_mimetype']);

$xml->addChild('AdultContent', ($_CONFIG['conteudo_adulto'] ? 'true' : 'false'));
$xml->addChild('Language', $_CONFIG['linguagem']);

$xml->addChild('SyndicationRight', 'open');

echo $xml->asXml();
exit;
?>

Agora preste atenção no bloco de configuração no começo do arquivo!

Dê atenção a parte que tem “endereco_busca”… É ali que você precisa colocar a URL da sua página de busca (resultado de busca) e colocar {searchTerms} no lugar que irão os parâmetros de busca… Vamos voltar ao exemplo da busca do Google:

Se eu buscar por “Thiago Belem” a url de resultado vai ficar mais ou menos assim:

http://www.google.com.br/search?q=Thiago+Belem

Então, criando um open search pra essa mesma busca do Google, teríamos isso na parte “endereco_busca”:

http://www.google.com.br/search?q={searchTerms}

As outras opções são fáceis de entender…

Pra quem gostou e quer saber mais: http://www.opensearch.org/

Espero que tenham gostado! :)

Você também vai gostar de ler:

Postado em PHP, Tutoriais

Com as tags , , , , , , , , , , , , , , , , , , , , , , ,

Escrito por Thiago Belem

Gostou desse artigo?

Não se esqueça de assinar o RSS e divulgue-o para o mundo:

View Comments

  1. Gabriel disse:

    Poxa eu queria tanto utilizar esse código em meu site mas não tenho a mínima idéia de onde colocar isso…
    Antes de publicar meu site queria que ele estivesse todo organizado usando php mas só sei usar dhtml e javascript
    parece muito difícil, mas eu precisava muito =\

  2. Ricardo Belfort disse:

    E ai thiago, blz

    Cara estou aprendendo a usar PHP para melhorar os meus sites e ainda tenho algumas dificuldades em usar esse scripts em PHP.

    Eu não intende em que lugar da página eu tenho que colocar esse código, vc poderia me ajudar??

    Essa é uma das dúvidas que surgem para quem é iniciante em php, e já tive dúvidas iguais com outros scripts seus.

    Vc poderia me ajudar? Eu criei um arquivo opensearch.php e já inseri aquela tag HTML na página antes do . Agora eu tenho que criar mais um arquivo busca.php para exibir o resultado da busca??

    • Thiago Belem disse:

      @Ricardo
      Esse artigo apenas ensina a ligar o Open Search a busca do seu site que, claro, já deveria existir antes… Ele não é um sistema de busca. A unica coisa que esse recurso faz faz é transferir o que foi digitado (no campo de busca do navegador) para a URL de busca do seu site.

    • Ricardo Belfort disse:

      Intende. Obrigado!

  3. Gabriel Lau disse:

    Daew Thiago, muito bacana esse recurso de busca… ajudaria bastante no meu site, mas tem uma coisa: a minha página de busca, utiliza vários parâmetros para fazer a busca, (seria uma busca por imóveis, e estes, com várias opções de busca). Tem como adaptar esse script para ele funcionar para qualquer form de busca?

    • Thiago Belem disse:

      @Gabriel Lau
      Infelizmente não… O Open Search funciona apenas em “um campo” de busca… O que você pode tentar fazer é criar um Open Search pra cada uma dessas opções/categorias de busca. :)

  4. Léo disse:

    FalAe!

    Vlw cara, vou tentar aplicar no meu site.

  5. André D. Molin disse:

    Gostei dessa utilidade.
    Vou incluir no meu blog :P

    Abraços thiago!

blog comments powered by Disqus