• Cadastro
  • Fóruns
  • Manual
  • Tradução
  • Tutoriais
  • OpenAtrium
  • Eventos
  • Ofertas de Emprego
Início

Login do usuário

  • Criar uma conta
  • Recuperar senha

Pesquisa no site

Google

Assine o RSS do Drupal-BR

RSS dos itens mais ativos

RSS do conteúdo

RSS dos comentários

Lista de Discussão

Drupal-BR

Download

Últimas versões

Drupal 7.12Drupal 6.22

Contribuições

Módulos Temas Tradução

Itens ativos

  • Lightbox e thickbox sem efeito algum
  • Sistema de atendimento, similar a suporte por tickets. Webform, Support ticketing system ou outro?
  • Não consigo habilitar o módulo JQueryUI
  • Abrir page_comment.tpl.php no layout admisnitrativo
  • Topic locked - Como configurar advanced forum para evitar isso?
  • Drupal, CMS e sistemas... É possível?
  • Correção de erros em site de vendas
  • Freelance Drupal 7 - $1.000 mensais
  • Proposta de trabalho Tech For/São Paulo- Analista Programador Drupal
  • [Resolvido] Sumiu título de content type
Veja mais
Início » Tutoriais

Tutorial - Customizando a caixa de busca

A caixa de busca é um item do drupal que pode ser habilitado no arquivo 'page.tpl.php' que se encontra no na pasta do tema usado.

A entrada no tema é da forma

<div id="algum id" >
<?php if($search_box): ?>
<?php print $search_box; ?>
<?php endif; ?>
</div>

onde você poderá colocar aonde desejar no arquivo 'page.tpl.php', e ele terá por padrão o layout

caixa de busca

Para mudar esse layout, podemos fazer da seguinte forma:

- copie o arquivo 'search-block-form.tpl.php' que existe na pasta do modulo da caixa de busca que se encontra em 'modules/search' para a pasta do seu tema.
Renomeie esse arquivo para 'search-theme-form.tpl.php'.

- na pasta do seu tema, verifique se existe o arquivo 'template.php', se não existir, crie um. Adicione a esse arquivo o seguinte código:

<?php

// Função para customizar a caixa de busca.
function <nome do seu tema>_preprocess_search_theme_form( &$vars , $hook ) {

  // Para mudar o BLOCO da caixa de busca, você deve renomear essa função para
  // '<nome do seu tema>_preprocess_search_block_form' e usar 'search_block_form'
  // em vez de 'search_theme_form' nas customizações abaixo.

  // Modifica os elementos do form da caixa de busca.
  $vars['form']['search_theme_form']['#title'] = t('');
 
  // Define o valor do texto padrão da caixa de busca.
  $vars['form']['search_theme_form']['#value'] = t('Pesquisar ...');
 
  // Adiciona uma classe customizada á caixa de busca.
  $vars['form']['search_theme_form']['#attributes'] = array('class' => 'NormalTextBox txtSearch','onfocus' => "if (this.value == 'Pesquisar ...') {this.value = '';}", 'onblur' => "if (this.value == '') { this.value = 'Pesquisar ...'; } ");
 
  // Muda o texto do botão 'submit'.
  //$vars['form']['submit']['#value'] = t('Go');

  // Refaz a versão renderizada ( apenas o form de texto, o resto se mantêm inalterado).
  unset($vars['form']['search_theme_form']['#printed']);
  $vars['search']['search_theme_form'] = drupal_render($vars['form']['search_theme_form']);

  $vars['form']['submit']['#type'] = 'image_button';
  $vars['form']['submit']['#src'] = path_to_theme() . '/images/search.jpg';
   
  // Refaz a versão renderizada ( apenas o botão 'submit', o resto se mantêm inalterado).
  unset($vars['form']['submit']['#printed']);
  $vars['search']['submit'] = drupal_render($vars['form']['submit']);

  // Coleta todas os elementos forms para tornar mais fácil a impressão do form como um todo.
  $vars['search_form'] = implode($vars['search']);

}
?>

O código acima basicamente remove o texto "Buscar neste Site", adiciona uma classe customizada para a caixa de texto, muda o botão "Buscar" para uma imagem 'search.jpg' a sua escolha, e adiciona um textinho básico ( nesse caso, vai aparecer "Pesquisar..." ) na caixa de texto que automaticamente some ao se clicar em cima na hora de digitar pra pesquisa.

- no site, vá para 'admin/settings/performance' e limpe o cache do seu drupal e verifique a sua caixa de busca customizada aparece.

O resultado final será o seguinte:

Com a caixa aparecendo e funcionando normalmente, você poderá edita-la no css do seu tema como bem quiser.

Então é isso pessoal, até a próxima se Deus quiser. :D

‹ Tutorial - Criando um site com caixas de notícias acima Tutorial - Mudando a visualização de um node com o Panels ›
Enviado por albertguedes em sex, 04/16/2010 - 16:45
  • 6.x
  • Versão para impressão
  • Se logue ou se registre para poder enviar comentários
  • 8686 leituras

Este site é feito, orgulhosamente, com Drupal. Gentilmente hospedado por HostSH