- Home
- Categorie
- Coding e Sistemistica
- Joomla!
- [Virtuemart 1.1.9] Modulo Search: modificare query di ricerca
-
[Virtuemart 1.1.9] Modulo Search: modificare query di ricerca
Salve a tutti,
ho la necessità di modificare la query di ricerca del modulo Search di Virtuemart.Vi spiego la mia esigenza: ho caricato dei prodotti come Prodotto 1, Prodotto 2, Prodotto 3, ecc...
Nello stato attuale se faccio la ricerca di "Prodotto 1" lui mi trova si "Prodotto 1" che gli altri elementi che contengono il termini "Prodotto", invece io vorrei fare una ricerca mirata solo su quello che l'utente cerca.
Sicuramente viene effettuato uno split del termine inserite, invece io dovrei effettuare un LIKE "%Prodotto 1%", ma come posso effettuare questa modifica?
Grazie.
-
Ho trovato il codice che mi interessa in
\web\administrator\components\com_virtuemart\html\shop_browse_queries.php linea 85
tramite il suggerimento di un utente di un altro forum.$keywordArr = vmGetCleanArrayFromKeyword( $keyword );
la funzione vmGetCleanArrayFromKeyword serve proprio ad effettuare l'explode, così l'ho omessa e scritto
$keywordArr = trim($keyword); $keywordArr = array($keyword);
Sembra che funzioni!
-
Ciao felino e grazie per la condivisione.
Maurizio ZioPal
-
Un piccolo contributo per i numerosi supporti ricevuti dal vostro Forum.
-
Chiedo ancora un piccolo aiutino, pensavo di aver risolto ma non è stato così!
Riepilogando ho modificato la funzione di ricerca così:
$keywordArr = trim($keyword); $keywordArr = array($keyword);
Il tutto riguarda http://www.centrosingercatania.it: se nel modulo di ricerca scrivo 'Singer 760' ho visto che lui restituisce il risultato solo se tale campo è presente nella colonna product_name di vm_product, a me interessa soprattutto il campo product_desc e nella query di default è presente:
$sq .= "\n (`#__{vm}_product`.`product_name` LIKE '%$searchstring%' OR "; $sq .= "\n `#__{vm}_product`.`product_sku` LIKE '%$searchstring%' OR "; $sq .= "\n `#__{vm}_product`.`product_s_desc` LIKE '%$searchstring%' OR "; $sq .= "\n `#__{vm}_product`.`product_desc` LIKE '%$searchstring%') ";
Ad esempio questo prodotto, il quale ha nella descrizione il campo 'Singer 760' non appare, come mai?
E' vero che è circondato da tag html cioè:
<p style="line-height: normal;"><b><span style="font-size: 10pt; font-family: ">SINGER 760</span></b><span style="font-size: 12pt; font-family: " New="New"></span></p>Come mai non lo trova?
Come dovrei cambiare la condizione di ricerca?Grazie.