Destacar palavra-chave pesquisada usando visualizações de filtro expostas?


12

Em uma exibição, eu adicionei um filtro exposto: Pesquisa: Filtro de termos de pesquisa

Funciona bem, mas eu gostaria de destacar a palavra-chave pesquisada nos resultados.

Como eu posso fazer isso?


Você pode usar o arquivo tpl para isso ..
Sumit Madan

Sim, acho que devo usar uma função para substituir a palavra-chave pesquisada. Mas como faço para buscar a palavra-chave pesquisada e se houver mais de uma palavra-chave?
precisa saber é o seguinte

Se você pode usar o jQuery, existe uma pequena maneira complicada de fazê-lo.
Niksmac 3/12/12

sim, pense sobre como obter .. você pode usar jquery como nikhil disse ..: D
Sumit Madan

Respostas:


7

Você pode usar algo como destaque que localiza e adiciona uma classe a todas as instâncias de uma palavra na página e, em vez de alimentar uma palavra estática, você usaria o conteúdo da caixa de pesquisa.

Você pode encontrar mais informações e links para outras versões na pergunta StackOverflow, Destaque uma palavra com jQuery .


Eu faço funcionar. É javascript, mas está ok. Obrigado.
Chefnelone

11

Usando a função search_excerpt , você pode destacar a palavra-chave pesquisada. Ele mostra a palavra-chave em negrito.

Retorna trechos de um pedaço de texto, com determinadas palavras-chave destacadas. Usado para formatar os resultados da pesquisa.

Um exemplo é mostrado abaixo,

por exemplo: // um campo do corpo é exposto aqui

no seu arquivo tpl views, adicione o seguinte código

 <?php foreach ($rows as $id => $row): 

      $keys = $_GET['body_value'];
      $row = search_excerpt($keys, $row);
 ?>

destacará a palavra pesquisada, veja a captura de tela abaixo

insira a descrição da imagem aqui


Ele executa o trabalho, mas remove a estrutura da linha de exibição. A exibição está mostrando o conteúdo (não os campos) como teaser. Depois que a pesquisa é concluída, o resultado não mostra o teaser, mas apenas os dados brutos. Isso pode ser resolvido.
precisa saber é o seguinte

Vejo que a função search_excerpt remove toda a marcação. Isso pode mudar de alguma forma?
Chefnelone

Eu acho que essa é a melhor opção se os pontos de vista é estilo para mostrar campos, mas não é útil se a vista é a exibição de conteúdo (full, provocação, ..)
chefnelone


0
function custom_views_pre_render(&$view) {
  if ($view->name == 'article') {
    $result = $view->result;
    foreach ($result as $i => $row) {
      $body = $view->result[$i]->field_body[0]['rendered']['#markup'];
      $strong = $view->exposed_data['body_value'];
      $view->result[$i]->field_body[0]['rendered']['#markup'] = str_replace($strong, '<strong>' . $strong . '</strong>', $body);
    }
  }
}

Exemplo para o campo do corpo . No seu módulo personalizado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.