Saya menggunakan Tampilan PHP untuk menulis ulang bidang dalam Tampilan. Saya dapat mengakses semua variabel TETAPI mereka yang memiliki mode build. Dalam kasus saya, saya memiliki Content: Node field (yang dapat dibangun sesuai dengan tampilan apa pun), yang harus dapat diakses menggunakan variabel $row->nodefield
. Namun, konten variabel itu selalu kosong. Saya telah mencoba dengan variabel lain, dan setiap bidang dengan mode build tidak akan dirender dalam Tampilan PHP .
Apakah ini masalah desain atau saya melewatkan sesuatu?
Saya menggunakan Drupal 7 dan Views 3
EDIT
Menggunakan dpm () pada nilai yang tersedia mengembalikan yang berikut:
dpm ($ row)
dpm ($ data)
dpm($data)
di bidang nilai, Views mengembalikan "panggilan ke fungsi yang tidak ditentukan dpm ()" kesalahan "$row
Item Variabel yang Tersedia di Tampilan agak tidak berguna untuk mendapatkan nilai bidang. Tetapi Anda tidak perlu menggunakannoad_load
untuk mendapatkan data yang Anda butuhkan. Pertama, seperti biasa, sembunyikan output dari bidang yang ingin Anda tulis ulang, kemudian di bidang Kode Output bidang PHP Anda, Anda dapat menggunakan$data
seperti:Dalam hal ini saya menanggalkan tag yang tidak diizinkan dan dikaitkan dari konten untuk digunakan dalam ekspor NITF. Jika Anda tidak yakin apa yang ada di dalamnya
$data
, tentu saja Anda dapatprint_r($data)
melihatnya.sumber
$data->field_field_body[0]['raw']['value']
untuk mendapatkan nilai mentah.Kiat tambahan: Array $ data memang berisi data simpul mentah dan dapat dicetak. Tetapi untuk merendernya dengan benar, kita perlu memproses bidang dengan fungsi seperti field_view_field .
sumber
Apakah Anda mencoba melakukan ini di dalam tampilan? Mengapa tidak hanya tema template tampilan itu sendiri daripada menggunakan PHP global? Saya tidak yakin apakah print_r akan berfungsi di dalam bidang tampilan. Jika itu saya, saya hanya akan mengklik tema -> informasi, Anda akan melihat sesuatu seperti view-view-field - MyViewName.tpl.php
(edit, klarifikasi) Di bawah folder tema modul views, salin "views-view-field.tpl.php" lalu ganti namanya menjadi "views-view-field - MyViewName.tpl.php" dan letakkan di bawah folder / template Anda di situs Anda mereka. Dalam file tersebut, Anda akan melihat sesuatu seperti
Anda dapat menghapus itu dan menambahkan semua bidang Anda secara manual seperti
dll. Atau bungkus $ output dengan apa pun yang Anda inginkan.
Juga, saya tidak pernah beruntung dengan DEVEL, saya selalu menggunakan:
Kemudian cari sumber halaman untuk mendapatkan variabel. Mungkin saya hanya menggunakan DEVEL yang salah, tetapi saya menemukan saya bisa mendapatkan variabel untuk setiap baris lebih mudah dengan var_dump PHP lama biasa.
sumber
Saya menghabiskan dua hari untuk menemukan solusinya. Cara termudah adalah memperbarui "Modul Views Views" ke 7.x-2.x-dev. Sang Maintainer memperbaiki masalah ini dalam versi 2.x mereka.
Anda dapat mengunduh dari sini (Pastikan Anda mengunduh 7.x-2.x-dev ): https://www.drupal.org/project/views_php
Semoga bisa membantu seseorang.
sumber
Anda TIDAK PERNAH menyimpan kode PHP di basis data Anda (dan dengan View PHP Anda akan). Gunakan pengait Views sebagai gantinya untuk memodifikasi hasil.
sumber