Disporre cck field "inline"

17 contenuti / 0 new
Ultimo contenuto
Disporre cck field "inline"

Salve.
Sto creando un template apposito per un mio contenuto e avrei bisogno di visualizzare una cosa tipo:

di $nomeautore ($anno)

dove $nomeautore e $anno sono dei campi cck. Ho modificato il nodo, mettendo delle if per stampare i campi "di" e "()" solo quando quei campi sono definiti, ma il problema è che se stampo $nomeautore_rendered, drupal mi mette un a capo prima e dopo il nome, quindi ottengo una cosa tipo:

di
Nome Autore
(
1968
)

Se però stampo solo $nomeautore, ottengo un array e dovrei ri-scrivermi l'url a mano (per altro credo perdendo eventuali configurazioni di sistema sugli url delle tassonomie o dei nodi).

Mi sapete dire come risolvere?
Grazie!

Di solito si allineano in automatico personalizzando il tipo di contenuto. Per personalizzare il contenuto vedi: http://www.drupalitalia.org/node/11790

Per quanto riguarda il nodo, nessun problema.
Il fatto è che io vorrei vederli allineati in un blocco definito da una view (nel nodo ho risolto).

In questo caso il modulo semanticviews potrebbe esserti d'aiuto.Con questo modulo puoi eliminare i div in eccesso e personalizzare quelli rimanenti. Qui. c'è un video che mostra come si usa: http://adaptivethemes.com/semantic-views-module-for-drupal-6-video-tutorial

krima wrote:
In questo caso il modulo semanticviews potrebbe esserti d'aiuto.Con questo modulo puoi eliminare i div in eccesso e personalizzare quelli rimanenti. Qui. c'è un video che mostra come si usa: http://adaptivethemes.com/semantic-views-module-for-drupal-6-video-tutor...

Great krima, good to know! :)

Grazie, ma non ci siamo.
Ho provato a togliere tutti gli elementi di semantic views, quindi facendo sì che gli elementi di quella vista non abbiano divisioni, ma evidentemente la "stampa" di quei node-reference si porta dietro dei div che non posso controllare da lì.

http://drupal.ildeposito.org/node/2

Guarda l blocco a destra "Scheda del canto". Come vedi ci sono 4 field di quella vista, "Sezioni", "Tematiche", "Autori" e "Anno". Le altre si comportano bene (le prime due sono tassonomie, "Autori" sono node-reference", "Anno" è un date cck).
Come vedi gli autori li mette a capo, e se guardi il codice lui stampa dei div..

pionono wrote:
Guarda l blocco a destra "Scheda del canto". Come vedi ci sono 4 field di quella vista, "Sezioni", "Tematiche", "Autori" e "Anno". Le altre si comportano bene (le prime due sono tassonomie, "Autori" sono node-reference", "Anno" è un date cck).
Come vedi gli autori li mette a capo, e se guardi il codice lui stampa dei div..

Questo perché hai un div di troppo ed è quello che che racchiude il nome dell'autore, per risolvere il tuo problema basta rimuoverlo.

Il codice che al momento generi è questo:

<div class="content clearfix">
  <div class="view view-dati-canto view-id-dati_canto view-display-id-block_1 view-dom-id-1">
    <div class="view-content">
    Sezione:
    <a href="/taxonomy/term/1">Dal centrosinistra all'autunno caldo</a>
    Tematiche:
    <a href="/taxonomy/term/3">antifascisti</a>, <a href="/taxonomy/term/4">comunisti</a>
    Autori:
      <div class="field-item field-item-0"> <!-- DIV da rimuovere (il contenuto deve rimanere) -->
        <a class="active" href="/node/2"></a>
        <a href="/content/fausto-amodei">Fausto Amodei</a>
      </div><!-- /Da rimuovere -->
      <div class="field-item field-item-1"> <!-- DIV da rimuovere (il contenuto deve rimanere) -->
        <a class="active" href="/node/2"></a>
        <a href="/content/paolo-pietrangeli">Paolo pietrangeli</a>
      </div> <!-- /Da rimuovere -->
      Anno:
      <span class="date-display-single">1968</span>
    </div>
  </div>
</div>

Già solo rimuovendo field-item-0 ottieni quello che cerchi, anche se io rimuoverei anche field-item-1.

Infatti sono quei due div che ti creano la sovapposizione, puoi anche risolvere la cosa con i CSS ma a mio parere in questo caso è la soluzione sporca.

Certo, avevo intuito che fosse quello il problema.
Il punto è che non ho ben capito da dove viene quel pezzo di codice, non dalla vista.
Gli altri elementi, se noti, vengono "stampati" senza formattazione alcune, mentre quei node-reference sì..

pionono wrote:
Certo, avevo intuito che fosse quello il problema.

Ops sorry, è vero l'avevi già scritto anche nel tuo post.

pionono wrote:

Il punto è che non ho ben capito da dove viene quel pezzo di codice, non dalla vista.
Gli altri elementi, se noti, vengono "stampati" senza formattazione alcune, mentre quei node-reference sì..

Sinceramente non mi sono mai imbattuto in questa situazione, vediamo se qualcun'altro saprà dare lumi. :)

Hai provato a mettere nel CSS:

#block-views-dati_canto-block_1 label {float: left;}

Se non funziona prova a mettere label prima di #

credo che la cosa migliore da fare sia rimuovere semantic views e usare l'output di default (unformatted).
in questo modo hai una tag <label> per l'etichetta e con un paio di righe di css hai risolto

Ok proverò a fare così, grazie :)

Comunque resta il problema che i due nomi di autori, che potranno diventare tre, dovrebbero essere separati da una virgola.
Non c'è modo tramite la modifica di un template di interagire con l'output di quei campi?

Sì, inserisci un foreach nel template, oppure (meglio per la portabilità su più temi), scrivi un formatter che prende l'array di valori e li mette in fila separati da virgole.

Scusami, ma su quale template devo agire?
Sono all'inizio con drupal..

Nel template per il tipo di contenuto. Per esempio, se si tratta delle "Story", node-story.tpl.php

Allora, i casi in cui devo fare questo "lavoro" sono 2. In un nodo e in un blocco (definito da una vista).
Nel nodo ci sono riuscito, perchè tutti i node-reference sono raggruppati dentro un array, quindi li ho "implosi" e quindi tutto ok.

La cosa non è risolta invece nel blocco, dove i campi node-reference sono "estratti" tramite una view.
Ho provato a creare il template (seguendo le informazioni sul tema, nella views).
Quindi effettivamente sto usando un template per la riga degli "autori", quella che mi interessa, ma la variabile che stampa, ovvero $output, non sembra essere un array e non so come fare..