Vous n'êtes pas identifié(e).

Annonce

ATTENTION

  • Prenez le temps de rechercher si quelqu'un n'a pas déjà proposé une solution à votre problème. Sur le forum français et sur le wiki
  • Pensez à mettre à jour votre version de CMS Made Simple. Nous ne faisons de support que sur LA dernière version de CMS Made Simple.
  • Renseignez impérativement le formulaire de nouveau message de manière la plus complète que possible. Dans votre CMS utiliser le menu Administration du site/Informations du système en haut Vue au format texte. Ces informations demandées nous permettent de mieux vous aider
  • Ajoutez [Résolu] au début du titre de votre 1er message lorsqu'une solution a été trouvée.

#1 14/03/2017 17:34:18

alas
Membre
Inscription : 15/10/2007
Messages : 197

LISE : Rechercher mot clé dans le titre

#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 2.1.6
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~


Bonjour à tous,

J'ai une petite question concernant le module LISE, est'il possible d'effectuer une recherche exclusivement dans le titre de  l'item plutôt que dans l'ensemble des champs ajouté dans mon module ?

J'utlise la balise suivante :

{LISEFormation action="search" template_search="form_recherche_asf" template_summary="searchresults" }

Je pense que deux solutions peuvent s'offrir :

Soit effectuer la recherche exclusivement dans le champ title
Soit n'afficher que les résultats dont le champ {$item->title} contient le mot clé taper.

Dans ma template searchresult j'ai le code suivant :

[== Indéfini ==]
{if !empty($actionparams.search)}
    <h2>{$mod->ModLang('searchresultsfor')} &quot;{$actionparams.search}&quot;</h2>
{/if}

<ul>
{foreach from=$items item=item}
    <li class="item searchresult">
        <a href="{$item->url}">{$item->title}</a>
    </li>
{/foreach}
</ul>

Je pense que le  {$actionparams.search} est le mot clé tapé,  donc comment dire en smarty si  {$item->title} contient la chaine de caractère  {$actionparams.search} alors j'affiche le résultat.



Merci pour vos conseils.

Dernière modification par alas (14/03/2017 17:49:51)

Hors ligne

 

#2 14/03/2017 18:11:14

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 681
Site Web

Re : LISE : Rechercher mot clé dans le titre

Sans aucun test et pas certain que ça fonctionne avec smarty 3:

{if strpos("$item->title", "$actionparams.search") != false}
affichage
{/if}

Hors ligne

#3 14/03/2017 18:30:57

alas
Membre
Inscription : 15/10/2007
Messages : 197

Re : LISE : Rechercher mot clé dans le titre

Bonjour Jean le Chauve, merci pour ta réponse je viens d'essayer mais cela ne fonctionne pas  sad

Hors ligne

#4 14/03/2017 19:36:36

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 681
Site Web

Re : LISE : Rechercher mot clé dans le titre

Est-ce que tu as eu une erreur de sécurité ou pas ?
Et ceci :
{if $item->title|strpos("$actionparams.search") != false}

Sinon, https://board.s9y.org/viewtopic.php?f=11&t=20294

Hors ligne

#5 15/03/2017 15:38:47

alas
Membre
Inscription : 15/10/2007
Messages : 197

Re : LISE : Rechercher mot clé dans le titre

Alors j'ai essayé (avec accolade, sans accolade, avec ou sans apostrophe mais rien ne change j'ai effectivement une erreur.

on line 30 "{if $item->title|strpos("$actionparams.search") != false}"  - Unexpected "(", expected one of: "}"


Concernant le seconde solution, la function demande pas si la viriable commence par le terme indiqué (moi je dois chercher dans tout le titre)

Autre possiblité :

Est ce que la paramètre Filter ou Search_* ne peut pas être utilisé directement dans l'appel du module, j'ai tenté deux ou trois chose mais pas de résultat.



Je pense qu'il n'y a pas de solutions.

Dernière modification par alas (15/03/2017 15:45:15)

Hors ligne

#6 15/03/2017 17:55:42

airelibre
Administrateur
Lieu : Alsace
Inscription : 01/12/2009
Messages : 1 103
Site Web

Re : LISE : Rechercher mot clé dans le titre

Hello,

tu as tenté un

{LISEMonModule search_title='texte'}

? A priori c'est prévu dans le module (voir l'aide)

a+

Hors ligne

#7 15/03/2017 17:59:56

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 681
Site Web

Re : LISE : Rechercher mot clé dans le titre

Je parlais d'une erreur de sécurité, car Smarty 3 n'accepte plus tous les modificateurs PHP comme c'était le cas dans les précédentes versions.
L'erreur que tu as indiquée montre une erreur de syntaxe, essaye ceci :

{if $item->title|strpos:"$actionparams.search" !== false}

strpos() cherche la première occurrence d'un terme dans l'ensemble de la string, donc trouvera le terme dans tout le titre, même s'il se trouve à la fin de la string.

Dernière modification par Jean le Chauve (15/03/2017 18:00:58)

Hors ligne

#8 15/03/2017 19:33:33

alas
Membre
Inscription : 15/10/2007
Messages : 197

Re : LISE : Rechercher mot clé dans le titre

jean-le-chauve j'ai essayé avec la syntaxe, je n'ai pas d'erreur mais rien ne s'affiche, alors que ca devrait être le cas ? Faut t'il que j'active le mode Debug pour voir si il y a une erreur ?

[== Indéfini ==]
 {if $item->title|strpos:"$actionparams.search" !==false} {$item->url} {/if}

Airelibre j'ai appelé mon module de la façon suivante :

[== Indéfini ==]
{LISEFormation action="search" template_search="form_recherche_asf" template_summary="searchresults" template_detail="detail_formation_continue" summarypage="resultat-de-votre-recherche" detailpage="fiche-formation" }

Le problème s'est que cela me permet d'afficher le formulaire de recherche mais je n'ai pas encore le mot clé choisi donc quoi mettre à la place de 'texte'  dans ton search_title='texte'. Moi j'aurais voulu qu'on puisse indiquer sur quel champ chercher, je pensais que la balise filter="" fonctionnait mais j'ai beau mettre title ou alias à l'intérieur cela ne fonctionne pas.

Hors ligne

#9 15/03/2017 20:28:42

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 681
Site Web

Re : LISE : Rechercher mot clé dans le titre

Le code que je t'ai donné ne fonctionne sans doute pas.
Airelibre connaissant le module, il a donné la bonne réponse à ton problème :

est'il possible d'effectuer une recherche exclusivement dans le titre de  l'item plutôt que dans l'ensemble des champs ajouté dans mon module ?

Puis tu lui réponds :

Moi j'aurais voulu qu'on puisse indiquer sur quel champ chercher

Faudrait savoir wink

Ensuite, tu dis ne pas connaître à l'avance le terme à rechercher dans le titre, on peut en déduire que ce sera l'internaute qui le choisira. Il te suffirait alors d'en faire une variable et de le mettre dans {LISEMonModule search_title=$variable}.
Mais comment veux-tu qu'il trouve le mot-clé exact si tu ne lui donnes pas à choisir dans une liste prédéfinie ?
Ce serait sympa que tu réfléchisses un peu plus à ton algorithme. Que veux-tu exactement et quelle sera la procédure à suivre pour l'internaute ?

Dernière modification par Jean le Chauve (15/03/2017 20:30:03)

Hors ligne

#10 16/03/2017 09:59:51

airelibre
Administrateur
Lieu : Alsace
Inscription : 01/12/2009
Messages : 1 103
Site Web

Re : LISE : Rechercher mot clé dans le titre

Alas - si tu utilises l'action de recherche, tu peux très bien revoir le gabarit de recherche pour n'afficher que le champ "titre" je pense.

Est-ce une solution viable ?

Hors ligne

#11 16/03/2017 11:08:35

alas
Membre
Inscription : 15/10/2007
Messages : 197

Re : LISE : Rechercher mot clé dans le titre

Alors je vais donner une explication plus claire. Le lien du site pour lequel j'ai le problème : ICI

Sur la partie droite il y un champ de recherche créé à partir de mon instance LISE, dans ce champ je demande aux internautes de taper un mots clé (exemple Word). Ce champ de recherche est implémanté de la façon suivante :

[== Indéfini ==]
{LISEFormation action="search" template_search="form_recherche_asf" template_summary="searchresults" template_detail="detail_formation_continue" summarypage="resultat-de-votre-recherche" detailpage="fiche-formation" }

Du coup si j'ai bien compris la méthode de Mathieu, voici ce qu'il devrait y avoir dans mon gabarit "searchresults"

[== Indéfini ==]
{if !empty($actionparams.search)}
    <h2>{$mod->ModLang('searchresultsfor')} &quot;{$actionparams.search}&quot;</h2>
{/if}

{LISEFormation search_title="{$actionparams.search}" template_summary="Form_sommaire_page_formation"}

Hors j'ai essayé tout cela mais rien ne fonctionne :

search_title="{$actionparams.search}"
search_title="$actionparams.search"
search_alias="{$actionparams.search}"
search_alias="$actionparams.search"


Je ne perds pas espoir smile

Hors ligne

#12 16/03/2017 11:10:24

airelibre
Administrateur
Lieu : Alsace
Inscription : 01/12/2009
Messages : 1 103
Site Web

Re : LISE : Rechercher mot clé dans le titre

Non ce que je proposais c'était de simplifier ton gabarit de recherche "form_recherche_asf" pour n'y placer que l'input qui correspond au titre.

Ainsi plus besoin de bidouiller le gabarit de résultats, et c'est plus logique wink

Hors ligne

#13 16/03/2017 11:31:15

alas
Membre
Inscription : 15/10/2007
Messages : 197

Re : LISE : Rechercher mot clé dans le titre

Voici mon gabarit de fomulaire ? J'avoue que je suis un peu perdu la ....


Mathieu quand tu dis "placer que l'input qui correspond au titre" c'est à dire ?

CI-dessous la gabarit de recherche.

[== Indéfini ==]
<div id="{$modulealias}_search">
	{$formstart}
	<div id="formulaire_recherche" class="grid-center">
	   <div class="col-9">
	    <input type="text" id="{$modulealias}searchinput" placeholder="TAPEZ UN MOT CLE" class="input_recherche" name="{$actionid}search" size="20" maxlength="50" value="" />
	   </div>
	   <div class="col-3">
		<input  class="btn_submit" name="submit" value="OK" type="submit" />
	   </div>
	 </div>
	{$formend}
</div>

Hors ligne

#14 16/03/2017 13:47:15

airelibre
Administrateur
Lieu : Alsace
Inscription : 01/12/2009
Messages : 1 103
Site Web

Re : LISE : Rechercher mot clé dans le titre

Dans ce cas tu dois utiliser le name="{$actionid}search_title" normalement, pour ne chercher que sur le titre

Hors ligne

#15 16/03/2017 15:20:47

alas
Membre
Inscription : 15/10/2007
Messages : 197

Re : LISE : Rechercher mot clé dans le titre

Airelibre cela ne fonctionne pas non plus  hmm  j'ai essayé avec name="{$actionid}search_title et name="{$actionid}search_alias

Hors ligne

#16 17/03/2017 16:43:04

airelibre
Administrateur
Lieu : Alsace
Inscription : 01/12/2009
Messages : 1 103
Site Web

Re : LISE : Rechercher mot clé dans le titre

Peut-être que l'action "search" filtre ce nom de champ ... ca mériterait une lecture du code source pour voir.

Tu peux aussi faire un formulaire tout simple qui en appelant une autre page lance {LISEFormations search_title=$smarty.post.champrecherche} ou quelque chose comme ca, ca peut être une solution alternative

Hors ligne

#17 17/03/2017 18:57:32

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 681
Site Web

Re : LISE : Rechercher mot clé dans le titre

Je vais me mêler de ce qui ne me regarde pas, mais je suis assez vieux pour assumer wink
Je trouve que ta recherche par mot-clé ne sera pas efficace. Une erreur d'orthographe (extrêmement fréquente de nos jours wink), un synonyme et c'est foutu, la recherche ne renverra rien surtout que tu n'as pas des tonnes de formations.
Pourquoi ne pas utiliser ta page "les formations" pour toutes les afficher dans des tabs au survol de la souris (JQuery) ?

En passant, tu utilises les majuscules accentuées, ou pas, suivant les cas. Ce serait mieux de respecter la charte graphique à ce sujet. Et diplômante, pas dîplomante wink.

Dernière modification par Jean le Chauve (17/03/2017 18:58:53)

Hors ligne

Pied de page des forums

  Flux Rss Twitter FaceBook