Tulis ulang output bidang CCK tanpa menggunakan templat

7

Modul Views memiliki opsi yang bagus untuk menulis ulang output suatu bidang. Ini memungkinkan untuk menyesuaikan output bidang CCK menggunakan Token tanpa harus membuat templat untuk tampilan itu.

Apakah ada modul yang akan memungkinkan fungsionalitas serupa untuk tab "Bidang Tampilan" dari jenis konten? Saya perlu sedikit memodifikasi output bidang untuk penggoda dan tubuh, tetapi tidak ingin membuat templat lengkap.

Saya saat ini menggunakan Contemplate untuk itu, tapi itu lebih rumit daripada yang saya butuhkan dan tidak perlu sulit jika Anda tidak terbiasa dengan Drupal PHP API. Ini juga menjengkelkan bahwa saya perlu memodifikasi template setiap kali saya menambahkan bidang tambahan ke jenis konten, saya benar-benar hanya perlu menulis ulang beberapa bidang, bukan seluruh tubuh atau penggoda.

Jadi, apa yang ingin saya miliki adalah cara sederhana untuk menulis ulang setiap output bidang CCK menggunakan token yang tersedia untuk jenis konten itu. Apakah ada yang seperti itu?

Ilmuwan gila
sumber

Jawaban:

5

Kedengarannya Anda sedang mencari modul Custom Formatters , sangat mirip dengan Contemplate, tetapi khusus untuk membuat Field Formatters untuk digunakan melalui halaman Pengaturan Tampilan atau Tampilan.

Pemformat khusus dapat dibuat dengan token atau kode PHP murni.

Selain itu, Custom Formatters dapat diekspor sebagai Drupal Hooks asli atau dalam format yang dapat diekspor.

Menguraikan
sumber
4

Jika Anda hanya ingin mengubah markup, Semantic CCK patut dicoba.

Semantic CCK dibuat untuk memberi pengguna cara menyesuaikan output HTML bidang CCK. Itu sebagian terinspirasi oleh modul Semantic Views yang sangat direkomendasikan yang menyediakan fungsionalitas yang sama untuk Views.

Drupal 7

Versi Drupal 7 dari Semantic CCK saat ini sedang dikembangkan: Semantic Fields .

tim.plunkett
sumber
2

Menggunakan modul Contemplate tidak disarankan karena menempatkan kode PHP ke dalam basis data yang umumnya dianggap sebagai kerentanan keamanan dan tidak memiliki kinerja.

Anda dapat mempertimbangkan mendefinisikan pemformat bidang Anda sendiri menggunakan hook_field_formatter_info () . Ini memungkinkan Anda untuk menentukan panggilan balik khusus yang dapat menangani setiap bidang. Berikut tutorial sederhana tentang cara kerjanya untuk Drupal 6.

Jelajahi implementasi modul lain dari hook_field_formatter_info () untuk melihat cara kerjanya. Dalam Drupal 6 ia langsung terhubung dengan hook_theme () sementara Drupal 7 menggunakan hook_field_formatter_view () .

c4rl
sumber
0

Saya telah berjuang dengan masalah yang sama untuk beberapa waktu sekarang juga.

Saya tidak bisa / tidak ingin menggunakan ...

  1. Renungkan alasan arsitektur yang biasa-biasa saja.
  2. Tampilan Suite, yang luar biasa tetapi berlebihan dan tidak benar-benar memungkinkan perubahan sederhana ke bidang.
  3. Pemformat khusus, karena sekali lagi berakhir dengan PHP di database untuk beberapa bidang nilai.
  4. Templat bidang karena saya hanya menambahkan satu baris teks dengan item.
  5. CCK semantik karena itu hanya mengubah elemen dan kelas.
  6. hook_preprocess atau solusi berbasis kode lain karena saya memerlukannya dapat dikonfigurasi.

Ini mengecewakan, ketika semua yang perlu saya lakukan adalah menambahkan deskripsi bidang CCK untuk menampilkan output. Ini sebenarnya harus agak sederhana.

Sepertinya Anda membutuhkan Pemformat Khusus.

doublejosh
sumber
n / m fungsi ini ditambahkan ke Semantic CCK 1.4
doublejosh
apakah Anda menemukan solusi penanganan yang mudah yang memiliki kinerja yang baik? dalam drupal6 solusi yang baik adalah sering menggunakan ['view'] dari objek node dan menggabungkannya dengan beberapa format template node. output sangat bersih dan nyaman karena penggunaan ['view'] di 90% dari semua kasus penggunaan. di drupal 7 kita memiliki lagi divities, karena render () menghasilkan banyak overhead ...
Kedengarannya seperti Display Suite kemudian drupal.org/project/ds
doublejosh
Custom Formatters memang menyimpan informasi dalam database, tetapi modul ini hanyalah sebuah utilitas, jadi setelah Anda membuat Formatter dalam database Anda mengekspornya dan Anda tidak lagi memiliki masalah kode dalam database :)
Decipher
0

The Token Lapangan modul memungkinkan Anda menggabungkan bidang menggunakan token mereka.

keva
sumber
0

Saya akan menggunakan modul Filter Token , untuk menentukan nilai token di bidang CCK dengan filter input. Berikut ini kutipan dari halaman proyek modul:

... modul yang sangat sederhana untuk membuat nilai token tersedia sebagai filter input.

bkildow
sumber