Como alterar os resultados da busca padrão com Views

busca 01

Oi pessoal! Tudo tranquilo com vocês? Espero que sim! Hoje vou abordar um assunto que várias vezes vi gente se contorcendo para fazer: modificar os resultados da busca no Drupal. Fazer isso, na verdade, é uma coisa bem fácil e agora demonstro na prática. Let's vamos!

Todo mundo já deve saber que ao fazer uma instalação com o perfil Standard, temos uma série de coisas pre-configuradas que adianta muito na grande maioria dos desenvolvimentos. Uma dessas coisas é a instalação do módulo search, que nos dá a possibilidade de pesquisar no site através de uma caixa de busca, que nos dá um resultado assim:

busca 01

Beleza! Lembrando que para a busca funcionar, ou melhor, para que os resultados apareçam corretamente, é preciso que o cron esteja rodando constantemente, para que o Drupal possa indexar internamente os conteúdos. Caso haja algum conteúdo publicado que não esteja indexado pelo Drupal, esse não aparecerá nos resultados da busca.

Para modificar a forma de exibição desses resultados, basta criar uma view com display do tipo page e colocar a url como search/node/%, exatamente desse jeito.

busca 02

O que fiz foi uma view da mais simples possível, que exibe títulos, de qualquer tipo de conteúdo que esteja publicado, em ordem de publicação mais recente. Segue a imagem do resultado da busca com a view:

busca 03

O que o Drupal faz? Ao acessar o endereço de busca (search/node/qualquer-coisa), ele sobrescreve o resultado de acordo com o que foi colocado na nossa view. Assim a gente pode colocar o que quiser (imagens, campos, informações do autor e etc) para exibir nos resultados da busca. O caractere porcentegem (%) na url da view é colocado assim para indicar variável e reconhece o que é passado na url da busca, transformando a saída da página. Lembrando que a gente pode aplicar o mesmo método para qualquer página do Drupal, incluindo as administrativas.

Uma das grandes vantagens de usar uma view sobrescrevendo os resultados de busca, além da customização da visualização, é que o conteúdo não precisa estar indexado pelo Drupal para aparecer no resultado, já que a consulta realizada pela busca passa a ser feita pela view. Assim, no mesmo momento em que um conteúdo for publicado, já aparece nos resultados.

Molezinha, né? Agora o restante é com vocês! Sejam criativos e coloquem o resultado como for mais adequado ao projeto. Qualquer dúvida ou questão é só deixar um comentário. Abrasssss :D

UPDATE: De acordo mencionado pelo Coyote nos comentários deste post, é preciso adicionar um filtro contextual: "Buscar: Termos de busca"