THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Hello,

J'ai comme des résultats ou pas... surprenants dans le moteur de recherche thelia.

Je voudrai que lorsque je tape un mot dans le moteur, il me remonte aussi bien des rubriques, des produits, des dossiers et des contenus...

J'avoue avoir lu le wiki et ne pas bien comprendre la mécanique de recherche, du coup ma ou mes boucles ne sont peut être (certainement) pas optimisées...

J'ai via un #INCLURE dans mes templates de base

<div id="moteurDeRecherche">
<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>
</form>
</div> 

---------------------------------------------------------------------------------------------------------------
et comme page recherche

<div id="contenuPageRubrique">
<h2>::votrerecherche:: : "#PRODUIT_MOTCLE"</h2>
<T_PROD>
<THELIA_PROD type="PRODUIT"  classement="inverse" motcle="#PRODUIT_MOTCLE" num="12">
<div class="petitBlocProduit">
<div class="contenu">
<T_RUBRIQUE_AUTEUR>
#SET{recup_id_rubrique,#RUBRIQUE}
<THELIA_RUBRIQUE_AUTEUR type="RUBRIQUE" id="#GET{recup_id_rubrique}" >
#SET{recup_id_rubrique_racine,#PARENT}
<THELIA_RUBRIQUE_AUTEUR_RACINE type="RUBRIQUE" id="#GET{recup_id_rubrique_racine}">#TITRE -
</THELIA_RUBRIQUE_AUTEUR_RACINE>
#TITRE
</THELIA_RUBRIQUE_AUTEUR>
</T_RUBRIQUE_AUTEUR>
<//T_RUBRIQUE_AUTEUR>
<h4>#TITRE</h4>
<div>#DESCRIPTION</div>
<THELIA_img type="IMAGE" num="1" produit="#ID" largeur="300" hauteur="300">
<THELIA_ZOOM type="IMAGE"  num="1" id="#ID" largeur="1000">
<a href="#IMAGE" rel="superbox[gallery][my_gallery]" class="grandeImage">
</THELIA_ZOOM>
<img src="#IMAGE" alt="#PRODTITRE" title="#PRODTITRE"/>
</a>
</THELIA_img>
<div class="description">
<span class="prixProduit">#PROMO[#PRIX2 € <span class="chapo">::changprix:: #PRIX €</span>][#PRIX €]</span>
#FILTRE_supegal(#STOCK||1||<a class="acheter" href="#PANIER"><span><span>::ajouterpanier::</span></span></a>||Produit indisponible)
</div>
</div>
</div>
#FILTRE_modulo(#COMPT||2||<div class="separation"></div>)
</THELIA_PROD>
<div id="pages">
<THELIA_PAGEPREC type="PAGE" num="12" typeaff="0" motcle="#PRODUIT_MOTCLE"  avance="precedente">
<a href="#URLFOND(recherche,page=#PAGE_PREC&amp;motcle=#PRODUIT_MOTCLE)" class="LIEN_pages">::pageprecedente::</a>
</THELIA_PAGEPREC>
<THELIA_CPAGE type="PAGE"  num="12" max="10" motcle="#PRODUIT_MOTCLE" typeaff="1">
|
<THELIA_PAGECONT_PASCOUR type="PAGE"  num="12" courante="0" motcle="#PRODUIT_MOTCLE" pagecourante="#PAGE_NUM" max="10" typeaff="1">
<a href="#URLFOND(recherche,page=#PAGE_NUM&amp;motcle=#PRODUIT_MOTCLE)" class="LIEN_pages">#PAGE_NUM</a>
</THELIA_PAGECONT_PASCOUR>
<THELIA_PAGECONT_COUR type="PAGE" 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="PAGE" num="12" max="10" motcle="#PRODUIT_MOTCLE" typeaff="0" avance="suivante">
|
<a href="#URLFOND(recherche,page=#PAGE_SUIV&amp;motcle=#PRODUIT_MOTCLE)" class="LIEN_pages">::pagesuivante::</a>
</THELIA_PAGE_SUIVANTE>
</div>
</T_PROD>
<p><strong>::aucunresultat::</strong></p>
<//T_PROD>
</div>

Mais j'ai l'impression que ce principe ne sort pas tous les résultats de la base de données... c'est moi ou c'est moi ? ;-)

Il y a du titre de contenu, de produit, du texte dans du contenu, des mots dans .... bref un peu partout  avec le mot recherché, faut-il faire une boucle par élément recherché (rubrique, produit, texte,...) ou il existe une syntaxe globale ?

Merci d'avance


Ce qui est fait n'est plus à faire ;-)

Offline


Bonjour,
Le paramètre « motcle » que vous retrouvez dans votre boucle « PRODUIT » n’est disponible que pour la boucle « PRODUIT » (logique tongue) et pour la boucle « CONTENU ». Il ne sera donc pas possible de faire ressortir les rubriques ou les dossiers en rapport avec la recherche (en tout cas pas sans un plugin ou une modification des boucles).

Du coup, pour faire ressortir les contenus en rapports avec votre recherche, vous pouvez insérer une nouvelle boucle dans votre page :

Exemple :
<THELIA_CONTENU type="CONTENU"  classement="inverse" motcle="#PRODUIT_MOTCLE" num="12">
....
</THELIA_CONTENU>

Cependant, avec cela vous ajouterez un nouveau problème concernant la pagination des résultats.

Cordialement

Offline

Offline


Hello,

J'ai trouvé la raison de mon bug dans les résultats d'affichage, je vais essayer d'expliquer.

Prenons que j'ai 10 produits "astérix" et 5 produits "obélix"

Le site est à destination multilingue mais actuellement il n'y a que le français en production en FO.
En vue de préparer le multilingue, certains articles sont traduits en BO, mais.... il y a toujours un mais !

La traduction c'est faite en dupliquant un article, ici le dernier "astérix10" est modifié en "obélix1", mais la modification n'a été faite qu'en français... vous me suivez toujours ? J'ai donc un produit qui en français s'appèle "obélix1" mais en anglais "astérix10" et en espagnol "astérix10"

Donc dans le moteur de recherche quand je tape "astérix", il me sort 12 résultats et "obélix" 5 par contre, le 12 était faux mais le 5 était correct à n'y rien comprendre ! ... quoi que ;-)

En plus en FO il m'affiche "obélix1" qui n'a en FO rien à voir avec "astérix". !.. quoi que ;-)

Il m'a fallut un moment pour piger mais cela peut servir à d'autre ;-)
J'espère avoir été clair dans mon explication :-p

Amitié
Paulbe


Ce qui est fait n'est plus à faire ;-)