bagaimana cara menambahkan kelas tambahan ke bidang tanggal di tampilan?


7

Saya menggunakan Drupal 7 . Saya membuat tampilan, yang menggunakan bidang tanggal. Saya ingin membuat kelas tambahan ke bidang tanggal untuk tampilan spesifik itu.

Sebagai contoh,

<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>

Sekarang saya punya kode:

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

Bagaimana saya bisa melakukannya langkah demi langkah?

Jawaban:


3
  1. Anda perlu memasang modul token (versi beta terbaru menyertakan token bidang) dan modul formatters khusus dari http://drupal.org/project/custom_formatters .

  2. Kemudian aktifkan dari halaman modul.

  3. Pergi ke admin-> structure-> formatters.

  4. Tambahkan formatter baru, letakkan nama yang Anda sukai.

  5. Format: HTML + Token

  6. Jenis bidang: Tanggal

  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. Menyimpan

Sekarang, Anda telah membuat formatter tanggal kustom, yang dapat Anda gunakan sesuai keinginan Anda!


4

Anda dapat melakukan ini tanpa modul tambahan apa pun.

  1. Tambahkan bidang tanggal. Kecualikan ini dari tampilan. Pilih kustom, dan tulis d di kotak (seperti pada tanggal php untuk hari itu). Ubah 'Pengaturan Gaya' - Sesuaikan bidang HMTL (atur ke none) dan Sesuaikan bidang dan label wrapper HTML (atur ke none).Bidang tanggal Drupal
  2. Tambahkan bidang tanggal lagi. Kecualikan ini juga dari tampilan. Pilih kustom, dan tulis M di kotak (seperti pada tanggal php untuk bulan itu). Ubah 'Pengaturan Gaya' - Sesuaikan bidang HMTL (atur ke none) dan Sesuaikan bidang dan label wrapper HTML (atur ke none).
  3. Tambahkan bidang tanggal lagi. Kecualikan ini juga dari tampilan. Pilih kustom, dan tulis Y di kotak (seperti pada tanggal php untuk tahun ini). Ubah 'Pengaturan Gaya' - Sesuaikan bidang HMTL (atur ke none) dan Sesuaikan bidang dan label wrapper HTML (atur ke none).
  4. Tambahkan bidang tanggal lagi (WAKTU TERAKHIR!). JANGAN MENGECUALIKAN INI DARI TAMPILAN. Pilih kustom, dan tulis G: i (seperti dalam tanggal php untuk jam dan menit). Ubah 'Pengaturan Gaya' - Sesuaikan bidang HMTL (atur ke none) dan Sesuaikan bidang dan label wrapper HTML (atur ke none).
  5. Tulis ulang hasil dari bidang tanggal akhir ini. Dengan menggunakan pola penggantian, Anda dapat menulis sesuatu seperti ini:

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

Hasil Menulis Ulang Drupal


1
Ini sepertinya metode yang bagus untuk tanggal yang dibuat, tetapi tampaknya Anda tidak dapat memilih "Format Kustom" jika Anda menggunakan bidang modul Tanggal yang ditambahkan ke jenis konten?
Markus

1
@ Mark, jika Anda mengalami masalah ini, Anda dapat menambahkan format tanggal menggunakan / admin / config / regional / date-time, lalu langkah 1-3 Anda memilih format yang sesuai dari dropdown alih-alih kustom.
Webdrips

3

Solusi yang cukup cepat (jika Anda dapat menulis php), tetapi sedikit solusi hackish adalah menimpa templat untuk bidang tersebut (lihat Dasar-dasar tema tampilan), memproses nilai tanggal mentah dengan php untuk mengambil bagian yang terpisah dan kemudian merekatkannya bersama dengan HTML pilihan Anda.

Atau, saya pikir Anda bisa menulis formatter bidang tanggal kustom (di sini adalah seseorang yang melakukannya untuk D6). Itu akan menjadi solusi yang bagus jika Anda ingin menggunakan kembali formatter kustom di node Anda.


1

Ini tidak mungkin menggunakan Tampilan UI. Anda akan membutuhkan sedikit kode yang rumit, dan saya ingin tahu tentang use case Anda sebelum mendorong Anda untuk mencari tahu.

Jika Anda bertanya bagaimana cara menambahkan kelas ke bidang secara keseluruhan, jawabannya akan seperti ini:

  1. Klik pada bidang di antarmuka Views.

  2. Buka bidang "Setelan Gaya".

  3. Centang kotak "Sesuaikan bidang HTML", lalu kotak centang "Buat kelas CSS".

  4. Masukkan kelas yang Anda inginkan.

Mungkin solusi itu sudah cukup. Kalau tidak, saya berharap Anda beruntung.


2
Terima kasih atas jawabannya, tetapi solusi Anda hanya membantu mengubah kelas untuk semua bidang, itu tidak memungkinkan saya untuk membuat potongan tanggal yang terpisah.

1
Kemudian, menulis formatter khusus kemungkinan merupakan satu-satunya pilihan nyata Anda, pada saat tanggal sampai ke lapisan tema yang sepenuhnya diproses, lihat fungsi Helper untuk mendapatkan data lapangan yang mentah dan dirender .
tim.plunkett

1

Ini sangat mudah, (setelah Anda tahu caranya)

Gunakan bidang khusus tampilan suite

Buka admin / struktur / ds / bidang

(Dalam menu: Struktur -> Tampilan Suite -> Bidang)

Klik tambahkan bidang kode

Untuk kasus penggunaan saya, saya memasukkan yang berikut ini

Label

Apa pun

Entitas

Node

Batasi bidang

Biarkan kosong

Kode bidang

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

Token

diperiksa

Setelah Anda membuat bidang, lalu pergi ke halaman tampilan kelola untuk jenis konten dan mode tampilan yang Anda sesuaikan dan pilih bidang khusus yang baru.

Cuplikan layar pengaturan di atas

Cuplikan layar halaman pengaturan

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.