recherche multi mots

Programmation, discussions et suggestions pour l'amélioration de OpenCart

recherche multi mots

Messagepar Malaiac » 11 Fév 2013, 16:20

si vous avez des produits "gadget bleu" et que le client cherche "bleu gadget" sur votre site, il n'aura rien

modif :
/catalog/controller/product/search.php
Code: Tout sélectionner
if (isset($this->request->get['filter_name']) || isset($this->request->get['filter_tag'])) { // ligne 201
....
foreach ($results as $result) { // ligne 235 environ

a remplacer par
Code: Tout sélectionner
      $this->data['products'] = array();
      
      if (isset($this->request->get['filter_name']) || isset($this->request->get['filter_tag'])) {
         
         $results = array();
         $product_total = 0;
         
         $filter_names = explode(' ',$filter_name);
         $filter_tags = explode(' ',$filter_tag);
         
         if(count($filter_names)) {
            foreach($filter_names as $name) {
               $data = array(
                     'filter_name'         => $name,
                     'filter_tag'          => $filter_tag,
                     'filter_description'  => $filter_description,
                     'filter_category_id'  => $filter_category_id,
                     'filter_sub_category' => $filter_sub_category,
                     'sort'                => $sort,
                     'order'               => $order,
                     'start'               => ($page - 1) * $limit,
                     'limit'               => $limit
               );
               $filter_results = $this->model_catalog_product->getProducts($data);
               foreach($filter_results as $filter_result) {
                  if(!isset($results[$filter_result['product_id']])) $product_total++;
                  $results[$filter_result['product_id']] = $filter_result;
               }
            }
         }
         if(count($filter_tags)) {
            foreach($filter_tags as $tag) {
               $data = array(
                     'filter_name'         => $filter_name,
                     'filter_tag'          => $tag,
                     'filter_description'  => $filter_description,
                     'filter_category_id'  => $filter_category_id,
                     'filter_sub_category' => $filter_sub_category,
                     'sort'                => $sort,
                     'order'               => $order,
                     'start'               => ($page - 1) * $limit,
                     'limit'               => $limit
               );
                           $filter_results = $this->model_catalog_product->getProducts($data);
               foreach($filter_results as $filter_result) {
                  if(!isset($results[$filter_result['product_id']])) $product_total++;
                  $results[$filter_result['product_id']] = $filter_result;
               }            
            }
         }
            
         foreach ($results as $result) {
OpenCart 1.5.5.x - 1and1 mutu - noVQ
Malaiac
 
Messages: 18
Inscrit le: 19 Jan 2013, 12:10

Re: recherche multi mots

Messagepar Imaxine » 11 Fév 2013, 16:46

Je vais faire un fichier XML pour vQmod et tester cela.

Nous te remercions.
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28


Retour vers Développement

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 2 invité(s)

Copyright © 2009-2013 OpenCart France - Tous droits réservés