Os loops e as tags de busca

O SPIP dispõe de um motor de busca integrado. Para isso, é preciso prever uma página que permita exibir os resultados das buscas.

O formulário de busca

Para exibir o formulário de busca, basta inserir a tag:

#FORMULAIRE_RECHERCHE

O formulário reenvia, por padrão, para spip.php?page=recherche; você deve, assim, criar um template recherche.html para exibir os resultados.

Você pode decidir usar uma outra página de exibição dos resultados. Para tal, deve-se usar a tag da seguinte maneira:

#FORMULAIRE_RECHERCHE{#URL_PAGE{xxx}}

onde xxx é a página para a qual se deseja enviar o utilizador, e xxx.html é o seu template.

O template de resultados

Os loops que permitem exibir os resultados da busca são, na realidade, lopps já abordados aqui: ARTICLES, RUBRIQUES, BREVES e FORUMS. Você pode com efeito realizar buscas não apenas nas matérias, mas também nas seções, notas e fóruns.

-  A única diferença, relativamente ao que é documentado no manual de referência dos loops, é a escolha do critério de seleção, que deve ser {recherche}. Os outros critérios de exibição e as tags desses loops continuam válidos.

-  No entanto, para permitir classificar os resultados por pertinência, deve-se usar preferencialmente o critério de exibição: {par points}. Os resultados são, em geral, exibidos por ordem decrescente de pontução {!par points}, ou seja, de pertinência.

-  Enfim, pode-se usar a tag #POINTS, que exibirá a pertinência dos resultados (atenção, em termos absolutos este valor não é muito explícito, ele é útil sobretudo para a classificação de resultados).

-  A tag #RECHERCHE exibirá a solicitação de procura formulada pelo visitante.

Exemplo de loop completo:

<h1><:resultats_recherche:>[ (#RECHERCHE)]</h1>

<B_articles>
<h2><:info_articles_trouves:></h2>
<ul>
	<BOUCLE_articles(ARTICLES) {recherche} {!par points}>
	<li>#POINTS <a href="#URL_ARTICLE">#TITRE</a></li>
	</BOUCLE_articles>
</ul>
</B_articles>

Sublinhar o termo solicitado em outras páginas

O SPIP oferece uma opção para sublinhar o termo solicitado no conteúdo das páginas, incluindo as linhas a seguir no ficheiro mes_options.php

define('_SURLIGNE_RECHERCHE_REFERERS',true);

Para destacar os termos da busca a partir da primeira página de exibição (por exemplo, no caso em que a procura não envia para recherche.html), incluir no ficheiro mes_options.php :

if (isset($_REQUEST['recherche'])) {
  $_GET['var_recherche'] = $_REQUEST['recherche'];
}

O realce dos termos da busca é feito pela biblioteca jQuery que colore em amarelo o termo procurado

  • Se a variável recherche estiver presente no URL, ela é primeiramente limpa para evitar qualquer ataque por injeção. Assim, se o termo da procura se encontra diretamente num bloco de class="surlignable" (ou num bloco descendente de um bloco de class="surlignable"), ele será exibido em realce num <span class="spip_surligne">.../span>
  • Se ele encontra-se num bloco de class="pas_surlignable" (ou num bloc descendant de um bloco de class="pas_surlignable"), ele será exinbido normalmente (sem realce).
  • A aparência visual do realce pode ser alterado modificando-se a definição de estilo de .spip_surligne (ver : «Modifier l’habillage graphique»).

Autor Ricardo Porto Publié le :

Traductions : عربي, català, Deutsch, English, Español, français, italiano, Nederlands, Português, українська