osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> [RESOLU]fonction recherche
cetanne
posté 20 Sep 2010, 09:33
Message #1


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 62
Inscrit : 8-April 10
Membre no 27406



Bonjour,

J'ai ajouté à ma boutique un champ "sous-titre", comment puis-je l'inclure dans les recherches, l'idéal serait de l'inclure dans la recherche rapide.

Merci !

Ce message a été modifié par cetanne - 20 Sep 2010, 16:37.
Go to the top of the page
 
Quentin de Monta...
posté 20 Sep 2010, 09:59
Message #2


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 126
Inscrit : 28-February 10
Lieu : Montargis
Membre no 27166



Citation (cetanne @ 20 Sep 2010, 09:33) *
J'ai ajouté à ma boutique un champ "sous-titre", comment puis-je l'inclure dans les recherches, l'idéal serait de l'inclure dans la recherche rapide.
Si ce champ correspond à ce sujet la recherche devrait pouvoir se faire dessus puisque tu as ajouté ce champ dans la table "PRODUCT_DESCRIPTION". Ce n'est pas le cas ?
Go to the top of the page
 
cetanne
posté 20 Sep 2010, 12:35
Message #3


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 62
Inscrit : 8-April 10
Membre no 27406



Salut Quentin,

Merci pour ces conseils suivis wink.gif

En fait ça ne se fait pas. J'avais modifié la recherche pour effectivement rechercher dans le champ product_description (en suivant ce tuto : http://www.oscommerce-fr.info/faq/qa_info.php?qID=170 ), mais je ne pense pas que ce soit valable pour toute la table … Du coup je recherche où on définit ça :
CODE
'text' => tep_draw_input_field('keywords', '', 'size="10" maxlength="30" style="width: ' . (BOX_WIDTH-30) . 'px"') .
tep_draw_hidden_field('search_in_description', '1', ' CHECKED') . ' ' . tep_hide_session_id() . tep_image_submit('button_quick_find.gif',
BOX_HEADING_SEARCH) . '<br>' . BOX_SEARCH_TEXT . '<br><a href="' . tep_href_link(FILENAME_ADVANCED_SEARCH) . '"><b>' .
BOX_SEARCH_ADVANCED_SEARCH . '</b></a>');


Ce message a été modifié par cetanne - 20 Sep 2010, 12:38.
Go to the top of the page
 
Quentin de Monta...
posté 20 Sep 2010, 13:36
Message #4


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 126
Inscrit : 28-February 10
Lieu : Montargis
Membre no 27166



En effet il faut déclarer le champ comme étant un mot-clé.

Pour cela il faut ouvrir le fichier : advanced_search_result.php

Chercher cette ligne (169) :
Code
                       'PRODUCT_LIST_NAME' => PRODUCT_LIST_NAME,
Et ajouter cette ligne dessous :
Code
                       'PRODUCT_LIST_CPLMT_NAME' => PRODUCT_LIST_CPLMT_NAME,

Chercher cette ligne (207) :
Code
  $select_str = "select distinct " . $select_column_list . " m.manufacturers_id, p.products_id, pd.products_name, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price ";
Et la remplacer par celle-ci :
Code
  $select_str = "select distinct " . $select_column_list . " m.manufacturers_id, p.products_id, pd.products_name, pd.products_cplmt_name, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price ";

Chercher cette ligne (260) :
Code
          $where_str .= "(pd.products_name like '%" . tep_db_input($keyword) . "%' or p.products_model like '%" . tep_db_input($keyword) . "%' or m.manufacturers_name like '%" . tep_db_input($keyword) . "%'";
Et la remplacer par celle-ci :
Code
          $where_str .= "(pd.products_name like '%" . tep_db_input($keyword) . "%' or pd.products_cplmt_name like '%" . tep_db_input($keyword) . "%' or p.products_model like '%" . tep_db_input($keyword) . "%' or m.manufacturers_name like '%" . tep_db_input($keyword) . "%'";

Chercher ces lignes (319) :
Code
      case 'PRODUCT_LIST_NAME':
        $order_str .= "pd.products_name " . ($sort_order == 'd' ? "desc" : "");
        break;
Et ajouter dessous ces lignes :
Code
      case 'PRODUCT_LIST_CPLMT_NAME':
        $order_str .= "pd.products_cplmt_name " . ($sort_order == 'd' ? "desc" : "");
        break;


Ca devrait le faire maintenant.
Go to the top of the page
 
cetanne
posté 20 Sep 2010, 16:36
Message #5


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 62
Inscrit : 8-April 10
Membre no 27406



Ca marche même du tonnerre !!!!!

Merci beaucoup !
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 18th June 2013 - 22:45
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)