Filtro visibile all'utente per un content type

12 contenuti / 0 new
Ultimo contenuto
Filtro visibile all'utente per un content type

Ciao a tutti.
Ho creato un content type per inserire delle ricette.
Prima avevo creato un nuovo vocabolo portata con vari i termini quali: primo, secondo ecc... e per ogni ricetta che inserivo si poteva scegliere la portata.
Questo andava bene perchè poi si creavano delle pagine con tutte le portate per primi piatti, secondi ecc... Ma non sono stato capace di creare un filtro per fare scegliere all'utente la portata.
Quindi ho provato una strada diversa. Ho creato un field portata > list (text) select list (che da quello che ho capito è come fare un tabella correlata a cui si legano gli id, così se poi si cambia il termine si cambia su tutti i record).
Poi andando in views>filter ho applicato un al field portata >flaggo expose > is one of "select all". Apply > save, ma non compare il filtro.
Sapete dirmi dove sbaglio?

grazie!!!

Non devi selezionarli tutti. Inoltre, devi applicare il filtro a field_portata - Allowed values. In questo modo avrai il list da usare come filtro esposto.
Ricapitolando: su "filter", selezioni "field_portata - Allowed values", "Expose" e "Is one of" senza selezionare niente.

field_portata - Allowed values non cè... trovo solo:
Fields: Portata (field_portata)
:(

Devi lavorare con le viste.
Crei una vista con tutti i titoli per esempio e poi nei filtri metti taxonomy e il tuo vocabolario ovviamente metti anche il flag su exposed filter.
Poi crei un nodo (es node/43) e nella vista aggiungi la visualizzazione "page" e metti nodo/43 come riferiemento. Salvi.
Nel nodo 43 troverai tutti i titoli delle ricette e se poi selezionerai che ne so "primi piatti" e cliccherai filter, lui ti farà veder solo i primi.

Era questo che ti interessava?

No ma field_portata - Allowed values è nei filtri, non su fields!
Ma a questo punto forse non sto capendo cosa ti interessa..
Qualcosa del tipo?

primo

  • portata1
  • portata2
  • ecc

secondo

  • portata3
  • portata4
  • ecc

In questo caso hai due strade: usi la tassonomia (e quindi le varie portate diventano figli di primo, secondo, ecc) oppure utilizzi soltanto views. Quindi nel tuo content type inserisci un cck field di tipo list, e su allowed values scrivi i valori che ti servono così:
1|Primo
2|Secondo
3|Dolci
ecc
Poi crei un altro cck field per le portate nella stessa maniera. Quindi quando crei i filtri, li esponi (senza selezionare i valori) come ti ho detto prima. Se sei più preciso posso aiutarti meglio.

Mi intrometto

penso che quello che tu debba fare sia
field "portata" di tipo text con widjet "select list"
nelle impostazioni del field in "allowed values" crei la lista delle portate: primo, secondo, piatto unico, dessert...

poi crei una vista che elenchi tutte le entri delle ricette
aggiungi un filtro su field "portata"
lo esponi e dovresti avere una bella tendina dove selezionare le tue portate

Allora:
1. crei il vocabolario "Primi"
2. inserisci i termini > portata1, portata2... (crea anche un termine "- Seleziona -", qui non ci metterai mia nulla!)
3. inserisci dei contenuti associandoli ai termini
4. cloni la vista taxonomy_term e la rinomini in "mia_vista"
5. clikka a sx il tab Page e nel Path gli assegni un nome da così > "taxonomy/term/%" a così > "mia_vista"
6 ritorna sul tab Default (sopra a Page...) e negli Argomenti clikka >Tassonomia: ID termine (con profondità) e seleziona "Mostra tutti i valori" in > Azione da intraprendere se l'argomento non è presente
7. nei Filtri aggiungi "Tassonomia: Termine" (L'ID del termine della tassonomia) e clikka su Aggiungi
8. nella schermata successiva clickka su "Menu a discesa" e flagga "Mostra la gerarchia nel menu a discesa" e aggiorna
9. in questa schermata seleziona/annerisci i termini che vuoi esporre e clicca il pulsante "Visualizza all'utente" e metti i flag su > "Forza singolo" e "Limita l'elenco alle voci selezionate"
10. salva la Vista.

adesso andando in http://www.miosito.com/mia_vista dovresti vedere il menu drop down con la lista dei termini > portata1, portata2... clicccando su ciascuno, ti vengono mostrati i risultati...

Mamma mia ragazzi, non posso che ringraziare tutti della partecipazione e del prezioso aiuto.
Vi dico subito che vorrei provare a risolvere la questione senza tassonomia che mi sembra più complicata.
Alla fine facendo una list
1|primi
2|secondi
3|contorni
ecc....
è come se avessi fatto una tabella correlata (che è la cosa che faccio di solito in questi casi senza drupal intendo).
Poi nella vista inerente a questo content type metto un filtro sul field portate (per portate intendo primo, secondo ecc...). Lo espongo e non tocco nient'altro (se metto required o Select All flaggati mi da errore). Mi funziona! però il mio obbietivo è quello di avere, in un bannerino, due select, una con le portate e l'altra con le regioni (create sempre come list) e il bottone invia.
Pensavo a un block per questo, ma non so come fare per non fare visualizzare in partenza i record. Se levo i filtri published e content type non mi fa vedere nemmeno il menu a tendina...
grazie ancora!

Ciao, per non far visualizzare in partenza il risultato di una vista :

Add a new argument in your view
Choose type "Global: Null"
"Action to take if argument is not present:" - Provide default argument
"Default argument type:" - Fixed entry
"Validator:" – PHP Code – enter the php code below but do not use  <?php ?>   wrapped around the code.
if (count($view->exposed_input)) { return TRUE; }
"Action to take if argument does not validate:" – Display empty text
Now click to update this argument
paste this code into the " Empty text:" area under basic settings for the view. (set the input format the "PHP" and this time you would use  <?php ?> wrapped around the code below.
<?php
$view
= views_get_current_view();
  if (
count($view->exposed_input)) {
    return
"<h3>Sorry, no results were found.  Please adjust your search criteria and try again.</h3>";
}
?>

This post was based upon Views 2 in combination with Drupal 6 so your mileage may vary depending on what versions you are using.

--
Michel 'ZioBudda' Morelli -- [email protected]
Sviluppo applicazioni CMS DRUPAL e web dinamiche -- Corsi Drupal -- Amministrazione Drupal -- Hosting Drupal

Aggiungo: se vuoi creare un blocco con i filtri "esposti" di una vista di tipo "page":

<?php
$view
= views_get_view(''ricerca'');
$view->set_display(''page_1'');
$view->init_handlers();
$form_state = array(
 
''view'' => $view,
 
''display'' => $view->display_handler->display,
 
''method'' => ''get'',
 
''rerender'' => TRUE,
 
''no_redirect'' => TRUE,
);
$output = drupal_build_form(''views_exposed_form'', $form_state);
echo
$output;
?>

"ricerca" è il nome della vista e "page_1" è il nome del display.

--
Michel 'ZioBudda' Morelli -- [email protected]
Sviluppo applicazioni CMS DRUPAL e web dinamiche -- Corsi Drupal -- Amministrazione Drupal -- Hosting Drupal

ciao a tutti...
purtroppo sono ancora un novellino per inoltrarmi in cose così avanzate.

Pero' ho trovato la cosa che fa per me.
Premetto che uso Drupal 7.

Una volta impostati i filtri della mia vista se vado nelle impostazioni advanced ho la sezione EXPOSED FORM che è esattamente quello che cercavo. Ti crea un blocco con i filtri! perfetto...

grazie mille!

Ciao ragazzi, mi interessa molto questo argomento visto che sto sbattendo la testa contro un problema del genere.

Allora, premessa, ho creato un sito blog di viaggi dove un utente può inserire articoli su viaggi o su esperienze di vita all'estero, ho usato per questo due content type visto che i campi da inserire sono diversi (anche se sono in dubbio su questa cosa, dite che lasciando come facoltativi determinati campi sia meglio un unico content type?).
Comunque, quello che ho fatto è, con tema bluemaster ho creato due viste con rispettivi blocchi dei due content type.
Quello che vorrei è che quando tu clicchi nel menu viaggi tu possa vedere tutti i viaggi però vorrei a vista i vari campi per fare una scrematura del risultato ( ex campo dove con i paesi, campo tipo di viaggio etc).
Ho selezionato per esempio filtro tipo viaggio che ha 4 tipi ed è un elenco intero, scelgo
1)Expose this filter to visitors, to allow them to change it
2)Filter type to expose
Single filter
Grouped filters X
3)Tipo di widget
pulsanti di opzione
Lascio come opzionale il suo selezionamento

Non ho fatto la tassonomia, ma puntato semplicemente su una vista però forse mi rendo conto che magari dovrei farlo, che dite? Più che altro per semplificare anche la ricerca generale che fanno gli utenti se non dovessero scegliere a priori un tipo o l'altro?

Mi dispiace farvi diventare cosi matti però è da un pò che sono su questa cosa e non riesco ad uscirne

Grazie mille a chi mi può aiutare
Andrea