IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Moteur de recherche Remository - Joomla [Joomla!]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Par défaut Moteur de recherche Remository - Joomla
    Bonjour,

    je ne connais pas beacoup le php mais avec un peu de reflexion j'ai modifié le moteur de recherche et le module de recherche remository (3.42).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    function searchFilesSQL($search_text, $seek_title, $seek_desc, $seek_keywords, &$user) {
    		$interface =& remositoryInterface::getInstance();
    		$search_text = $interface->getEscaped($search_text);
     
    		$sql="SELECT id,containerid,filetitle,description,icon,filesize,keywords,downloads FROM #__downloads_files AS f"; //on prépare la requête SQL
    		$searchspec = 0;
    		if ($seek_title) $searchspec = 2;
    		if ($seek_desc) $searchspec++;
    		if ($seek_keywords) $searchspec++;
    		switch ($searchspec) {
    			case '1':
    			    $sql .= " WHERE description LIKE '%$search_text%'"; 
    			    break;
    			case '2':
    			    $sql .= " WHERE filetitle LIKE '%$search_text%'"; 
    				break;
    			case '3':
    			    $sql .= " WHERE keywords LIKE '%$search_text[searchspec]%'";
    				break;
    			case '4':
    			    $sql .= " WHERE (filetitle LIKE '%$search_text%' OR description LIKE '%$search_text%' OR keywords LIKE '%$search_text[searchspec]%')";
    			    break;
    			default:
    				echo '<br/>&nbsp;<br/>'._DOWN_SEARCH_ERR;
    				exit;
    		}
    		$repository =& remositoryRepository::getInstance();
    		$sql .= remositoryAbstract::visibilitySQL ($user, $repository->See_Files_no_download);
    		return $sql;
    	}
    Ma but etait de faire des recherches sur la table keywords et ca c'est fait. Mais voila si je mets les mots :test de video je peux faire une recherche sur "test", testde " "test de video" mais pas "video", "video test" il ne retourne aucun résultat. Que dois je modifier ?

    Meilleurs a tous !

  2. #2
    Expert confirmé

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Par défaut
    Bonjour, à moins que je n'ai pas compris ce que tu veuilles faire je ne crois pas que tu aies eu besoin de modifier le composant de recherches de joomla pour obtenir le résultat que tu cherches

    Joomla le fait par défaut.

    Que veux-tu obtenir exactement?

  3. #3
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Par défaut ...
    Bonjour,

    en fait la recherche remository ne fait pas de recherche sur les mots clés. Alors j'ai ajouté keywords et modifier remository.class.php pour qu'il prenne en compte ce champ.

    Sur une phrase qui se trouve dans l'ordre : "test de video" la recherche retourne bien mon resultat. Si je fais "test de" ca fonctionne aussi. Mais si je fais "video" je n'obtiens plus de resultat. Si je fais "video test" pas de resultat la non plus, "test video" non plus si je ne saisie pas "de".

    Comment faire pour que la recherche se fasse sur plusieurs mots et pas forcement dans l'ordre dans lequel ils ont été saisis dans la base de donnees ?

    Laurent

  4. #4
    Expert confirmé

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Par défaut
    Citation Envoyé par aries44 Voir le message
    Comment faire pour que la recherche se fasse sur plusieurs mots et pas forcement dans l'ordre dans lequel ils ont été saisis dans la base de donnees ?
    Ah ok, j'y vois mieux.

    De façon algorithmique, je dirai que pour qu'une telle recherche soit possible, va falloir que tu récupères le texte à rechercher et que tu récupères chaque mot de ce texte. La fonction explode permet d'y arriver.

    Puis tu lances une recherche imbriquée sur chacun de ses mots

    Je crois que de cette façon, ton problème peut être résolu.

    Je n'ai pas encore reflechi sur le code PHP qui permettra d'implémenter tout ça, mais tu peux essayer quelque chose sur la base de cet algo, et le proposer pour qu'on en discute...

    Bon courage!!!

  5. #5
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Par défaut test
    Bonjour,

    je ne sais pas ce qu'il s'est passé mais j'ai erfait des tests avec mon code et ca fonctionne. C'est n'y rien comprendre (deja c'est obscur pour moi).

    Merci pour votre aide et désolé de vous avoir dérangé.

    Merci encore

  6. #6
    Expert confirmé

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Par défaut
    Tant mieux si ça marche!!
    Est ce avec le même que code que ci-dessus?
    Si c'est un code différent, poste-le pour qu'il serve, et s'il y a des critiques à
    apporter, nous le ferons.

    Mais dejà commence par marquer le poste

    Bon courage à toi!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [joomla]Etre bien placer dans un moteur de recherche
    Par alex_m94 dans le forum Référencement
    Réponses: 1
    Dernier message: 13/11/2008, 21h48
  2. [MySQL] moteur de recherche avec joomla
    Par aries44 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/11/2008, 15h42
  3. comment faire ma base de donnée pour un moteur de recherche
    Par HoB dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 04/05/2004, 15h07
  4. Moteur de recherche par date
    Par Prue dans le forum ASP
    Réponses: 17
    Dernier message: 27/08/2003, 16h07
  5. [Technique] Index, comment font les moteurs de recherche ?
    Par bat dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 25/10/2002, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo