aiuto! filtro su elenco multiplo di fields o taxonomy terms non da risultati!!!!eppur ci sono!

18 contenuti / 0 new
Ultimo contenuto
aiuto! filtro su elenco multiplo di fields o taxonomy terms non da risultati!!!!eppur ci sono!

Salve a tutti,
ho un problema nel creare una vista. Voglio che un utente tramite una vista possa fare delle ricerce su un archivio di sedi caratterizzate da nomi, indirizzi (implementati con location per l'utili.zzo con gmap) e regioni italiane (questi ultimi implementati con termini di tassonomia).
Imposto quindi una node view, come argomenti metto location e node id (non ho ancora capito il perchè ma senza questi argomenti non funzionava neanche in parte, forse per mancanza di input validi???), imposto l'ordinamento e poi i filtri; tutti i filtri (trannteun bel nodetype=sedi e node published) sono esposti all'utente in modo da fornirgli una maschera di ricerca. Fin qui tutto ok, a parte il fatto che non capisco perchè nella pagina della vista vieneda subito visualizzato solo il form di ricerca e non già, inseriti i campi desiderati da subito un elenco di tutti gli elementi presenti in elenco (con poi il form per sfoltire i risultati), la vista visualizza correttamente i nodi desiderati; se introduco poi un filtro ulteriore sulla tassonomia del nodo (ovvero sulla regione) in modo che l'utente possa scegliere da un menu o a discesa o con completamento automatico la regione, beh la vista non visualizza più nulla. Come se non ci fosse nessun nodo inserito con quella regione.
Che tipo di problema mi trovo davanti? Come posso risolverlo???
Pensavo fosse un problemasulle tassonomie, ho provato allora a implementare le regioni con un semplice campo cck e non con termini di un vocabolario delle tassonomie; beh il risultato è lo stesso!
Quando imposto un filtro, esposto all'utente, su una scelta di valori multipli, allora la vista non funziona e non visualizza alcun risultato!!!!
Aiutatemi per favore perchè sto cercando di risolvermi da solo tutti i problemini con drupal (è un cms fantastico, ma un utente alle prime armi devo dire ke ha bisogno di un gran bel rodaggio) ma su questo problema non so che farci!!!!!
Grazie a tutti anticipatamente!Aspetto qualche suggerimento!

Fabio

Per fare tutta la procedura... hai usato Views fast search? Te lo chiedo perchè con questo modulo tutto quello che chiedi funziona benone.

Guarda qua:

http://www.nuovofiscooggi.it/search/fast?filter0=

No,ho usato i normali filtri di views 2 su Drupl 6.9! Fast search arriva solo fino alla versione 5 di drupal, conosci qualche altro modulo che potrei provare per ottenere un risultato analogo? Magari filtrando da un'altra parte il risultato della view (un po' come fa fast search) magari potrei ottenere qualcosa...

Forse ho trovato il problema....ma non la soluzione!!
dando un'occhiata alla query risultante dopo aver inserito i vari filtri mi sono reso conto che il filtro impostato sul campo Privincia (quello preso dalla location) anche se la spunta su "opzionale" è presente nella query viene richiesto comunque e quindi mi altera tutti i risultati. E così succede per ogni filtro in cui imposto il completamento automatico (perchè in filtri con elenco di selezione è possibile impostare "Any" quandonon si vuole inserire nulla e in quel caso funziona tutto, mentre se in un completamento automatico non si inserisce alcun valore la query prende la stringa vuota come un argomento valido e quindi non mostra alcun risultato almeno che non sia memorizzato con la stringa vuota).In un filtro relativo alla Provincia presa da location il filtro viene impostato di default con un campo testo a completamento automatico, come si può rendere realmente opzionale l'inserimento o impostare un argomento di default che non influenzi il risultato della query?
Grazie

Per chi dovesse incorrere nel mio stesso problema ecco una possibile soluzione:

http://drupal.org/node/118814#comment-739468

Qualcuno mi potrebbe spiegare come faccio ad applicare la suddetta patch al modulo location???
Grazie

Fabio

Un fulmineo prontuario su come applicare le patch: http://drupal.org/node/60108

Grazie, gli avevo dato gia' uno sguardo, ho seguito le istruzioni per il patching con tutte le sintassi possibili, il problema e' nello specifico del modulo location, digitando il comando
patch [opzioni] < file.patch
Il terminale mi stampa a video l'header contenuto nel file di patch e poi mi chiede quale file voglio patchare (comprensibile visto che non glie l'ho detto prima), il problema e' che proprio non so quale file devo andare a patchare!!!!!!
Ho provato ad applicare la patch al file location.module ma mi incasina il file di modulo e ottengo solo errori quando vado ad inserire le locations, dopo di che non vedo altri possibili candidati per la patch

Sui dettagli della patch c'e' scritto che e' una patch per il modulo location_view, il quale pero' fa orami parte del modulo location e non e' una versione a se'; allo stesso tempo la patch e' segnalata come funzionante sulla mia versione di drupal quindi chiedevo un aiuto in quel senso, a capire cosa devo fare in questo caso

Quindi cosa dovrei fare??

Grazie

Fabio

Cerchi le righe che fanno :

        $filter['value'] = location_form2api(array('province' => $filter['value']));
        $filter['value'] = $filter['value']['province'];
        break;

e, se le trovi, ci incolli dopo le righe che cominciano con il + (togliendo il +).
Non so se però le vecchie funzioni sono rimaste dopo l'incorporamento di un modulo in un altro.

Purtroppo sono arrivato alla conclusione che le patch proposte non funzionano con la versione di location per D6; ho trovato una issue su drupal.org che tratta del problema e vi si fornisce una soluzione funzionante (tra le tante, l'unica che mi abbia risolto il problema).
Posto qui di seguito il link nel caso ci fosse qualcun'altro alle prese con il mio stesso problema:

http://drupal.org/node/351754

Grazie a tutti per l'assistenza e per la pazienza verso un principiante rompiscatole come il sottoscritto! :-)

Fabio

X febius, scrivi qui sotto tutti i passaggi che hai fatto con views cosi cerchiamo di di aggiustare tutte le cose mancanti.

Allora ricapitolando:
avendo una serie di nodi con memorizzate delle locations volevo rendere dipsonibile una view con dei filtri exposed per consentire la ricerca per i singoli campi location, ovvero ricerca per città, ricerca per cap,ricerca per provincia, nonchè ricerca per titolo del nodo.
Impostando il filtro della provincia come esposto all'utente il "Province Selector" oltre a non validare, qualunque fosse, il valore inserito inseriva nel campo provincia della query la stringa vuota come argomento , così che pur impostando questo filtro come opzionale, qualunque interrogazione non produceva risultati (nel senso che lasciando in provincia ilcampo vuoto questo in ogni caso compariva nell'interrrogazione una cosa del tipo PROVINCE=' ').
Allora cosa ho fatto:

- in principio ho ricercato la natura del problema e ho trovato delle patch (link all'inizio della discussione), tuttavia si sono dimostrate non applicabili alla mia installazione in quanto nell'ultima versione di location il modulo location_views è stato incorporato in location, e sono cambiate le funzioni.

- ho trovato all'indirizzo http://drupal.org/node/351754 che il problema nella mia versione di location risiede nel file location_handler_filter_location_province.inc situato nella sottocartella handlers delmodulo location

- nella funzione query()
ho aggiunto proprio all'inizio questo if

    if (empty($this->value[0]))
  return;

dopo di che ho commentato l'istruzione

$value = array_keys($value);

circa 7 righe più sotto.

Alla fine come descritto nel link proposto sopra mi trovo ad avere una funzione query scritta in questo modo:

  function query() {
    if (empty($this->value[0]))
  return;
    $country = $this->grovel_country();
    $this->ensure_my_table();
    $field = "$this->table_alias.$this->real_field";
    // Normalize values.
    $value = $this->value;
    if (is_array($value)) {
      //$value = array_keys($value); !!! ?
      if (count($value) == 1) {
        // If multiple is allowed but only one was chosen, use a string instead.
        $value = reset($value);
      }
    }

Ora le query funzionano e la vista mostra i nodi anche non inserendo il campo provincia.
(Mi sembra di aver capito che non vi era un controllo su valori vuoti inseriti da array derivati da un elenco di selezione, la query quindi veniva normalizzata assieme ad un argomento con stringa vuota producendo risultati sbagliati; in questo caso dopo il primo if se il campo è vuoto si ritorna subito non processando quell'argomento, giusto?)

Ciao

Fabio

bravo complimenti XD, pero' avevo chiesto gentilmente se scrivevi la guida che hai realizzato con views cosi se a qualcuno serve puo' realizzarla da qui e non dal sito ufficiale :-)

Non riesco a capire a cosa ti riferisci, ho riportato il problema che ho riscontrato e tutti i passaggi che ho fatto per risolverlo. Nessuna guida, solo un paio di linee di codice da sostituire che ho preso dal sito ufficiale. Se posso essere di aiuto ben volentieri ma ora non saprei che altro scrivere su questo problema.

Ciao

cioe' in pratica chiedevo se ti va di scrivere tutti i passaggi che hai fatto con il modulo (view) per realizzare quello che hai realizzato, sarebbe una guida utile per tutti quelli che volessero implementare nel propio sito il tuo sistema di ricerca

@DREAMBOY: scusa tu gli hai chiesto:

Quote:
X febius, scrivi qui sotto tutti i passaggi che hai fatto con views cosi cerchiamo di di aggiustare tutte le cose mancanti.

Quindi non di scrivere una guida (se poi vorrà farlo benvenga), quindi "riprenderlo" non mi pare corretto. Se poi è una cosa che serve a te...

Ciao
Marco
--
My blog
Working at @agavee

allora la domanda corretta per Febius è, Ti va di scrivere la giuda che hai realizzato con View? Cosi completiamo questo Topic del forum con la giuda finale su come realizzare lo strumento di ricerca di FEBIUS :d

Ciao, scusate se rispondo solo ora ma sono stato impegnato nelle ultime settimane e ho dovuto sospendere per un po' la mia attivita' con drupal.
Nessun problema nello scrivere i passaggi che ho fatto con view, semplicemente non avevo capito di cosa avevi bisogno DREAMBOY,
allora:

- ho dei nodi con campi creati con CCK e degli indirizzi associati con Location (per la visualizzazione su mappa degli indirizzi uso Gmap).

- Per le ricerche ho definito una vista con Views 2 con le seguenti caratteristiche:

  • vista d tipo Nodo;
  • nessuna formattazione di stile in particolare;
  • nessun Argomento (e' una ricerca a senso unico sullo stesso tipo di nodi)
  • Campi-> Nodo: Titolo; Location: nome; Location: Strada; Location: Postal Code; Location: Citta'; Location: Provincia;
  • Ordinamento -> Location: Provincia ascendente;
  • Filtri-> Nodo: Tipo; Nodo: Titolo (Esposto); Location: Citta' (Esposto); Location: Provincia (Esposto)

Tutti i filtri esposti sono impostati come Opzionali.

Inoltre definita in questo modo la ricerca non poduceva alcun risultato proprio per il problema oggetto di questo thread. Per risolverlo lasciare la vista invariata e modificare il codice del file location_handler_filter_location_province.inc come descritto nei post precedenti.

Tutto qua, in pratica ho semplicemente creato una vista che su un tipo di nodi ben definito, tutti con un indirizzo associato con il modulo location, scorre i campi di citta' e provincia e fa delle query sulla base dei valori introdotti dall'utente tramite i filtri exposed.
Fammi sapere se devo scrivere altro, magari ora il thread ha perso interesse ma non si sa mai...

Ciao

Fabio

ma no non ti preoccupare, spero di provare al piu' presto questa guida, vediamo se sei cosi intelligente come spero che tu sia per creare qualcosa di nuovo e originale nonche flessibile e potente :)

PS: ma ce l hai il sito online dove posso vedere in tempo reale come funziona?