Tutoriel : Ajouter un champs au moteur de recherche interne

Proposez ici vos templates, vos plugins ou demandez en un.
Tous les tutoriels disponibles pour Arfooo Annuaire sont disponible dans cette rubrique

Tutoriel : Ajouter un champs au moteur de recherche interne

Messagede Arf » Mar 23 Déc 2008 00:47

Bonjour,

Ce tutoriel va vous permettre d'ajouter un champs au moteur de recherche interne d'Arfooo Annuaire.
Vous pourrez donc chercher par exemple l'adresse, le numéro de téléphone, fax...

Ouvrir :
Code: Tout sélectionner
models/SiteModel.php


Chercher :
Code: Tout sélectionner
function createSearchCriteria($phrase)
    {
        $phrase = strtr($phrase, '+-><()~*"', ' ');
        $words = preg_split("#\s+#", $phrase);
        $phrase = "+".implode(" +", $words);
       
        $phrase = addslashes($phrase);
        $c = new Criteria();
        $c->add("MATCH (siteTitle, description)
        AGAINST ('$phrase' IN BOOLEAN MODE)");
        $c->addOr("LOCATE( '$phrase', url ) > 0 ");

        return $c;
    }


Remplacer par :
Code: Tout sélectionner
function createSearchCriteria($phrase)
    {
        $rawPhrase = addslashes($phrase);
        $phrase = strtr($phrase, '+-><()~*"', ' ');
        $words = preg_split("#\s+#", $phrase);
        $phrase = "+".implode(" +", $words);

        $phrase = addslashes($phrase);
        $c = new Criteria();
        $c->add("MATCH (siteTitle, description)
        AGAINST ('$phrase' IN BOOLEAN MODE)");
        $c->addOr("LOCATE( '$rawPhrase', url ) > 0 ");

        return $c;
    }



Une fois cette modification effectué, rechercher la ligne :
Code: Tout sélectionner
$c->addOr("LOCATE( '$rawPhrase', url ) > 0 ");


Une fois cette ligne localisé, il suffit d'ajouter après cette ligne, une nouvelle ligne contenant le nom du champs de la base de données.

Par exemple pour rechercher dans le champs fax, il faut ajouter cette ligne :
Code: Tout sélectionner
$c->addOr("LOCATE( '$rawPhrase', faxNumber ) > 0 ");


Vous obtenez :
Code: Tout sélectionner
$c->addOr("LOCATE( '$rawPhrase', url ) > 0 ");
$c->addOr("LOCATE( '$rawPhrase', faxNumber ) > 0 ");


Code: Tout sélectionner
faxNumber
se trouve dans la base de données, il suffit donc avec phpmyadmin de chercher le champs que vous voulez ajouter.

Cependant, à chaque nouveau champs ajouté, les requêtes à la base de données sont plus nombreuses, donc les performances seront diminuées.

Ce sera léger mais je tiens à le signaler.

Cordialement,
Arf
Arf
Administrateur du site
 
Messages: 3082
Inscription: Lun 21 Jan 2008 14:53


Re: Tutoriel : Ajouter un champs au moteur de recherche interne

Messagede samourai69 » Mar 23 Déc 2008 11:36

Merci Arf pour ce tuto !! c'est un peu comme un cadeau de Noel avant l'heure :D :D :D
samourai69
 
Messages: 250
Inscription: Jeu 6 Nov 2008 12:35

Re: Tutoriel : Ajouter un champs au moteur de recherche interne

Messagede 37°2 » Mar 23 Déc 2008 13:14

Hello,

Ca a l'air sympa, mais comment l'utilisateur va savoir qu'il peut rechercher en plus une adresse un N° de tel ??

Il aurait été bien d'avoir sous le moteur un lien du style "Recherche avancée" avec sur la page suivante la possibilité de sélectionner le type de recherche.

Une idée, comme ça ;)

A++
37°2
 
Messages: 87
Inscription: Lun 8 Déc 2008 18:27

Re: Tutoriel : Ajouter un champ au moteur de recherche interne

Messagede 3dOxyd » Jeu 25 Déc 2008 21:02

Bonjour Arf,

Merci pour cette modif tant attendue !
...Malheureusement, même en suivant les instructions à la lettre, je n'ai pas réussi à le faire marcher. Voici le code (encadré des lignes que je n'ai pas touchées):
Code: Tout sélectionner
$c->addOr("LOCATE( '$phrase', url ) > 0 ");
$c->addOr("LOCATE( '$phrase', faxNumber ) > 0 ");

return $c;
J'ai même changé le type en tinytext ou text pour le cas où... mais ça n'a rien changé. J'ai cru comprendre dans la ligne du dessus qu'on pouvait chercher aussi dans les url, mais échec là aussi.
Est-ce que j'ai oublié quelque chose?

Merci

Philippe
3dOxyd
 
Messages: 43
Inscription: Mer 19 Nov 2008 10:23

Re: Tutoriel : Ajouter un champs au moteur de recherche interne

Messagede samourai69 » Sam 3 Jan 2009 22:36

Bonsoir 3dOxyd , Arf ne donnant plus aucun signe de vie, je me suis pencher sur le probleme car son tutoriel ne marche pas chez moi non plus ! :lol:

en fait il ne faut pas du tout rajouter cette ligne!
Code: Tout sélectionner
$c->addOr("LOCATE( '$phrase', faxNumber ) > 0 ");


mais rajouter faxNumber comme ca 2 ligne au dessus :
Code: Tout sélectionner
        $c->add("MATCH (siteTitle, description, faxNumber)


car tout simplement! c'est la fonction MATCH qui fais les recherches dans la bd. C'est le B.A.B.A du SQL

Pour ceux qui veulent apprendre ou pofiner leur connaissance sql ce site est pas mal: http://sql.developpez.com/
samourai69
 
Messages: 250
Inscription: Jeu 6 Nov 2008 12:35

Re: Tutoriel : Ajouter un champs au moteur de recherche interne

Messagede 3dOxyd » Dim 4 Jan 2009 15:50

Bonjour samourai69

Merci pour ta réponse....ça marche !
Je serai quand même curieux de savoir ce que voulait faire Arf car il n'a pas dû mettre ça au hasard; soit nous avons mal posé notre question, soit il a anticipé sur un prochain développement ?

Merci encore

Phil
3dOxyd
 
Messages: 43
Inscription: Mer 19 Nov 2008 10:23

Re: Tutoriel : Ajouter un champs au moteur de recherche interne

Messagede Arf » Mer 7 Jan 2009 20:05

MATCH c'est pour du fulltext :)
C'est juste qu'avec la nouvelle version, j'ai oublié lors du changement de la fonction recherche et du AND qu'il fallait que je modifie cette partie.
Donc la recherche par l'url du site ne fonctionne plus par exemple.
Ce sera corrigé dans la prochaine version bien entendu.

Je modifie donc le tutoriel de façon à ce que tout fonctionne correctement.
Arf
Administrateur du site
 
Messages: 3082
Inscription: Lun 21 Jan 2008 14:53

Re: Tutoriel : Ajouter un champs au moteur de recherche interne

Messagede samourai69 » Mer 7 Jan 2009 21:30

merci beaucoup pour la modification :D :D :D :D :D :D :D :D :D :D :D :D :D
samourai69
 
Messages: 250
Inscription: Jeu 6 Nov 2008 12:35

Re: Tutoriel : Ajouter un champs au moteur de recherche interne

Messagede niceTrotter » Ven 2 Avr 2010 17:56

Merrci par contre, cette technique n'est plus valable ?
De plus, est ce qu'une mise à jour ne l'écraserait pas ?
niceTrotter
 
Messages: 3
Inscription: Ven 2 Avr 2010 10:56

Re: Tutoriel : Ajouter un champs au moteur de recherche inte

Messagede Dami1 » Mar 7 Sep 2010 15:28

Bonjour,

Est-ce qu'il existe un tutoriel qui soit mis à jour pour pouvoir l'utiliser avec la version 2.0.0? Merci.
Dami1
 
Messages: 16
Inscription: Mar 7 Sep 2010 14:04

Suivante

Retourner vers Templates, plugins et tutoriels

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

 
Copyright © arfooo.com  2007 - 2011  -  Tous droits réservés  -  Partenaires de confiance
Sites du groupe: petites annonces gratuites   voyance en direct - tirage tarot   Consultant en référencement
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group | phpBB SEO Traduction par: phpBB-fr.com
cron