Critère {mots}

Permettre de sélectionner facilement des objets SPIP ayant un ou des mots clefs en communs.

Présentation

Il peut arriver parfois de vouloir sélectionner des objets SPIP (articles, rubriques, sites etc.), ayant un certains nombre de mot clefs connus.

Par exemple, je voudrais sélectionner les articles ayant les mots clefs “fruits” et “desserts”, mais pas ceux qui n’ont que “desserts” ou que “fruits”.

Une telle opération, bien que possible, est assez difficile en SPIP ... sauf si vous utilisez ce plugin.

Il s’installe comme n’importe quel plugin.

Il propose trois critères :
-  {mots}
-  {mots_selon_id}
-  {mots_selon_titre}

Il ne faut utiliser qu’une seule fois par boucle l’un de ces critères.

Le critère {mots}

Prenons un exemple :

<BOUCLE_art(ARTICLES){mots}>
#TITRE
</BOUCLE_art>

Cette boucle sélectionnera les articles ayant tous les mots clefs passés en paramètres d’environnement dans un tableau “mots”.

Comment passer ces mots-clefs en paramètres d’environnement ?

Typiquement, sur une page principale (non incluse), via des paramètres dans l’url. Par exemple : http://www.toto.fr/?page=toto&amp;amp;mots[0]=1&amp;amp;mots[1]=2.

Ici, j’ai passé dans le tableau ’mots’ les valeurs 1 et 2. Les articles associés, à la fois au mot dont l’id est 1 et à celui dont l’id est 2 seront sélectionnés [1].

Les valeurs du tableau ’mots’ peuvent être des identifiants de mots (1, 2) ou des titres de mots (“fruits”, “desserts”).

Attention au cas où des mots clefs sont uniquement sous forme de nombre ...

Le critère {mots_selon_id}

Il fonctionne exactement comme le critère {mots}, à ceci près que les valeurs du tableau ’mots’ sont forcément des identifiants de mots (1,2).

Le critère {mots_selon_titre}

Il fonctionne exactement comme le critère {mots}, à ceci près que les valeurs du tableau ’mots’ sont forcément des titres de mots (“fruits”,“desserts”).

Les paramètres supplémentaires

Les trois critères {mots},{mots_selon_id} et {mots_selon_titre} peuvent prendre trois paramètres : ’score’, ’tableau’, ’tri’. Sous la forme {mots score tableau}.

Le paramètre ’score’.

Par défaut, le critère {mots} prend les objets ayant tous les mots passés en paramètre. On peut décider de vouloir prendre ceux ayant au moins un certain nombre de mots passés paramètre, mais pas nécessairement tous. C’est à cela que sert le paramètre ’score’.

-  Si score est compris entre 0 et 1 (exclus), alors SPIP sélectionnera les objets ayant au moins ce pourcentage de mots [2] sur le total des mots passés en paramètre. Par exemple si j’écris {mots 0.5}, et que je passe 10 mots en paramètre, alors SPIP sélectionnera les objets ayant au moins 10*0.5 = 5 des mots passés en paramètre.
-  Si score est supérieur ou égale à 1 et suivi du signe “%”, alors SPIP sélectionnera les objets ayant au moins ce pourcentage sur le total des mots passés en paramètre. Par exemple si j’écris {mots 50%}, et que je passe 10 mots en paramètre, alors SPIP sélectionnera les objets ayant au moins 50% de 10 = 5 des mots passés en paramètre.
-  Si score est supérieur ou égale à 1, mais n’est pas suivi du signe “%”, alors SPIP sélectionnera les objets ayant au moins ’score’ mots passés en paramètres. Par exemple {mots 5} sélectionnera les objets ayant au moins 5 mots passés en paramètre.

Le paramètre ’tableau’.

Par défaut, SPIP prend comme tableau la variable d’environnement ’mots’. Mais on peut lui dire, via ce paramètre, de prendre un autre tableau.

Ce peut être un tableau :
-  calculé via #GET et #SET
-  inscrit en dur via #ARRAY
-  passé en variable d’environnement, et appelé via #ENV.

Ex : {mots 100% #ARRAY{0,2,1,1}} sélectionnera les objets ayant les mots clefs 2 et 1. Notez qu’il est obligatoire de donner une valeur au paramètre ’score’ pour utiliser ’tableau’, sinon SPIP les confond.

Le paramètre ’tri’

Ce paramètre, existant depuis la version 2.1 (sous SPIP 3) ou 1.3 (sous SPIP 2.1 et 2.0) peut prendre deux valeurs :
-  tri pour trier la boucle en fonction du nombre de mots du tableau associés, en commençant par le plus petit nombre.
-  !tri pour trier la boucle en fonction du nombre de mots du tableau associés, en commençant par le plus grand nombre.

Exemple :

L’article 1 est associé aux mots 1,2,3 ; l’article 2 est associé aux mots 2,3,4,5,6.

{mots 2 #LISTE{1,2,3} !tri} affichera d’abord l’article 1, puis l’article 2.
En effet, l’article 1 est associé à 3 mots dans la liste (1,2,3), tandis que l’article 2 n’est associé qu’à 2 mots dans la liste (2,3).

Formulaire de sélection

Avec la version 1.1 de ce plugin, une nouvelle possibilité s’offre à vous : faire appel à un formulaire bâtissant pour vous les critères dans l’url pour filtrer selon plusieurs mots clefs.

Connecté en tant que webmestre, vous pouvez tester avec la page de démonstration : /?page=demo/parmots.

Le formulaire présente dans un premier temps la liste de vos groupes de mots clefs.

Dès que vous en choisissez un dans la liste, automatiquement [3], la liste des mots clefs de ce groupe est affichée juste à côté.

Choisissez un mot clef, et ce dernier et ajouté à l’URL pour ne vous présenter que les articles ayant ce mot clef.

Et le processus peut être répété autant de fois que nécessaire.

Bonus : la liste des mots clefs déjà choisis est affichée sous le formulaire. Chaque mot est cliquable. Un clic le supprime de l’URL et de la liste.

Le formulaire critère mots en action
Le formulaire critère mots en action

Usage du formulaire

-  Sur une seule page

  • en affichant tous les groupes de mots :
    <div class="ajax">
    [(#FORMULAIRE_RECHERCHE_PAR_MOTS)]
    </div>
  • en n’affichant que certains groupes de mots :
    #SET{FiltreGroupes,#ARRAY}
    <BOUCLE_FiltreGroupes(GROUPES_MOTS){titre==^[^_]}>
    #SET{FiltreGroupes,
           #GET{FiltreGroupes}|push{#ID_GROUPE}}
    </BOUCLE_FiltreGroupes>
    <div class="ajax">
    [(#FORMULAIRE_RECHERCHE_PAR_MOTS{#GET{FiltreGroupes}})]
    </div>

    Ici, on a choisi de ne pas afficher les groupes de mots commençants par “_”.

-  On peut aussi utiliser le formulaire sur toute les pages du site pour renvoyer sur une page de résultats :

  1. [(#FORMULAIRE_RECHERCHE_PAR_MOTS{'',#URL_PAGE{pagederesultats}})]

NB :

  • le premier paramètre est un tableau d’identifiants de groupes, ou la chaine vide
  • le deuxième paramètre est l’URL de la page qui affiche les résultats.

Usage avec le plugin Mots arborescents

Par défaut, seul le mot-clé demandé est recherché.

Mais il est possible de trouver via n’importe quel mot-clé de la branche du mot-clé demandé en mettant dans mes_options.php :

if (!defined('_CRITERE_MOTS_ARBO_BRANCHE'))
    define('_CRITERE_MOTS_ARBO_BRANCHE', true); 

Footnotes

[1Pour des pages incluses, il suffit de passer {mots} comme paramètre d’inclusion.

[2Car un nombre entre 0 et 1 est un pourcentage

[3Si vous n’avez pas désactivé javascript

NOTA SPIP branche 2.*

Attention : la partie formulaire de ce plugin ne fonctionnera pas avec la version 2.0.10 de SPIP. Il faut :

On pourra utiliser le plugin pour, par exemple afficher les articles connexes.

updated on 15 July 2019

Discussion

71 discussions

  • 6

    j’ai découvert ce plugin avant de commencer à développer mon site et je l’ai trouvé génial pour moi car j’envisageais une navigation par mots clés uniquement. J’y ai donc tout de suite vu une très bonne manière pour l’utilisateur de rajouter ou d’enlever des filtres de navigation.

    Mais voilà, j’ai fait des choix lors de mon développement, notamment celui d’utiliser le plugin-squelette zpip et de démarrer avec un thème de départ à modifier.

    Seulement voilà, au moment de mettre en place le plugin, je réalise qu’il ne fonctionne plus. Le formulaire affiche le select pour les groupes mais apres le choix, le select pour les mots du groupe ne s’affiche pas.

    Apres avoir longtemps cherché, j’ai réalisé que le plugin fonctionnait si je changeais simplement le thème appliqué. j’en déduit donc que le thèmes tincrédible est coupable. Seulement voilà, j’en suis à un stade où je ne peux plus m’en passer. je dois donc trouver le pkoi du comment.

    Si vous aviez une piste ou deux à explorer!!! Merci d’avance!

    • cela m’étonne que le thème trincredible empêche l’affichage. Un thème gère la présentation, pas le contenu. Vous auriez un site exemple ?

    • Je peux le mettre en ligne sur mon pc si vous êtes encore là!
      http://78.230.32.35/

    • J’ai mis le switcher de thèmes! La preuve est qu’il suffit de changer de thèmes pour que cela fonctionne.

    • effectivement !

      pour le coup je pense que c’est thincredible qui met du js qui pose des soucis avec l’ajax natif de spip. Tu a essayer une pagination ajax par exemple ? ou un autre formulaire en ajax ?

      le mieux serait de demander sur le forum de tincredible

    • Les paginations fonctionnent et j’ai fait d’autres inclusions en ajax avec passage de variables qui fonctionnent.

      En tous cas merci d’avoir regardé!

    • Ben voilà! Tu m’as mis sur la piste! C’est bien le script pour le slider de la page d’accueil et qui était chargé dans le header directement depuis la surcharge du thèmes qui était en conflit! Ce qui est étonnant car l’ajax fonctionnait malgré tout jusque là!

      Bref! j’ai déplacé le script sur la noisette du slider et le tou est joué!

      Merci

    Reply to this message

  • 4
    Christophe BORD

    Bonjour,

    En utilisant ce plugin de la manière décrite avec un paramètre d’inclusion je rencontre un écueil :

    Dans un premier squelette je calcule un tableau criteres avec #SET et j’aimerais le passer comme paramètre à mon inclusion.

    1. #SET{criteres, #VAL{}|tabCriteres{#ENV{id_mot}}}

    tabCriteres est un filtre qui me renvoie un tableau, cette partie fonctionne.
    ....

    1. <INCLURE{fond=inc-syndic-tous}{{ {criteres} }}>

    Dans le second squelette inclus se trouve ma boucle :

    1. <BOUCLE_articles(ARTICLES){mots 100% #GET{criteres}}{par date}{inverse}>

    Ma boucle ne me donne pas de résultats. Avant l’inclusion le tableau compte pourtant bien plusieurs éléments. Quelque chose m’échappe ?

    • Christophe BORD
      1. <INCLURE{fond=inc-syndic-tous}{criteres}>

      Les parenthèses surnuméraires sont une étourdrier de ma part, je voulais mettre en gras.

    • le passage des #SET ne se fait pas automatiquement dans les squelettes inclus. Ce sont les #ENV qui le font.

      Donc pour toi il faudrait que tu fasse :

      1. <INCLURE{fond=inc-syndic-tous}{criteres=#GET{criteres}}>

      Cela signifie que tu passe comme paramètre d’environnement criteres le contenu de #GET{criteres}
      et dans le squelette inclus :

      1. <BOUCLE_articles(ARTICLES){mots 100% #ENV{criteres}}{par date}{inverse}>
    • Christophe BORD

      Merci Maieul, ca m’avait complètement échappé.

    • Christophe BORD

      Si en plus le critère est optionnel
      {mots? 100% #ENV{criteres}}
      fonctionne très bien.
      Comme ça n’allait pas de soi en ce qui me concerne, ça peut peut être servir à d’autres.

    Reply to this message

  • 4

    Bonjour

    J’aimerais afficher la liste complète des mots clefs discriminants.

    J’arrive à récupérer une liste d’articles associée à des mots clefs,
    mais comment peut on récupérer les mots cléfs supplémentaires utiles pour affiner la recherche ?
    C’est à dire qu’après avoir récupérer les articles ayant le mot clef A,
    une liste me propose les mots clefs B et C car un article possède les mot A et B
    et un autre les mots A et C.
    C’est ce que semble faire l’exemple fourni dans le plugins dans les SELECT,
    mais j’aimerais afficher une liste directement cliquable des mots clefs “ajoutables”
    comme l’est actuellement celle des mots clef “supprimables” dans l’exemple.
    Cela serait extremement pratique comme mode de recherche.

    Est ce possible ?

    Merci beaucoup

    • oui c’est possible (même si je ne comprend pas tout ce que tu veux). Tu connais un peu ou pas du tout le système de boucles de SPIP ?

    • je connais un peu oui, je me débrouille avec les boucles de base

      pour préciser mon idée :

      • on affiche tous les mots clefs (facile je sais faire)
      • on clique sur l’un d’entre eux
      • la liste des articles ayant se mot clef s’affiche (facile je sais faire)
      • la liste des mots clefs se mets a jour pour ne laisser que les mots clefs supplémentaires également liés aux articles affichés précédemment (là je sèche)

      cas pratique :

      • j’ai 4 mots clefs A, B, C et D
      • 2 articles
        • article 1 mot clef A B
        • article 2 mot clef A C
      • la liste des mots clefs s’affiche : A B C D
      • je clique sur A
      • on m’affiche l’article 1 et 2 et les mots clefs B et C (mais pas D car il ne permet pas d’affiner sa recherche)
      • je clique sur B
      • seul l’article 1 s’affiche et la liste des mots clefs est vide (on est au bout des sélections possibles)
      • une autre liste affiche les mots clefs sélectionnés pour les supprimer d’un clic (comme dans l’exemple fourni avec le plugins)

      Merci

    • Alors il faut que tu stocke dans un tableau (#ARRAY) les id_article associés aux mots déjà sélèctionnés. Puis que tu fasse une boucle mots en prenant comme critère les id_articles de ce tableau.

      Quelquechose du genre :

      #SET{id_articles,#ARRAY}
      <BOUCLE_articles(ARTICLES){mots}>
      #SET{id_articles,#GET{id_articles}|push{#ID_ARTICLE}}
      </BOUCLE_articles>
       
       
       
      <BOUCLE_mots_articles(MOTS){id_article IN #GET{id_articles}}>
      #ID_MOT
      </BOUCLE_mots_articles>
       
      </B_articles>
      <BOUCLE_mots(MOTS)>
      #ID_MOT
      </BOUCLE_mots>
      <//B_articles>
    • merci je vais tester ca

    Reply to this message

  • 2

    salut,

    J’ai mis en place un moteur de recherche voir l’image jointe, mais en dehors des mots j’ai un champ input que l’internaute doit remplir. Pour l’instant si je choisis les mots clés j’ai un résultat par contre si je cherche la présence d’un mot dans les titres des articles ou dans les textes en tapant un mot dans le champ input j’ai pas de résultat. Est ce quelqu’un peut m’aider??

    • les mots qu’on frappe dans le input doivent être cherché parmis les mot clefs ou dans le corps du texte ?

      tu a ton code ?

    • Merci de votre réponse

      finalement ca marche, les mots qu’on frappe dans le input doit cherché dans le corps du texte

      voici quand même le formulaire:

      <form action="spip.php?page=resultat" method="get" >
                      
                                                      <input name='page' value='resultat' type='hidden' />
                                                      [<input name='lang' value='(#ENV{lang})' type='hidden' />]
      
                                            
                                                
                                                 <!-- la chaine cherchee -->                                        
                                                      <input type="text" class="forml" name="recherche" id="recherche-avancee" value="#RECHERCHE"  />        
              
      
                                                      <B_g1>
                                                      <select name="mots[0]">
                                                      <BOUCLE_g1(GROUPES_MOTS){id_groupe IN 3}>
                                                      <option value="">#TITRE</option>
                                                      <BOUCLE_surmot(MOTS){id_groupe}{par multi titre}>
                                                      <option value="#ID_MOT" [(#ENV{id_mot}|=={#ID_MOT}?{"SELECTED"})]>#TITRE </option>
                                                      </BOUCLE_surmot>
                                                      </select>
                                                      </BOUCLE_g1>
                                                      </B_g1>
      
      
                                                      <B_g2>
                                                      <select name="mots[1]">
                                                      <BOUCLE_g2(GROUPES_MOTS){id_groupe IN 4}>
                                                      <option value="">#TITRE</option>
                                                      <BOUCLE_surmot2(MOTS){id_groupe}{par multi titre}>
                                                      <option value="#ID_MOT" [(#ENV{id_mot}|=={#ID_MOT}?{"SELECTED"})]>#TITRE </option>
                                                      </BOUCLE_surmot2>
                                                      </select>
                                                      </BOUCLE_g2>
                                                      </B_2>
       <input type="submit" class="bouton" value="<:rechercher:>" />
       </form>

      Pour la page resultat :

    Reply to this message

  • 4

    Salut tout le monde,
    J’utilise ce plugin pour afficher le resultat de la recherche sur un carte googlemaps, mais jusque là j’ai pas le resultat correcte est ce quelqu’un sy connait et voudrait bien m’aider.

    voici mon formulaire

    <form method="post" name="mot"  action="spip.php?page=resultat">
    <select name="mots[0]">
    <BOUCLE_grr(GROUPES_MOTS){id_groupe=4}>
    [<option value="">#TITRE</option>]
    <BOUCLE_mots5(MOTS) {id_groupe}>
    <option value="#ID_MOT">#TITRE</option>
    </BOUCLE_mots5>
    </BOUCLE_grr>
    </select>
    <select name="mots[1]">
    <BOUCLE_grrr(GROUPES_MOTS){id_groupe=2}>
    [<option value="">#TITRE</option>]
    <BOUCLE_mots6(MOTS) {id_groupe}>
    <option value="#ID_MOT">#TITRE</option>
    </BOUCLE_mots6>
    </BOUCLE_grrr>
    </select>
                            
     <input type="submit" value="<:info_rechercher:>" name="ok">
     </form>

    et voici ce que j’ai sur la page resultat.html

    [(#MODELE{carte_gis}{mots?}{limit=4000}{recherche ?}
                    {latit=-1.990}{lonxit=29.891}{zoom=8}{type=carte}{control_type=oui}{zoom_molette=non}{attente=1})]

    Comme vous le voyez j’ai bien mis mots? sur l’inclusion du modele de la carte et pourtant j’ai pas les bons resultats. Ou bien cela ne marcherai qu’avec les boucles articles et NON sur une carte googlemaps???

    PS: sur la carte je dois avoir les articles attachés aux mots clés choisit

    Merci de votre réponse

    • a tu hasard : ton #MODELE est-il appelé dans un fichier lui même inclus. Si oui, lui passe tu correctement l’option mots ?

    • Merci de votre réponse mais je suis toujours dans la galère. Le modèle carte_gis est dans un dossier modele qui se trouve à la racine du plugin gis. Alors je sais que si j’appel le modèle en faisant #MODELEcarte_gis je dois ajouter mots? ce que j’ai fais mais rien ne marche.

    • je parlais du squelette qui appel #MODELE{carte_gis} : est-il lui même appelé par un autre squelette ?

    • le modele carte_gis est appelé unique dans le squelette resultat.html pour afficher les articles sur la carte. et le squelette resultat est utilisé dans le formulaire
      <form method="post" name="mot"  action="spip.php?page=resultat">
      Alors est ce que je dois passer l’option mots sur "spip.php?page=resultat" ? si oui comment.?

      Merci encore pour votre aide, je ne suis pas bien en dev je me débrouille tout simplement

    Reply to this message

  • 3

    Bonjour tout le monde,

    J’utilise un formulaire, j’affiche 3 groupes et chaque groupe a ses propres mots clés. Mais je ne sais ce qu’il faut faire (quelle boucle) pour afficher les resultats correctement.
    1/ si on choisit un mot clé que les articles attaché a ce mot s’affichent
    2/ si on choisit deux mots clés qu’on ai la liste des articles qui sont attachés a ces deux mots clé(uniquement) sinon rien ....etc etc
    voici le code qui affiche mon formulaire:

    <form method="post" name="mot"  action="spip.php?page=recherche2">
    <select name="mots[0]">
    <BOUCLE_gr(GROUPES_MOTS){id_groupe=2}>
    [<option value="N">#TITRE</option>]
    <BOUCLE_mots4(MOTS){id_groupe}>
    <option value="#ID_MOT">#TITRE</option>
    </BOUCLE_mots4>
    </BOUCLE_gr>
    </select>
    
    <select name="mots[1]">
    <BOUCLE_grr(GROUPES_MOTS){id_groupe=3}>
    [<option value="N">#TITRE</option>]
    <BOUCLE_mots5(MOTS) {id_groupe}>
    <option value="#ID_MOT">#TITRE</option>
    </BOUCLE_mots5>
    </BOUCLE_grr>
    </select>
    
    <select name="mots[2]">
    <BOUCLE_grrr(GROUPES_MOTS){id_groupe=4}>
    [<option value="N">#TITRE</option>]
    <BOUCLE_mots6(MOTS) {id_groupe}>
    <option value="#ID_MOT">#TITRE</option>
    </BOUCLE_mots6>
    </BOUCLE_grrr>
    </select>
    
    <input type="submit" value="Submit" name="ok">
    </form>

    dans la page recherche2 j’ai ca :

        <ul>
        <BOUCLE_articles1(ARTICLES){mots?}>
                      <li><a href="#URL_ARTICLE">#TITRE</a></li>
                    </BOUCLE_articles1>
         </ul>

    mais j’ai pas le resultat que je cherche, surtout pour les 2 point que j’ai cité en haut par contre si je choisis 3 mots clé ,s’ils ont un article commun il s’affiche

    Merci de votre aide

    • Je pense qu’il faudrait que vous ne mettiez pas de value à la balise option affichant le titre des groupes.

    • Bonjour,
      J’ai une question suivant cette logique....Et si ma recherche se limiter dans une rubrique??? parce qu’ avec ce formulaire la recherche se fait dans tout le site mais je me demande si on devait se limiter dans une seule rubrique?
      j’ai essayé de changer la boucle du resultat comme ca mais sans succer:

       
      <ul>
         <BOUCLE_articles1(ARTICLES){mots?}{id_rubrique}>
                        <li><a href="#URL_ARTICLE">#TITRE</a></li>
                      </BOUCLE_articles1>
          </ul>

      Merci de votre réponse

    • si votre boucle n’est pas dans un boucle rubriques, il ne va pas savoir de quelle rubrique on parle.

      il faudrait que vous mettiez

      {id_rubrique=NNN} où NNN est le numéro de la rubrique.

      Il faudrait pour plus détail le contexte de boucle.

    Reply to this message

  • 6

    Bonjour,

    étant débutant sur spip, je n’ai pas bien compris comment marche le plugin critères.

    Mon objectif: sur ma page articles, avoir une zone “voir aussi” avec des articles partageant des mot clés avec l’article courant.

    Un bout de code-test où j’essaye d’ afficher le titre des articles ayant les mots clés n°33 et 30)

    #SET{mots, #ARRAY{0,33,1,30}
    <BOUCLE_articles(ARTICLES){mots}>
    #TITRE
    </BOUCLE_articles>

    Rien ne passe et dans le debug de spip j’obtiens ceci pour le résultat de la boucle:

    SELECT articles.id_article, articles.titre, articles.id_rubrique, articles.lang
    FROM spip_articles AS `articles`
    WHERE (articles.statut = ’publie’)
    AND 0=1

    Merci beaucoup pour votre aide

    • Bon,

      c’est expliqué dans la documentation, mais je reprend.

      <BOUCLE_articles(ARTICLES){mots}>

      En l’état, cela va utiliser le tableau mots passés en Environnement (voir mon article sur la balise #ENV), là vous avez mis non dans un tableau d’environnement mais dans une variable de type SET / GET.

      Suiant le manuel dans la partie “les paramètres supplémentaires”, vous devez passer un tableau en 3 paramètre.

      Ce qui donne :

      #SET{mots, #ARRAY{0,33,1,30}}
      <BOUCLE_articles(ARTICLES){mots 100% #GET{mots}}>
      #TITRE
      </BOUCLE_articles>
    • Tout marche ! Merci beaucoup pour l’aide et ce plugin !

      Dernières question:s

      Dans la boucle

      Si je rajoute en critères 0,5, les articles listés seront affichés dans quel ordre ? au hazard ?
      Existe-t-il une astuce pour que les 5 articles listés soient triés des plus “similaires” aux moins similaires ?

      Clem

    • par défaut les articles seraient triés par identifiant (numero).

      vous pouvez utiliser n’importe quel filtre de tri de SPIP.

      Par contre, pour “du plus similaire au moins similaire” je vois pas, ne comprenant pas ce que vous entendez par “similaire”.

    • Un exemple pour ilustrer le mot “similaire”

      Un article A possède ces mots clés:
      -  toto
      -  blibli
      -  blabla

      Un article B possède ces mots clés:
      -  toto
      -  blibli
      -  dsqgcdsqg

      Un article C possède ces mots clés:
      -  toto
      -  sdbsdh
      -  hgsqjdgsd

      L’article B est “similaire” à 66% avec l’article A
      L’article C est “similaire” à 33% avec l’article A

      Existe-t-il un critère de tri ou une astuce pour mettre l’article B en premier et l’article C en deuxième ?

    • désolé, là comme cela je ne vois pas.

      il faudrait que je creuse le SQL pour améliorer le plugins, mais je crois pas avoir le tps :(

    • Dommage :/ Tant pis on fera de l’aléatoire, ça marchera déjà très très bien.
      Encore merci pour ce joli plugin !

    Reply to this message

  • 1

    Bonjour
    j’ai un pb sur ff
    quand je clique sur un mot clé j’ai un “noajax” qui apparait...
    sur ie ça passe nickel!!

    quelqu’un pourrait il m’aider?

    merci pour vos réponse

    • faut enlever “refuser_traiter_formulaire_ajax();” dans la fonction function “formulaires_recherche_par_mots_traiter_dist($filtre_groupes = null, $url_resultat = null)
      du dossier “recherche_par_mots.php”

    Reply to this message

  • 1
    patrice47310

    Bonjour,
    Merci pour votre réponse.
    En fait je dois essayer d’adapter ce plugin à notre besoin.
    Nous devons mettre en place une recherche guidée multicritère
    PUBLIC et TYPE-DOCUMENT et THEMATIQUE
    le probléme c’est que THEMATIQUE à environ 230 entrées hiérachisées et nous pensons que cela ne sera pas pratique si l’utilisateur choisi THEMATIQUE (trop long).
    Donc j’ai d’abord dissocié les thématique pour faire un pré-filtre en créant deux groupes de mots cles THEMATIQUES et SOUS-THEMATIQUES
    Malheureusement, à l’indexation un l’article peut associé à plusieurs thematiques et sous thematiques (exemple: j’indexe un article aux thématiques DROIT et HISTOIRE puis aux sous-thematiques DROIT PENAL et HISTOIRE DE LA JUSTICE .
    A la recherche si je sélectionne la thematique DROIT puis le groupe sous-thematique alors je retrouve DROIT PENAL et HISTOIRE DE LA JUSTICE.
    je souhaiterai avoir uniquement les sous thematique liées au DROIT.
    C’est pour cette raison que j’ai supprimé le groupe sous-thematique et j’ai crée des groupes ayant le même nom que les mots clé du groupe themathiqueTHEMATIQUE.
    Je souhaiterai que lorsque je sélectionne un mot du groupe thématique exemple “histoire”,
    qu’il apparaisse dans la deuxième liste déroulante le contenu du groupe “histoire”.
    cela permettrai de liér les groupes avec une hiérachisation
    j’espère avoir été plus clair?
    Je vais essayer de voir si je peux faire quelque chose avec ce que vous m’avez donnée.
    Si quelqu’un a des idées je suis preneur!
    Merci

    • heu .... je crois avoir compris.

      Bon, ce que je vous ait proposé devrait le faire (a vous d’entourer cela des bonnes balises html)

      par contre pour que les changements se fasse dynamiquent (ID : sans avoir à valider lors de la selection du groupe) il faut faire du js je pense ... et ca je suis pas très doué.

    Reply to this message

  • 1
    patrice47310

    Bonjour,

    Je dois mettre en place une recherche guidé, j’ai installé le plugins et je le trouve génial.
    Avec ce plugins nous ne pouvons pas faire de recherche infructueuse.
    Néanmoins, nous avons des groupes de mots clé hiérarchisés.
    Donc pour la faire, j’ai créé un groupe thématique avec les mots suivants:
    droit
    histoire
    management
    puis j’ai créé les groupes droit, histoire, management.
    Je souhaiterai que lorsque je sélectionne un mot du groupe thématique exemple “histoire”,
    qu’il apparaisse dans la deuxième liste déroulante le contenu du groupe “histoire”.
    cela permettrai de liér les groupes avec une hiérachisation
    Avez vous des idées?

    • Hum, cela n’a pas grand chose a voir avec le plugin. Nez en moins

      Je crois qu’il y a une contribution de “mot clef hierarchique” qui permettrai de faire cela plus simplement (en évitant par exemple d’avoir des mots pas orthographiés tt à fait de la même manière que le groupe correspondant).

      Sinon une boucle

      <BOUCLE_mots(MOTS)>
      <BOUCLE_groupe_n2(GROUPES_MOTS){titre=#TITRE}>
      #TITRE
      </BOUCLE_groupe_n2>
      </BOUCLE_groupe_n1>

      et si vous voulez faire cela de manière recursive

      <BOUCLE_mots(MOTS){id_groupe ?}>
      <BOUCLE_groupe_n2(GROUPES_MOTS){titre=#TITRE}>
      #TITRE
      <BOUCLE_rec(Boucle_mots) />
      </BOUCLE_groupe_n2>
      </BOUCLE_groupe_n1>

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom