Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854

    [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.

  2. #2
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854
    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.

    codice:
    $keywordArr = vmGetCleanArrayFromKeyword( $keyword );

    la funzione vmGetCleanArrayFromKeyword serve proprio ad effettuare l'explode, così l'ho omessa e scritto


    codice:
    $keywordArr = trim($keyword);
    $keywordArr = array($keyword);

    Sembra che funzioni!

  3. #3
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854
    Chiedo ancora un piccolo aiutino, pensavo di aver risolto ma non è stato così!

    Riepilogando ho modificato la funzione di ricerca così:
    codice:
    $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:
    codice:
            $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.
    Ultima modifica di Felino; 18-01-2014 a 20:45

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.