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 declass="surlignable"
(ou num bloco descendente de um bloco declass="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 declass="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»).