Views e Taxonomy menu

32 contenuti / 0 new
Ultimo contenuto
Views e Taxonomy menu

Ciao a tutti, sto cercando di realizzare il progetto che ho cercato di spiegare in questo post, http://www.drupalitalia.org/node/15330.
Ora seguendo le dritte di ealmuno e di piebuo che ringrazio per la pazienza e la cortesia, sono riuscito a creare un menu con Taxonomy menu, contenente i termini del vocabolario Documenti (carta di identità, passaporto, ecc..). Ora ho creato una vista - blocco (se ho scelto bene) in cui ho elencato i termini di un secondo vocabolario "Nazioni":
in predefinite e in blocco
Stile: Liste HTML
Stile riga: Campi
Campi
Tassonomia: Termine immagine
Tassonomia: Termine
Filtri
Tassonomia: Vocabolario = Nazione

Ora come posso associare questa vista alle voci di menu del menu "Documenti" creato con Taxonomy menu?
Una volta associato dovrebbe funzionare così:

  • clikko una voce del menu documenti posto nella colonna di sinistra
  • nella colonna centrale compare l'elenco delle nazioni
  • da questo elenco clikko sulla nazione che m'interessa
  • nella parte centrale mi compaiono tutti i contenuti relativi al documento e alla nazione clikkate (mi servirà un'altra vista qui giusto? se si come devo crearlaP

Grazie milla a tutti

basta che la mostri nella pagina con la path giusta, anche se non ho capito bene cosa intendi.
Per l'ultima domanda puoi gestire sempre con views e tassonomia, basta che gliela passi come argomento.

Quote:
scritto da me:
Ora come posso associare questa vista alle voci di menu del menu "Documenti" creato con Taxonomy menu?

qui intendo dire che se ho un menu (fatto con taxonomy menu) con delle voci tre cui per esempio "carta di identità", vorrei che al click su questa voce mi si apra la mia vista con l'elenco delle nazioni. Quindi devo aggiungere una pagina alla vista e non un blocco e mettere la patch a cui punta la voce di menu, giusto?

Quote:
scritto da ealmuno:
Per l'ultima domanda puoi gestire sempre con views e tassonomia, basta che gliela passi come argomento.

Cosa dovrei passare come argomento? Significa che nella creazione della nuova vista devo aggiungere qualcosa nella sezione "Argomento"? se si cosa?

Il duro lavoro fatto con passione, ripaga sempre!!!!

Basta che metti un blocco e passi come argomento la tassonomia per mostrare il contenuto di quella tassonomia.

Ciao ealmuno, ci siamo quasi credo... ho creato l'elenco di tutte le nazioni creando una vista di tipo pagina con questo percorso "taxonomy/term/%" cosi ogni voce di menu "tipo documento" richiamerà questa vista. Ora per mostrare tutti i contenuti relativi ai termini scelti (tramite clik su tipo di documento e nazione) devo creare una vista ti tipo blocco con i campi che m'interessano e come argomento i termin di tassinomia, ma come termini correlati o termini semplici? Siccome ho 4 tipi di contenuto per ogni tipologia di oggetto devo creare 4 viste? su questa discussione http://www.drupalitalia.org/node/7763 ho visto che posso utilizzare anche panels, giusto? mi può servire?

Il duro lavoro fatto con passione, ripaga sempre!!!!

Panels per impaginare, per ora lascialo perdere, devi fare delle prove, confesso che mi sto perdendo.
In teoria dovresti già accedere al nodo, per i tipi di contenuto dipende se li vuoi divisi o meno, basta settare i filtri.

Perdonami ealmuno, cerco di fare il punto della situazione.
Ho creato 3 tipi di contenuto:

  1. Programma
  2. Link utili
  3. Documento

Ad ognuno di questi 3 tipi, in fase di creazione devo associare il tipo di documento e la nazione di appartenenza. Per porre in essere questa selezione ho creato due vocabolari:

  1. Tipo di documento
  2. Nazioni

Per il primo vocabolario ho aggiunto i termini, per semplificare ne elenco 2, carta di identità e passaporto, mantre per "Nazioni" ho aggiunto come termine il nome di alcune nazioni e la relativa bandiera (con Taxonomy image).
Con taxonomy menu+Menu Block ho creato il menu, sulla colonna di sinistra del sito, con i termini del vocabolario "Tipo di documento".
Ad ognuna delle voci di questo menu ho associato una vista-pagina, mediante il percorso "taxonomy/term/%", in modo che cliccando su ognuna di queste voci mi si apre un elenco con tutte le nazioni. Ora sulla base della nazione che clikko mi dovrebbero apparire un elenco con tutti i 3 tipi di contenuto (ovviamente attualmente creati) relativi al tipo di documento e alla nazione scelti.

Si ho gia tutti i nodi creati, per i tipi di contenuti è che li vorrei visualizzare insieme.

Sono riuscito a fare chiarezza?

Il duro lavoro fatto con passione, ripaga sempre!!!!

Ok, ho capito, a che punto ti sei fermato adesso? Al click sulla nazione e alla visualizzazione dei nodi?

Ti ho fatto perdere tutto questo tempo solo per farmi capire, perdonami ma sono all'inizio con Drupal e con tutto... :-)
Allora credo di avere fatto piccoli passi in avanti.
Ho creato una vista-pagina che ha come percorso "taxonomy/term/12" dove 12 è l'id tel termine "Passaporto" del vocabolario "Tipo di documento", per fare un esempio.
In campi ho inserito tutti i field contenuto che ho creato nei 3 tipi di contenuto che ti ho detto sopra (Programma, link utili e Documento, questo da non intendersi come il vocabolario "tipo di documento" ma è solo un field di file per allegare un file pdf)
In filtri ho inserito "tassonomia termine" esposta, con la quale si può selezionare la nazione (P.S.: non c'è un modo per sosituire l'elenco a discesa, con un semplice lista alla quale posso associare anche le bandiera della nazione?) e poi ho inseriro un altro filtro "Tassonomia termine" non esposto dove ho selezionato dal vocabolario "tipo di documento" il termine "Passaporto".
Così ho ottenuto che clikkando sul menù di sinistra, quello creato con taxonomy menù+menù blok, alla voce passaporto, mi si apre la vista dove selezionando con il menù a tendina la nazione, mi filtra i tipi di contenuto relativi alla nazione.
Fin qui credo di esserci.
Ora come posso nascondere i contenuti prima che venga selezionato il filtro della nazione?
Poi vorrei che quando successivamente aggiungo altri tipi di contenuto, per fare un esempio: inserisco per Passaporti -> Italia i tipi di contenuto Programma, Link utili e Documento. Successivamente voglio aggiungere un altro link utile sempre per Passaporti-> Italia e vorrei che questi si inserisca graficamente subuti sotto all'altro link utile inserito precedentemtne, cosa questa che attualmente non avviene, dove devo intervenire? Credi che panel non mi possa servire?

Grazie mille, se risolvo questo poi sono in discesa!

Il duro lavoro fatto con passione, ripaga sempre!!!!

Per nascondere i contenuti puoi modificare il template controllare se la path è taxonomy/term/id e non fare il print del content (con un if per capirci).
Per la grafica basta che usi un po di css e trasformi il testo in immagine.
Panel valutalo dopo, prima fai funzionare tutto poi pensi a come migliorarlo, altrimenti rischi di perderti e di non riuscire a fare nulla.

ok, facciamo quindi un passo alla volta. Credo di aver individuato il file tpl.php che si occupa della temizzazione dei filtri. Il file in questione è "views-exposed-form.tpl.php" che si trova in modules->views->theme. Ora hocopiato il tema e rinominato con il nome di una delle chiamate che ho visto con Theme developer e l'ho copiato nella directory templates del mio sub-tema Zen.
Il codice in questione è questo:

<?php
// $Id: views-exposed-form.tpl.php,v 1.4.4.1 2009/11/18 20:37:58 merlinofchaos Exp $
/**
 * @file views-exposed-form.tpl.php
 *
 * This template handles the layout of the views exposed filter form.
 *
 * Variables available:
 * - $widgets: An array of exposed form widgets. Each widget contains:
 * - $widget->label: The visible label to print. May be optional.
 * - $widget->operator: The operator for the widget. May be optional.
 * - $widget->widget: The widget itself.
 * - $button: The submit button for the form.
 *
 * @ingroup views_templates
 */
?>

<?php if (!empty($q)): ?>
  <?php
   
// This ensures that, if clean URLs are off, the 'q' is added first so that
    // it shows up first in the URL.
   
print $q;
 
?>

<?php endif; ?>
<div class="views-exposed-form">
  <div class="views-exposed-widgets clear-block">
    <?php foreach($widgets as $id => $widget): ?>
      <div class="views-exposed-widget">
        <?php if (!empty($widget->label)): ?>
          <label for="<?php print $widget->id; ?>">
            <?php print $widget->label; ?>
          </label>
        <?php endif; ?>
        <?php if (!empty($widget->operator)): ?>
          <div class="views-operator">
            <?php print $widget->operator; ?>
          </div>
        <?php endif; ?>
        <div class="views-widget">**
          <?php print $widget->widget; ?>**
        </div>**
      </div>
    <?php endforeach; ?>
    <div class="views-exposed-widget">
      <?php print $button ?>
    </div>
  </div>
</div>

La parte che ho contraddistinto con "**" credo sia quella che si occupa dell'inserimento dei vari termine del vocabolario che ho usato come filtro. Ora come posso modificare questo codice affinche mi restituisca un semplice elenco delle nazioni con a fianco la relativa immagine della bandiera? Il controllo if per non fare stampare i risultati prima della selezione del filtro dove lo trovo?

Ora ho provato anche l'opzione del filtro esposto "Autocompletamento" che ho trovato in "Tipo di selezione", che credo dia una migliore fruibilità da parte dell'utente visto che le nazioni sono molte, attualmente ne ho 160... quindi credo che sia il metodo più rapido per effettuare la selezione. Però vorrei che a fianco hai relativi termini (nome delle nazioni) anche le proprie bandiere che ho inserito con Taxonomy image e ancora non ho capito come fare...

Il duro lavoro fatto con passione, ripaga sempre!!!!

Il filtro esposto lo lascio come Autocompletamento credo che possa andare, rimane il problema di inserire le bandiere a fianco dei nomi, ma è un problema secondario.
La vista l'ho impostata correttamente credo e in "Campi" ho inserito tutti i contenuti relativi ai 3 tipi di contenuto che ho creato (programma, link utile, documento). Ora la cosa che non capisco è perchè l'output della vista è composto da diverse row e non da un'unica row visto che ho filtrato i contenuti per un unica nazione?
Mi stà sorgendo un dubbio, non è meglio creare un unico tipo di contenuto che chiamero ad esempio scheda nazione su cui posso inserire le varie voci (programma, link utile, documento). Se faccio ciò come posso inserirvi più programmi, più link utili e più documenti?
Mi sto perdendo......

Il duro lavoro fatto con passione, ripaga sempre!!!!

Credo la cosa si stia complicando un po, ricomincia da capo e vai un passo per volta, prima vedi di mostrare in una pagina tutti i risultati che ti interessano, poi pensiamo alla seconda.

e si mi sono perso. Ora creo un tipo di contenuto, che poi non sara' altro che una page, su cui inseriro' tutti i campi che avevo nei altri tipi di contenuto cos nella vista li avro tutti insieme e giustamente elencati. Ma un passo alla volta... :-)

Il duro lavoro fatto con passione, ripaga sempre!!!!

Ricominciamo da zero lavorando sul concetto, ealmuno con il tuo aiuto sono sicuro che alla fine ne verrò fuori :-) grazie di tutti intento!

Il progetto

Ho dei "tipi di documenti" (che chiameremo A, B, C) relativi a 160 nazioni. Ogni tipo documento avrà delle voci (che chiameremo X, Y e Z) e ogni voce avrà dei campi creati con cck. Lo scopo è quello di far si che tramite la selezione del "tipo di documento" e della nazione, possa visualizzare a schermo i campi delle voci di quel tipo di documento?

Creo 2 vocabolari:

  • Vocabolario1: avrà come termini i "tipi di documento" A, B e C
  • Vocabolario2: avrà come termini il nome e la bandiaera delle 160 nazioni

Il vocapolario1 sarà utilizzato per creare il menu mediante il modulo Taxonomy menu.

Primo approccio
Creo 3 tipi di contenuto, uno per ogni voce ( quindi avrò contenuto voceX, contenuto voceY e contenuto voceZ) e ogni tipo di voce avrà dei campi field creati con cck. Ad ogni tipo di contenuto assocerò i due vocabolari, la cui scelta dei termini sara obbligatoria.

  • Pro: estrema flessibilità nell'inserimento delle voci per ogni tipo di documento, anche in tempi diversi.
  • Contro: visualizzazione nella vista, per me comlicata perchè da prove effettuate avrò una riga (row) per ogni tipo di voce e queste vengono scritte in base alla creazione delle voci, quindi se in un primo momento inserirò contenuto voceX, contenuto voceY e contenuto voceZ questi mi visalizzerà sotto questo codice di fantasia ovviamente:
    <div riga1>
       <voceX>
    </div riga1>
    <div riga2>
       <voceY>
    </div riga2>
    <div riga3>
       <voceZ>
    </div riga3>

    se poi in un secondo momento voglio inserire un altro tipo di contenuto per la voce Y (quindi "contenuto voceY") succede questo:
    <div riga1>
       <voceX>
    </div riga1>
    <div riga2>
       <voceY>
    </div riga2>
    <div riga3>
       <voceZ>
    </div riga3>
    <div riga4>
       <voceY -(aggiunta in un secondo momento) >
    </div riga4>

    invece io vorrei che accada questo:

    <div riga1>
       <voceX>
    </div riga1>
    <div riga2>
       <voceY>
       <voceY -(aggiunta in un secondo momento) >
    </div riga2>
    <div riga3>
       <voceZ>
    </div riga3>

Secondo approccio
Creo 1 unico tipo di conteuto (contenuto madre) in cui creero dei gruppi con cck per ogni voce ( gruppoX, gruppoY e gruppoZ) ogni gruppo ovviamente avra dei campi field creati con cck. Ovviamente al contenuto madre assocerò i due vocabolari la cui selezione dei termini è obbligatoria.

  • Pro: la visualizzazione è bella che fatta perchà avrò in ogni riga un contenuto madre e siccome la selezione combinata del "tipo di documento" e della "nazione" mi potrà avere sempre come risultato un solo contenuto madre.
  • Contro: se volessi aggiungere successivamente un field al gruppoX di un contenuto madre (sempe relativamente a una "nazione" e a un "tipo di documento") dovro ricercare quel contenuto madre e modificarlo e siccome avrò 160 (nazioni) X 3 tipi di documenti (A, B e C) = 480 contenuti madre sarà un pò laborioso aggiornarli e gestirli tutti.... :-(
  • @ealmuno che strada mi conviene seguire? fissiamo questo intanto.

Il duro lavoro fatto con passione, ripaga sempre!!!!

La prima, la grafica un problema secondario.

io mi sono bloccato proprio li. non riesco a formattare l'output della vista...

Il duro lavoro fatto con passione, ripaga sempre!!!!

Per ora sorvola su quello, fai funzionare tutto, mettilo online mi posti il link, una bozza grafica e vediamo come fare.

troppo gentile! diciamo che funziona tutto e solo a livello grafico che non viene Ti faacio subito un sito test e lo metto online, poi ti mando il link. Grazie ancora di tutto. La cosa che ho notato dell'output della vista e' che la vista viene formattata su diverse righe, poi all,interno di ogni riga ci sono i vari tag html quanti sono i fields che compongono la voce "campi" della vista. Solo che in alcune righe si vedono i contenuti di alcuni fields e in altre righe di altri fields. Io invece vorrei che le voci che inserisco in campi mi vengano stampate una sola volta.

Il duro lavoro fatto con passione, ripaga sempre!!!!

Controlla nelle opzioni a sinistra se stampa i duplicati, usa anche semantic views così gestisci te classi e tag da usare.

Buongiorno ealmuno ti allego il codice di output della vitsa, la pubblicazione e il filtraggio dei contenuti funzionano correttamente, ora devo solo impostare la grafica. questo è quello che mi stampa a video:

<div class="view-content">
  <div class="views-row views-row-1 views-row-odd views-row-first">
        <div class="views-field-field-fd-nome-prog-value">
        <div class="views-field-field-fd-descrizione-programma-value">
        <div class="views-field-field-fd-prog-fid">
        <div class="views-field-field-fd-nome-sito-link-value"> (vuoto)
        <div class="views-field-field-fd-link-url"> (vuoto)
        <div class="views-field-field-fd-nome-scheda-value"> (vuoto)
        <div class="views-field-field-fd-tipopdf-value"> (vuoto)
        <div class="views-field-field-fd-filepdf-fid"> (vuoto)
  <div class="views-row views-row-2 views-row-even">
        <div class="views-field-field-fd-prog-fid"> (vuoto)
        <div class="views-field-field-fd-nome-sito-link-value">
        <div class="views-field-field-fd-link-url">
        <div class="views-field-field-fd-nome-scheda-value"> (vuoto)
        <div class="views-field-field-fd-tipopdf-value"> (vuoto)
        <div class="views-field-field-fd-filepdf-fid"> (vuoto)
  <div class="views-row views-row-3 views-row-odd">
        <div class="views-field-field-fd-prog-fid"> (vuoto)
        <div class="views-field-field-fd-nome-sito-link-value"> (vuoto)
        <div class="views-field-field-fd-link-url"> (vuoto)
        <div class="views-field-field-fd-nome-scheda-value">
        <div class="views-field-field-fd-tipopdf-value">
        <div class="views-field-field-fd-filepdf-fid">
  <div class="views-row views-row-4 views-row-even">
  <div class="views-row views-row-5 views-row-odd views-row-last">

ecco l'elenco dei field per il tipo di contenuto:

  1. Programma
  • field-fd-nome-prog-value
  • field-fd-descrizione-programma-value
  • field-fd-prog-fid
  • Link utile
    • field-fd-nome-sito-link-value
    • field-fd-link-url
  • Documento
    • field-fd-nome-scheda-value
    • field-fd-tipopdf-value
    • field-field-fd-filepdf-fid

    Io vorrei creare una cosa del genere (il codice è di fantazia ovviamente) :

    <div class:"nazione">
      <div class:"programma">
          <div class:"views-row">
                  <div class="views-field-field-fd-nome-prog-value">
                  <div class="views-field-field-fd-descrizione-programma-value">
                  <div class="views-field-field-fd-prog-fid">
          </div>
          <div class:"views-row2"> (presente se inserito un altro programma per lo stesso tipo di documento e la stessa nazione)
                  <div class="views-field-field-fd-nome-prog-value">
                  <div class="views-field-field-fd-descrizione-programma-value">
                  <div class="views-field-field-fd-prog-fid">
          </div>
       <div class:"link utile">
          <div class:"views-row">
                  <div class="views-field-field-fd-nome-sito-link-value">
                  <div class="views-field-field-fd-link-url">
          </div>
          <div class:"views-row2"> (presente se inserito un altro link utile per lo stesso tipo di documento e la stessa nazione)
                  <div class="views-field-field-fd-nome-sito-link-value">
                  <div class="views-field-field-fd-link-url">
          </div>
      </div>
    ..... stessa cosa per il documento.....
    </div>

    è qui che mi perdo come posso realizzare questo?

    Il duro lavoro fatto con passione, ripaga sempre!!!!

    nella vista nascondi i campi che non voui vedere (c'è proprio l'opzione).
    Poi usa semantic views e puoi anche aggiungere i campi globale: testo, in modo da mettere le classi come vuoi.

    Io voglio vedere tutti i campi che inserisco è che non capisco perchè mi crea più righe per visualizzare i campi quando su ogni riga non mi fa visualizzare tutti i campi...
    Credo che la soluzione al mio problema possa essere anche questa, creare una vista per ogni tipo di contenuto, quindi una per Programma, una per Link utili e una per Documento. poi far visualizzare queste tre viste in una singola vista a cui applicherò i filtri della tassonomia. facendo così avro in ordine giusto tutti i vari tipi di contenuti relatvi al tipo di documento e nazione.

    Il duro lavoro fatto con passione, ripaga sempre!!!!

    Finalmente ci sono riuscito a creare quello che avevo in mente!!!! ealmuno ovviamente avevi ragione ma ero io che non capivo!!!! Ho risolto nascondendo i campi se vuoti e ordinando i campi per tipo di contenuto. Ora vorrei far visualizzare prima i campi di un tipo di contenuto piuttosto che di un altro, come posso fare? Ho provato a riordinarli nella lista dei campi ma nulla. In più vorrei che finche non inserisco il filtro esposto non venisse visualizzato nulla a schermo, tu mi avevi suggerito questa ozione:

    Quote:
    Per nascondere i contenuti puoi modificare il template controllare se la path è taxonomy/term/id e non fare il print del content (con un if per capirci).

    ma che codice php dovrei scrivere e dove inserirlo?
    Poi una curiosità, ma gli argomenti e le relazioni cosa sono?

    Il duro lavoro fatto con passione, ripaga sempre!!!!

    prova a vedere le opzioni di raggruppamento oppure l'ordine in alto a destra .
    il php lo inserisci nella pagina page-taxonomy.tpl.php

    Per fare in modo che la views non restituisca nessun risultato fino a che non viene impostato il filtro esposto ho seguito le indicazioni di questo post http://www.drupalitalia.org/node/12353 e funziona correttamente. Mi rimane solo il discorso elencare i tipi di contenuto in modo diverso

    Il duro lavoro fatto con passione, ripaga sempre!!!!

    Risolto tutto finalemtne!!!!!! Allora ho semplicemente chreato una vista- pagina con diversi allegati. Ogni allegato cura la visualizzazione di un tipo di contenuto. Ora ci siamo. Adesso devo lavorare sula temizzazione/grafica

    Il duro lavoro fatto con passione, ripaga sempre!!!!

    sarebbe bello averla come tua "Crea Documentazione" e con un pò di foto jpg che illustrano i vari passaggi.

    Lo faro' sicuramente cosi chi non e' esperto, come me, non impazzira' nel cercare una soluzione ad un problema simile. Ovviamente i ringraziamenti vanno a tutta questa splendida comunita' e queta volta in partivolare a ealmuno.
    ora come si crea la documentazione? :-))))))

    Il duro lavoro fatto con passione, ripaga sempre!!!!

    Parti da qui: http://www.drupalitalia.org/documentazione
    Selezioni la sezione in cui inserire la documentazione e aggiungi una pagina figlio. dovresti avere già i permessi.

    Ok, ora sono incasinato con questo progetto, appena posso la scrivo. Oppure preferite che la pubblichi pezzo per pezzo quando ho del tempo? Cmq io sono alle primissime armi, quindi sarà una guida, sicuramentepasso passo, ma credo molto banale sicuramente stilisticamente non bellissima e con molti errori.

    Il duro lavoro fatto con passione, ripaga sempre!!!!

    Come preferisci, a molti serve base base.