Цикли і теги для пошуку

SPIP оснащений власною вбудованою внутрішньою пошуковою системою. Тому необхідно буде побудувати сторінку для відображення результатів пошуку.

Інтерфейс пошуку

Для того, щоб відобразити форму пошуку, вам потрібно тільки вставити наступний тег:

#FORMULAIRE_RECHERCHE

За замовчуванням, форма посилає запити на сторінку spip.php?page=recherche, отже вам необхідно створити файл шаблону recherche.html [1], аби відображати результати.

За своїм бажанням ви можете використовувати іншу сторінку результатів, для цього треба використовувати тег наступного альтернативного синтаксису:

#FORMULAIRE_RECHERCHE{#URL_PAGE{xxx}}

де xxx - це сторінка, на яку ви хотіли б направити відвідувача сайту, а xxx.html - це відповідний шаблон цієї сторінки.

Файл шаблону результатів

Петлі, використовувані для відображення результатів пошуку, добре описані в документації (але, на жаль, ще без перекладу): La boucle ARTICLES, La boucle RUBRIQUES, La boucle BREVES і La boucle FORUMS. Ви насправді може запускати пошук не тільки в статтях, але також у рубриках, серед новин та у змісті форуму.

-  Єдина різниця в порівнянні з тим, що описано в розділі Створюємо перший шаблон, це вибір критеріїв відбору, які повинні бути {recherche}. Інші критерії відображення і теги, що використовуються всередині циклів, залишаються незмінними.

-  Тим не менш, для того, щоб ранжувати результати по їх релевантності для критеріїв пошуку, рекомендується використовувати нові критерії відображення: {par points}. Результати зазвичай відображаються в порядку зменшення їхньої ваги ({par points}{inverse}), тобто найбільш релевантні йдуть першими.

-  А також тег #POINTS, який відображає релевантність результатів.

-  Введений в [SPIP 1.5.1] тег #RECHERCHE відображає запит, сформульований відвідувачем сайту .

Приклад завершеного циклу:

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

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

Підсвічування термінів, за якими йде пошук, на інших сторінках

Терміни, за якими йде пошук, виокремлюються на інших сторінка за допомогою функції з бібліотеки jquery.

-  Якщо змінна recherche включена до URL, вона спочатку очищується, аби уникнути injection attacks, а потім, якщо пошук за ключами знайшов її безпосередньо всередині блоку, відзначається як class="surlignable" (or in a descendant block of a class="surlignable" block), it will be displayed as a highlight within a <span class="spip_surligne">.../span> block.
-  If it is found directly inside a class="pas_surlignable" block (or in a descendant block of a class="pas_surlignable") block, it is displayed normally as (nohighlight).
-  Візуальний зовнішній вигляд підсвічування може бути змінено шляхом зміни визначення стилю для .spip_surligne (див: «Modifier l’habillage graphique»).

Щоб скористатися перевагами підсвічування умов пошуку прямо з першої сторінки, що відображається (наприклад у випадку, коли пошук не повертає recherche.html), додайте цей код до файлу mes_options.php:

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

Примітки

[1французькою Recherche означає пошук

Автор olly Publié le : Mis à jour : 21/03/23

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