Files
le-matelot/client/plugins/recherche/LISEZMOI.txt
2020-01-27 08:56:08 +01:00

202 lines
9.5 KiB
Plaintext

PLUGIN DE RECHERCHE AVANCEE
---------------------------
Ce plugin permet une recherche dans vos produits, rubriques ou contenus. Les
mots saisis par votre client sont normalisés suivant l'algorithme Paice/Husk, ce
qui permet d'obtenir de meilleurs résultats de recherche:
Exemple: "rouges", "rouge", "rougeatre", "rougeaud" sont normalisés en "roug",
ce qui permet de remonter tous les produits en rapport au rouge.
Contact et support: Franck Allimant (thelia@allimant.org).
Version PHP du stemmer Paice/Husk par Alexis Ulrich (http://alx2002.free.fr).
MISE EN PLACE
-------------
Dans votre form de recherche, proposer les options supplémentaires de recherche:
<form action="#URLRECHERCHE" method="post" name="recherche" id="recherche">
<input name="motcle" type="text" value='Recherche' onclick="this.value='';" />
<p><button type="submit" class="bouton"><span><span>OK</span></span></button></p>
<input style="width: auto;" type="radio" name="recherche_mode" value="et" checked="checked"/>Tous les mots<br />
<input style="width: auto;" type="radio" name="recherche_mode" value="ou" />Au moins un des mots<br />
<input style="width: auto;" type="checkbox" name="recherche_exacte" value="1" />Rechercher exactement
</form>
Dans la page de recherche (recherche.html), utiliser la boucle de recherche de produit du plugin.
Pour ce faire, remplacer:
<THELIA_PROD type="PRODUIT" rubrique="#RUBRIQUE_ID" classement="inverse" motcle="#PRODUIT_MOTCLE" num="12">
par:
<THELIA_PROD type="recherche" mode="#RECHERCHE_MODE" exact="#RECHERCHE_EXACTE" boucle="produit" rubrique="#RUBRIQUE_ID" classement="inverse" motcle="#PRODUIT_MOTCLE" num="12">
Il est aussi possible de fixer le mode de recherche (et / ou) dans la page de
recherche, sans modifier le formulaire de recherche:
<THELIA_PROD type="recherche" mode="et" boucle="produit" ... >
<THELIA_PROD type="recherche" mode="ou" boucle="produit" ... >
Adapter enfin les boucles de pagination dans la page de recherche (Thelia 1.5.1) :
<THELIA_PAGEPREC type="RECHERCHE" boucle="PAGE" mode="et" exact="0" type_page="PRODUIT" rubrique="#RUBRIQUE_ID" num="12" typeaff="0" motcle="#PRODUIT_MOTCLE" avance="precedente">
<a href="#URLFOND(recherche,rechpage=#PAGE_PREC&motcle=#MOTCLE)" class="LIEN_pages">Page pr&eacute;c&eacute;dente</a>
</THELIA_PAGEPREC>
<THELIA_CPAGE type="RECHERCHE" boucle="PAGE" mode="et" exact="0" type_page="PRODUIT" rubrique="#RUBRIQUE_ID" num="12" max="10" motcle="#PRODUIT_MOTCLE" typeaff="1">
|
<THELIA_PAGECONT_PASCOUR type="RECHERCHE" boucle="PAGE" mode="et" exact="0" type_page="PRODUIT" rubrique="#RUBRIQUE_ID" num="12" courante="0" motcle="#PRODUIT_MOTCLE" pagecourante="#PAGE_NUM" max="10" typeaff="1">
<a href="#URLFOND(recherche,rechpage=#PAGE_NUM&motcle=#MOTCLE)" class="LIEN_pages">#PAGE_NUM</a>
</THELIA_PAGECONT_PASCOUR>
<THELIA_PAGECONT_COUR type="RECHERCHE" boucle="PAGE" mode="et" exact="0" type_page="PRODUIT" rubrique="#RUBRIQUE_ID" num="12" courante="1" motcle="#PRODUIT_MOTCLE" pagecourante="#PAGE_NUM" max="10" typeaff="1">
#PAGE_NUM
</THELIA_PAGECONT_COUR>
</THELIA_CPAGE>
<THELIA_PAGE_SUIVANTE type="RECHERCHE" boucle="PAGE" mode="et" exact="0" type_page="PRODUIT" rubrique="#RUBRIQUE_ID" num="12" max="10" motcle="#PRODUIT_MOTCLE" typeaff="0" avance="suivante">
|
<a href="#URLFOND(recherche,rechpage=#PAGE_SUIV&motcle=#MOTCLE)" class="LIEN_pages">Page suivante</a>
</THELIA_PAGE_SUIVANTE>
C'est tout. Un exemple de page de recherche figure dans le repertoire 'template' du plugin.
.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.
BOUCLES
-------
Le plugin propose quatre boucles, pour chercher dans les produits, les rubriques
ou les contenus, et pour paginer les résultats
Il étend les boucles produit, rubrique et contenu originales de Thélia. Il est
donc possible d'utiliser les paramètres de ces boucles en plus des paramètres
spécifiques, qui sont:
mode: valeurs possibles: "et", "ou". Si le paramètre vaut "et", le plugin
rechercher les éléments qui contiennent tous les mots à rechercher
Si le paramètre vaut "ou", le plugin rechercher les éléments qui
contiennent au moins un des mots à rechercher
exact: valeurs possibles 0 ou 1. Si le paramètre vaut 1, la recherche est
effectuée exactement sur les mots entrés, sans normalisation.
Rechercher des produits:
<THELIA_PROD type="recherche" mode="et" boucle="produit" motcle="#PRODUIT_MOTCLE">
...
</THELIA_PROD>
Rechercher des rubriques:
<THELIA_RUB type="recherche" mode="et" boucle="rubrique" motcle="#PRODUIT_MOTCLE">
...
</THELIA_RUB>
Rechercher du contenu:
<THELIA_CNT type="recherche" mode="et" boucle="contenu" motcle="#PRODUIT_MOTCLE">
...
</THELIA_CNT>
Exemple: Dans la page recherche.html du template de base, pour utiliser ce plugin
au lieu de la recherche de base de Thélia, remplacer:
<THELIA_PROD type="PRODUIT" rubrique="#RUBRIQUE_ID" classement="inverse" motcle="#PRODUIT_MOTCLE" num="12">
par:
<THELIA_PROD type="recherche" mode="et" boucle="produit" rubrique="#RUBRIQUE_ID" classement="inverse" motcle="#PRODUIT_MOTCLE" num="12">
BOUCLE 'page'
-------------
Cette boucle permet de paginer les résultats. Les paramètres d'entrée sont les
mêmes que la boucle PAGE de Thélia, mis à part type="RECHERCHE" et boucle="PAGE".
type_page permet de spé"cifier quel type de pagination effectuer, et peut prendre les
valeurs produit, rubrique, ou contenu
Les variables sont elles aussi identiques à celles de la boucle PAGE de Thélia,
plus:
#MOTCLE: les paramètres de recherche, qui doivent être placés dans les
URLs de changement de page. Par exemple:
recherche.php?rechpage=#PAGE_NUM&#MOTCLE
ATTENTION: le paramètre désignat la pge dans l'URL est 'rechpage'. Ce paramètre, ainsi que le
paramètre 'motcle' doivent être passés dans les URLs de pagination.
Exemple basé sur la pagination des résultats du template de base de Thélia:
Pour Thelia 1.5.1 et suivant :
<THELIA_PAGEPREC type="RECHERCHE" boucle="PAGE" mode="et" exact="0" type_page="PRODUIT" rubrique="#RUBRIQUE_ID" num="12" typeaff="0" motcle="#PRODUIT_MOTCLE" avance="precedente">
<a href="#URLFOND(recherche,rechpage=#PAGE_PREC&motcle=#MOTCLE)" class="LIEN_pages">Page pr&eacute;c&eacute;dente</a>
</THELIA_PAGEPREC>
<THELIA_CPAGE type="RECHERCHE" boucle="PAGE" mode="et" exact="0" type_page="PRODUIT" rubrique="#RUBRIQUE_ID" num="12" max="10" motcle="#PRODUIT_MOTCLE" typeaff="1">
|
<THELIA_PAGECONT_PASCOUR type="RECHERCHE" boucle="PAGE" mode="et" exact="0" type_page="PRODUIT" rubrique="#RUBRIQUE_ID" num="12" courante="0" motcle="#PRODUIT_MOTCLE" pagecourante="#PAGE_NUM" max="10" typeaff="1">
<a href="#URLFOND(recherche,rechpage=#PAGE_NUM&motcle=#MOTCLE)" class="LIEN_pages">#PAGE_NUM</a>
</THELIA_PAGECONT_PASCOUR>
<THELIA_PAGECONT_COUR type="RECHERCHE" boucle="PAGE" mode="et" exact="0" type_page="PRODUIT" rubrique="#RUBRIQUE_ID" num="12" courante="1" motcle="#PRODUIT_MOTCLE" pagecourante="#PAGE_NUM" max="10" typeaff="1">
#PAGE_NUM
</THELIA_PAGECONT_COUR>
</THELIA_CPAGE>
<THELIA_PAGE_SUIVANTE type="RECHERCHE" boucle="PAGE" mode="et" exact="0" type_page="PRODUIT" rubrique="#RUBRIQUE_ID" num="12" max="10" motcle="#PRODUIT_MOTCLE" typeaff="0" avance="suivante">
|
<a href="#URLFOND(recherche,rechpage=#PAGE_SUIV&motcle=#MOTCLE)" class="LIEN_pages">Page suivante</a>
</THELIA_PAGE_SUIVANTE>
Pour Thelia 1.4.x :
<THELIA_PAGEPREC type="RECHERCHE" boucle="PAGE" type_page="PRODUIT" rubrique="#RUBRIQUE_ID" num="12" typeaff="0" motcle="#PRODUIT_MOTCLE" avance="precedente">
<a href="recherche.php?rechpage=#PAGE_PREC&motcle=#MOTCLE" class="LIEN_pages">Page pr&eacute;c&eacute;dente</a>
</THELIA_PAGEPREC>
<THELIA_CPAGE type="RECHERCHE" boucle="PAGE" type_page="PRODUIT" rubrique="#RUBRIQUE_ID" num="12" max="10" motcle="#PRODUIT_MOTCLE" typeaff="1">
|
<THELIA_PAGECONT_PASCOUR type="RECHERCHE" boucle="PAGE" type_page="PRODUIT" rubrique="#RUBRIQUE_ID" num="12" courante="0" motcle="#PRODUIT_MOTCLE" pagecourante="#PAGE_NUM" max="10" typeaff="1">
<a href="recherche.php?rechpage=#PAGE_NUM&motcle=#MOTCLE" class="LIEN_pages">#PAGE_NUM</a>
</THELIA_PAGECONT_PASCOUR>
<THELIA_PAGECONT_COUR type="RECHERCHE" boucle="PAGE" type_page="PRODUIT" rubrique="#RUBRIQUE_ID" num="12" courante="1" motcle="#PRODUIT_MOTCLE" pagecourante="#PAGE_NUM" max="10" typeaff="1">
#PAGE_NUM
</THELIA_PAGECONT_COUR>
</THELIA_CPAGE>
<THELIA_PAGE_SUIVANTE type="RECHERCHE" boucle="PAGE" type_page="PRODUIT" rubrique="#RUBRIQUE_ID" num="12" max="10" motcle="#PRODUIT_MOTCLE" typeaff="0" avance="suivante">
|
<a href="recherche.php?rechpage=#PAGE_SUIV&motcle=#MOTCLE" class="LIEN_pages">Page suivante</a>
</THELIA_PAGE_SUIVANTE>
.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.
SUBSTITUTIONS
-------------
La valeur du paramètre de form "recherche_mode" (et / ou) est disponible dans la
variable #RECHERCHE_MODE.
.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.
HISTORIQUE
----------
30-03-2010: 1.0.0 : Version initiale
31-03-2010: 1.1.0 : Ajout de la recherche dans les rubriques
31-03-2010: 1.2.0 : Ajout de la pagination des résultats
31-03-2010: 1.2.1 : Correction de quelques bugs
08-06-2010: 1.2.2 : Ajout du paramètre 'exact' a la boucle
Correction d'un problème sur les accents (UTF-8 dans le stemmer)
08-06-2010: 1.2.3 : Correction des bugs de recherche sur contenu et rubrique
22-12-2011: 1.2.4 : La recherche par reéférence produit est possible.
--
Fin du fichier LISEZMOI.txt