Domanda

sto lottando un po 'con una vista che riceve i dati da un nodo che utilizza due campi di riferimento del nodo, che punta allo stesso tipo di contenuto. Dal mio percorso mi sto una stringa come argomento, chiamiamolo $fruit.

La query che vorrei fare se stavo scrivendo la query me sarebbe qualcosa di simile SELECT * FROM recipe WHERE (fruit_1=$fruit OR fruit_2=$fruit). Il mio problema è che non ho ricevuto come fare questo in un Drupal View. Qualche suggerimento?

UPDATE: Alla fine ho risolto quello che ho cercato di fare. La soluzione per me è stato quello di utilizzare Panels insieme ad un View usando argomenti Views Or, e impostando entrambi i valori argomenti per la stessa utilizzando il primo argomento Panels. Non sono sicuro se sto spiegando sia il mio problema o la mia soluzione correttamente, ma se qualcuno avrebbe bisogno di una spiegazione più da vicino, non esitate a chiedere.

È stato utile?

Soluzione

Vista o modulo addon: http://drupal.org/project/views_or

E 'davvero dovrebbe essere incluso in Vista per impostazione predefinita, perché è così potente.

L'opzione 'iniziare alternative' pone essenzialmente un '(' nella query. L'opzione 'prossimo alternativa' pone essenzialmente la 'O' nella query. L'opzione 'alternative di fascia' essenzialmente pone un ')' nella query.

Visto filtri sono settati come 'E' tra ogni campo, questo aggiunge che la capacità 'O'. Quindi, utilizzando il vostro esempio i filtri sarebbe qualcosa di simile:

Content Type = Recipe
Begin Alternatives
Node Title = fruit_1
Next Alternative
Node Title = fruit_2
End Alternatives

Si noti che si può avere più di uno o opzioni utilizzando più filtri 'prossimo alternative', ciascuno posti una 'O' tra gli altri filtri. Se è ancora confusa, controllare l'anteprima query in vostro punto di vista riquadro dopo ogni modifica.

Altri suggerimenti

Non credo che ci sia un modo per fare la ... O ... parte della query nel Visualizzazioni UI. Tuttavia, è possibile rendere il proprio modulo e utilizzare il Visualizzazioni UI per generare la prima parte della query, quindi utilizzare hook_views_query_alter nel modulo per aggiungere solo WHERE (fruit_1=$fruit OR fruit_2=$fruit) alla fine della query.

Più informazioni su hook_views_query_alter qui e qui . Buona fortuna.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top