come faccio ad aggiungere classi extra a un campo data nelle viste?


7

Sto usando Drupal 7 . Ho creato una vista, che utilizza un campo data. Vorrei creare classi extra nel campo della data per quella vista specifica.

Per esempio,

<div class="field-content">
 <span class="date">10</span>
 <span class="month">June</span>
 <span class="year">2011</span>
 <span class="time"> 8:00 </span>
</div>

Ora ho un codice:

<div class="field-content">
 <span class="date-display-single">10 June 2011, 8:00</span>
</div>

Come posso farlo passo dopo passo?

Risposte:


3
  1. È necessario installare il modulo token (l'ultima versione beta include token di campo) e il modulo di formattazione personalizzato da http://drupal.org/project/custom_formatters .

  2. Quindi abilitalo dalla pagina dei moduli.

  3. Vai su admin-> struttura-> formattatori.

  4. Aggiungi un nuovo formattatore, inseriscilo nel nome che ti piace.

  5. Formato: HTML + token

  6. Tipo di campo: data

  7. formatter:

    <span class="day">[node:source:field-datefieldname:custom:j]</span>
    <span class="month">[node:source:field-datefieldname:custom:F]</span>
    <span class="year">[node:source:field-datefieldname:custom:Y]</span>
  8. Salva

Ora, hai creato un formatter di data personalizzato, che puoi usare a tuo avviso!


4

Puoi farlo senza moduli aggiuntivi.

  1. Aggiungi il campo data. Escludere questo dal display. Scegli personalizzato e scrivi d nella casella (come nella data php per il giorno). Modifica le "Impostazioni di stile": personalizza il campo HMTL (impostato su nessuno) e Personalizza il campo e il wrapper di etichette HTML (impostato su nessuno).Campo data Drupal
  2. Aggiungi di nuovo il campo data. Escludere anche questo dal display. Scegli personalizzato e scrivi M nella casella (come nella data php per il mese). Modifica le "Impostazioni di stile": personalizza il campo HMTL (impostato su nessuno) e Personalizza il campo e il wrapper di etichette HTML (impostato su nessuno).
  3. Aggiungi di nuovo il campo data. Escludere anche questo dal display. Scegli personalizzato e scrivi Y nella casella (come nella data php per l'anno). Modifica le "Impostazioni di stile": personalizza il campo HMTL (impostato su nessuno) e Personalizza il campo e il wrapper di etichette HTML (impostato su nessuno).
  4. Aggiungi di nuovo il campo data (ULTIMA ORA!). NON ESCLUDERE QUESTO DAL DISPLAY. Scegli personalizzato e scrivi G: i (come nella data php per le ore e i minuti). Modifica le "Impostazioni di stile": personalizza il campo HMTL (impostato su nessuno) e Personalizza il campo e il wrapper di etichette HTML (impostato su nessuno).
  5. Riscrivi i risultati di questo campo della data finale. Utilizzando i modelli di sostituzione, puoi quindi scrivere qualcosa del genere:

    <div class="date">
      <span class="day">
        [created]
      </span>
      <span class="month">
        [created_1]
      </span>
      <span class="year">
        [created_2]
      </span>
    </div>

Risultati della riscrittura di Drupal


1
Sembra un ottimo metodo per la data di creazione, ma sembra che non sia possibile selezionare il "Formato personalizzato" se si utilizza un campo del modulo Data aggiunto a un tipo di contenuto?
Segna il

1
@Mark, se si verifica questo problema, è possibile aggiungere i formati di data utilizzando / admin / config / regional / date-time, quindi i passaggi 1-3 selezionano il formato appropriato dall'elenco a discesa anziché personalizzato.
Webdrips del

3

Una soluzione ragionevolmente veloce (se riesci a scrivere php), ma una soluzione leggermente hacker sarebbe quella di sovrascrivere il template per quel campo (vedi Basi tematiche su Views ), elaborare il valore della data non elaborata con php per estrarre i pezzi separati e incollarli insieme a l'HTML di tua scelta.

In alternativa, penso che potresti scrivere un formatter campo data personalizzato ( ecco qualcuno che l'ha fatto per D6). Sarebbe una buona soluzione nel caso in cui desideri riutilizzare il formatter personalizzato nei tuoi nodi.


1

Questo non è possibile utilizzando l'interfaccia utente di Views. Avresti bisogno di un po 'di codice piuttosto complesso, e sarei curioso di sapere il tuo caso d'uso prima di incoraggiarti a intraprenderlo.

Se ti chiedessi come aggiungere classi al campo nel suo insieme, la risposta sarebbe qualcosa del genere:

  1. Fai clic sul campo nell'interfaccia Viste.

  2. Espandere il set di campi "Impostazioni stile".

  3. Seleziona la casella di controllo "Personalizza campo HTML", quindi la casella di controllo "Crea una classe CSS".

  4. Inserisci la classe desiderata.

Forse quella soluzione sarà sufficiente. Altrimenti, ti auguro buona fortuna.


2
Grazie per la risposta, ma la tua soluzione aiuta solo a cambiare classe per tutto il campo, non mi permette di creare date separate.

1
Quindi, scrivere un formattatore personalizzato è probabilmente la tua unica vera opzione, quando la data arriva al livello del tema è completamente elaborata, vedi la funzione Helper per ottenere dati di campo grezzi e renderizzati .
tim.plunkett,

1

Questo è davvero facile, (una volta che sai come)

Utilizza un campo personalizzato della suite di visualizzazione

Vai su admin / struttura / ds / fields

(Nel menu: Struttura -> Suite display -> Campi)

Fai clic su aggiungi un campo codice

Per il mio caso d'uso ho inserito quanto segue

Etichetta

Nulla

Entità

Nodo

Campo limite

Lasciato in bianco

Codice di campo

<div>
  <span class="mf-month">[node:created:custom:M]</span> 
  <span class="mf-day">[node:created:custom:d]</span>
</div>

Gettone

verificato

Dopo aver creato il campo, vai alla pagina di gestione del display per il tipo di contenuto e la modalità di visualizzazione che stai regolando e seleziona il nuovo campo personalizzato.

Schermata della configurazione sopra

Schermata della pagina delle impostazioni

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.