Aide - Recherche - Membres - Calendrier
Version complète : [RESOLU]fonction recherche
Forum osCommerce-fr > Adapter OsCommerce MS2 > Echanges développeurs
cetanne
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 !
Quentin de Montargis
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 ?
cetanne
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>');
Quentin de Montargis
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.
cetanne
Ca marche même du tonnerre !!!!!

Merci beaucoup !
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2014 Invision Power Services, Inc.