Setelah menambahkan "diubah oleh" pada node saya sekarang perlu menampilkan pengguna yang memodifikasi setiap node pada node_admin_content
formulir (at admin/content
) tepat di sebelah kolom "Author".
Saya telah berhasil memecahkan ini dengan mengubah node.admin.inc dan menambahkan hanya 2 baris kode:
...
'changed_by' => t('Changed By'),
...
...
'changed_by' => theme('username', array('account' => user_load($node->changed_by))),
...
Ini, tentu saja, bukan solusi yang tepat karena mengubah inti.
Jadi saya kemudian mencoba mengubah formulir melalui:
function hook_form_node_admin_content_alter(&$form, &$form_state, $form_id) {
$form['admin']['nodes']['#header']['changed_by'] = t('Changed By');
// ... ?
}
Dengan menggunakan dpm
saya dapat melihat bahwa formulir memiliki node dalam opsi. Masalahnya adalah bahwa ini adalah hasil dari rendering node sebagai opsi tabel. Saya tidak memiliki akses ke node asli, saya juga tidak ingin menjalankan kembali node fetch query untuk mendapatkan informasi "diubah oleh". Saya kira melakukan ini dalam bentuk kait tidak akan menyelesaikannya di lapisan yang benar. Atau itu?
Jadi, apa cara yang baik untuk mengubah node_admin_content
formulir untuk menambahkan lebih banyak data yang ada pada node?
Ganti saja admin / konten dengan Tampilan, lalu tambahkan bidang mana saja yang Anda inginkan. Tampilan Admin bahkan akan melakukannya untuk Anda.
sumber
hook_schema()
/hook_schema_alter()
implementasi?Sedikit masalah, tetapi jawaban ini menunjukkan bagaimana Anda dapat melakukan ini secara terprogram (misalnya dengan menambahkannya sebagai pembaruan modul di file MY_MODULE.install.)
Anda perlu sedikit lebih banyak pekerjaan jika Anda ingin menambahkan bidang baru Anda sebelum bidang terakhir yang ada. Gabungkan sebelum akhir $ view-> display ['default'] -> display_options ['fields'] array.
sumber