SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano

246 Plugins, 178 contribs sur SPIP-Zone, 142 visiteurs en ce moment

Accueil du site > Navigation > Recherche > Recherche multi-critère par mots-clés

Recherche multi-critère par mots-clés

15 janvier 2005 – par Paul Sanches – 79 commentaires

2 votes

Cette contribution a 3 objectifs :

Le premier est de proposer une recherche multi-critère par mots-clés sur les articles d’un site spip.

Le second est de permettre de placer dans n’importe quelle page de rubrique d’un site spip une recherche multicritère avec les groupes de mots-clés que l’on veut.

Le troisième est de pouvoir créer une page indépendante du site spip, c’est-à-dire une page de recherche multicritère qui n’est liée à aucune rubrique particulière (ca peut être dans un squelette article par exemple).

Exemple :
Dans une rubrique nommée emploi, on peut avoir une recherche avec 3 groupes de mots-clés :

-  offres d’emploi
-  formation
-  offres de stages

On peut aussi avoir une page (que l’on nomme formulairemot.php3 et qui va avec formulairemot.html) qui n’est associée à aucune rubrique, regarder l’image :

Bien évidemment la recherche se fait sur les mots clés du groupe et non sur le groupe pour faire une recherche sur le groupe il faut sélectionner tous les mots clés du groupe.

Lien de démo

http://paul.1formatik.com/rubrique.php3?id_rubrique=1

Installation

Vous trouverez ci-joint 5 fichiers :

AddGroupmotDsRub.php
(permet d’ajouter un mot ou plusieurs groupes de mots-clés aux rubriques de votre site, il permet aussi d’effacer un ou plusieurs groupe de mots-clés attachés à une rubrique.)

requete.php
Crée la table spip_rubriques_groupes dans mysql automatiquement, ce fichier s’autodétruit une fois la table créée.

inc-search.php
(c’est le formulaire de recherche à inclure dans vos squelettes)

searchresult.php3 et searchresult.html
(C’est la page de resultat, on peut présenter les résultats soit par Rubrique soit par mots-clés.)

1ème étape :

Placer dans votre répertoire ecrire les fichiers :
requete.php
AddGroupmotDsRub.php

Placer dans votre site SPIP à la racine, les 3 fichiers :
inc-search.php
searchresult.php3
searchresult.html

2ème étape :

Il suffit de faire un include dans votre squelette rubrique, là où vous souhaitez voir apparaître le formulaire de recherche multicritères.
Ajouter le code suivant :

<?php
        include ("inc-search.php");
?>

3ème étape :

Créer la table mysql : spip_rubriques_groupes

Pour cela, aller à cette adresse : http://www.monsiteweb.fr/ecrire/req...

La table est alors créée et vous êtes redirigé vers la page AddGroupmotDsRub.php, qui vous permet de choisir les groupes de mots-clés à associer à telle ou telle rubrique. Attention, vous devez vous être connecté à l’espace privé pour pouvoir faire les modifications.

Si la table n’a pas pu être créée automatiquement, exécuter cette requête à l’aide de phpmyadmin sur mysql :

CREATE TABLE `spip_rubriques_groupes` ( `id_groupe` bigint(21) NOT NULL default ’0’, `id_rubrique` bigint(21) NOT NULL default ’0’, KEY `id_groupe` (`id_groupe`,`id_rubrique`) ) TYPE=MyISAM ;

Allez ensuite à l’adresse : http://www.monsiteweb.fr/ecrire/Add... à l’aide de votre navigateur web et selectionnez les groupes de mots-clés que vous souhaitez attacher à une rubrique.

Vous retrouverez dans le menu déroulant des rubriques le champs multisearch, c’est en fait la rubrique 0 qui n’est attachée à aucune rubrique.

Attention : il est impératif, pour voir fonctionner cette contrib, d’avoir créer au préalable des mots-clés dans l’interface privée et d’associer certains de ces mots-clés ou tous à des articles

Et pour finir, allez dans la rubrique où vous avez décidez de proposer une recherche multicritères et testez.

En option

Vous pouvez avoir besoin d’utiliser un formulaire avec une recherche multicritère ailleurs que dans une rubrique, il faut alors :

-  Ajouter un champs à spip_groupes_mots, exécuter alors la requête suivante dans phpmyadmin ou équivalent :

ALTER TABLE `spip_groupes_mots` ADD `is_multisearch` TINYINT DEFAULT ’0’ NOT NULL ;

-  Ajouter le code suivant dans le squelette qui n’est lié à aucune rubrique particulière (ca peut être dans un squelette article par exemple).

<?php
        $id_rubrique=0;
        include ("inc-search.php");
?>

Cette contribution a totalement été revue, elle a été testée sur SPIP 1.7, 1.7.1, 1.7.2 et 1.8b2.

Elle utilise maintenant les fichiers de connection de SPIP, elle est donc secure. Autres avancées, on ne modifie plus du tout le noyau de SPIP et la table supplémentaire est créée automatiquement.

Cette contribution a été testé avec les navigateurs suivants :
-  Firefox, safari, mozilla, IE sous mac os x 10.3.6 (merci à Karim Belkacem et Yorghos) et Firefox, IE sous windows XP et 2000.

Je mets le zip ici :

Zip - 6.1 ko
Recherche multi-critère par mots-clés

En attente de commentaires...

Retour en haut de la page

79 Messages de forum

Voir toute la discussion

Pages 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8

  • Répondre à ce message

    26 janvier 00:52, par Fred

    Bonjour,

    J’ai essayé d’installer ce plugin sur un site sous spip2.0.8.

    Voici le message d’erreur lorsque j’essaye d’exécuter le fichier http://www[MONSITEWEB]/ecrire/AddGroupmotDsRub.php  : Warning : main(inc.php3) [function.main] : failed to open stream : No such file or directory in /home/sfenweb/sfenjg.org/ecrire/AddGroupmotDsRub.php on line 43

    Warning : main(inc.php3) [function.main] : failed to open stream : No such file or directory in /home/sfenweb/sfenjg.org/ecrire/AddGroupmotDsRub.php on line 43

    Warning : main() [function.include] : Failed opening ’inc.php3’ for inclusion (include_path=’. :/usr/local/lib/php’) in /home/sfenweb/sfenjg.org/ecrire/AddGroupmotDsRub.php on line 43

    J’ai néanmoins esayé de remplir la table à la main (INSERT INTO `sfendb`.`spip_rubriques_groupes` (`id_groupe` ,`id_rubrique`) VALUES (’3’, ’16’) ; ) - je veux faire une recherche sur le groupe de mo n°3 depuis la rubrique 16. Mais rien ne change. Ce plugin est-il vraiment compatible spip 2.0 ?

    Merci à tous

  • Répondre à ce message

    1er décembre 2009 21:43, par Christophe Noisette

    Bonsoir, j’ai exactement le même problème. Je suis en 2.0.10 et les plugins installés sont :

    Agenda 2.0 : Version : 2.0.4 [33103] — stable cfg : moteur de configuration : Version : 1.14.1 [31734] — stable Le Couteau Suisse - Version : 1.8.09.14 [32581] — stable Activer le plugin Lecteur Flash pour MP3 - Version : 0.2 — stable Menus deroulants - Version : 0.1 — en développement SPIP Bonux 2.0 - Version : 1.8.5 [33049] — stable Squelette par mot clef pour Spip V2.x - Version : 1.0 [33025] — en développement

    C’est bien étrange car j’ai aussi vu des sites Spip 2.0 chez qui le plugin fonctionnait...

    Merci pour votre aide Cordialement

  • Répondre à ce message

    25 novembre 2009 18:29, par marjorie

    je vous réponds avec beaucoup de retard. Toutes mes excuses.

    Le plugin fonctionne ici, sur un site en spip 2.0.9 :

    http://www.radiohead.fr/spip.php?pa...

    la page est longue à charger (j’ai beaucoup de mots clés...).

    Je vais jamais mis à jour le plugin depuis son installation !

  • Répondre à ce message

    9 novembre 2009 12:52, par François Daniel Giezendanner

    Bonjour Marjorie,

    Pouvez-vous :

    • indiquer où vous avez téléchargé le plugin qui fonctionne
    • indiquer une page web de votre site où cette recherche multicritère est en fonction

    Meilleurs messages

    François Daniel Giezendanner

  • Répondre à ce message

    12 octobre 2009 12:10

    apparement une version compatible spip 2 existe.

    elle est fontionnelle sur le site de l’auteur du plugin . par contre il est impossible de la télécharger rofl :s

  • Répondre à ce message

    3 septembre 2009 15:17, par François Daniel Giezendanner

    Bonjour,

    En fait j’avais fait un petit point de situation ici :

    ... Il y avait cet article :

    mais il n’est plus accessible

    Quelqu’un envisage-t-il sa mise à jour pour SPIP 2 ?

    Cordialement

    FDG

  • Répondre à ce message

    2 septembre 2009 12:03, par François Daniel Giezendanner

    Je crois me souvenir que le plugin « Recherche multi-critère par mots-clés » bénéficiait d’un article sur SPIP contrib que je ne retrouve nulle part. L’article a-t-il été supprimé ?

    On trouve par conte le plugin ici :

    Qui est valable pour SPIP 1.9

    Quelqu’un peut-il donner des informations sur l’adaptation de ce plugin pour SPIP 2 et la documentation y relative ?

    Meilleurs messages

    François Daniel Giezendanner

  • Répondre à ce message

    6 mai 2009 22:03, par mike

    Bonjour !

    Voila, je développe actuellement un site en spip 2.06 et j’ai découvert le plugin recherche multicritères qui correspond exactement à ce que je cherche.

    Apres avoir testé, je ne parviens pas à l’installer

    Fatal error : Call to undefined function : spip_abstract_showtable() in c :\program files\easyphp1-8\www\spip\plugins\recherche_multicriteres\base\rec_mc_upgrade.php on line 16

    Le problème ne se pose pas avec une version 1.92 de spip.

    Pourtant j’ai vu des sites en spip2 qui utilisent ce plugin......

    Quelqu’un aurait-il déjà rencontré ce pb ou une idée à suggérer ?

    Cordialement !

    Merci d’avance.

    Mike

  • Répondre à ce message

    27 février 2009 10:53, par hubair

    Bonjour, petite question concernant les possibilités de ce plugin : Le nombre de mots clés à afficher est-il limité (par les performances serveurs). Si j’ai cinq critères de tri comportant chacun 200 mots clés. La page ne sera-t-lle pas trop lourde à afficher ?? Merci...

  • Répondre à ce message

    26 janvier 2009 10:49, par AlainF

    Bonjour Fabrice, dans mon cas (utilisé sous spip 1.9.2g) :

    Dans les critères de ma boucle, j’ai utilisé :

    {id_mot=#ENV{id_mot1}}{id_mot=#ENV{id_mot2}}{id_mot=#ENV{id_mot3}}

    Suite à la requéte :

    <BOUCLE_mot1(MOTS){id_mot=#ENV{id_mot1}}>#SET{mot1,#TITRE}</BOUCLE_mot1>
                    <BOUCLE_mot2(MOTS){id_mot=#ENV{id_mot2}}>#SET{mot2,#TITRE}</BOUCLE_mot2>
                    <BOUCLE_mot3(MOTS){id_mot=#ENV{id_mot3}}>#SET{mot3,#TITRE}</BOUCLE_mot3>

    Après avoir saisi le formulaire :

    <form name="formrest" method="GET" action="spip.php" >
                            <input type="hidden" name="page" value="#ENV{page}" >
                           
                            <h1 style="font-size: 20px; font-weight: bold;margin: 2px 0 5px 0"><:criteres_de_selection:></h1>
                           
                            <div style="display: block; float: left; font-weight: bold; width:200px ; text-align: center; margin-left:20px"><:par_destination:></div><div style="display: block; float: left; width:200px;font-weight: bold; text-align: center;; margin-left:20px"><:par_duree_des_sejours:></div><div style="display: block; float: left; width:200px; font-weight: bold; text-align: center;; margin-left:20px"><:par_type_hebergement:></div><br>
                            <select name="id_mot1" style="display: block; float: left; width:200px; margin-left:20px">
                                    <option value=""><:faites_votre_choix:></option>
                                    <BOUCLE_choixmots1(MOTS){id_groupe=4}>
                                    <option value="#ID_MOT" [(#ENV{id_mot1}|=={#ID_MOT}|?{'selected',''})]> #TITRE</option>
                                    </BOUCLE_choixmots1>
                            </select>
                            <select name="id_mot2" style="display: block; float: left; width:200px; margin-left:20px">
                                    <option value=""><:faites_votre_choix:></option>
                                    <BOUCLE_choixmots2(MOTS){id_groupe=3}{par titre}>
                                    <option value="#ID_MOT" [(#ENV{id_mot2}|=={#ID_MOT}|?{'selected',''})]> #TITRE</option>
                                    </BOUCLE_choixmots2>
                            </select>
                            <select name="id_mot3" style="display: block; float: left; width:200px; margin-left:20px">
                                    <option value=""><:faites_votre_choix:></option>
                                    <BOUCLE_choixmots3(MOTS){id_groupe=5}>
                                    <option value="#ID_MOT" [(#ENV{id_mot3}|=={#ID_MOT}|?{'selected',''})]> #TITRE</option>
                                    </BOUCLE_choixmots3>
                            </select>
                               <input type="hidden" name="lang" value="#LANG" >
                            <input type="submit" value="<:valider:>">
                            </form>

    En espérant que celà réponde à ta question

    Bonne continuation à tous les spipiens qui font vivre ce formidable outil

Pages 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8

Répondre à cet article

Retour en haut de la page

Ça discute par ici

  • Les thèmes de Sarka-SPIP 3

    26 décembre 2009 – 14 commentaires

    Cet article a pour but de présenter brièvement la liste des thèmes propres à Sarka-SPIP au travers d’une galerie de vignettes. La galerie Vous pouvez télécharger le thème que vous désirez en cliquant sur sa vignette. Prochainement, une description de (...)

  • Formulaire de participation à un événement

    23 janvier – 17 commentaires

    Cet article tente de rassembler des informations au sujet de l’affichage d’un formulaire de participation aux événements gérés par le plugin Agenda développé par Cédric Morin. La version 2 du plugin Agenda permet d’afficher dans l’espace public des (...)

  • Le Squelette Zpip

    11 novembre 2009 – 119 commentaires

    Zpip [1] est un squelette réutilisable, modulaire et disposant d’une galerie de thèmes. Il est issu d’une fusion des projets Zesty et SPIP-Zen. Installer Zpip Pour installer Zpip et jouer avec sans plus attendre, il suffit de suivre le guide (...)

  • Plugin Pages uniques

    11 décembre 2008 – 74 commentaires

    Allez, avouez... il ne vous est jamais arrivé d’avoir besoin d’articles qui ne sont rattachés à aucun rubriquage particulier ? Des articles uniques, n’ayant ni de thème, ni de rapport avec aucun autre ? Ou encore des articles pour lesquels vous avez (...)

  • Le Couteau Suisse

    4 mai 2007 – 835 commentaires

    Ce plugin propose d’introduire facilement de simples fonctionnalités supplémentaires à SPIP et qui s’avèrent rapidement indispensables ! Par exemple : des filtres supplémentaires, des balises pratiques, des facilités typographiques, le contrôle de (...)