Tampilan menggunakan SQL menentukan node untuk ditampilkan. Sayangnya, untuk alasan kinerja, tidak mungkin layak bagi Drupal untuk melakukan node_load pada semua kandidat potensial dan kemudian memanggil hook_node_access pada masing-masing dari mereka semua. Bayangkan sebuah tampilan yang menunjukkan ribuan node (terutama ketika menggunakan pager). Jika logika tidak dilakukan dalam SQL maka pager akan memiliki fungsionalitas yang sangat tidak biasa sehingga memaksa Drupal Anda melakukannya seperti yang disebutkan menggunakan catatan akses dalam database Anda.
Membuat access_records adalah pekerjaan yang cukup banyak tetapi akan membuatnya bekerja dengan SQL. Jadi saya sarankan menggunakan modul node_access yang ada untuk menyelesaikan fungsionalitas Anda sedapat mungkin karena mungkin akan diimplementasikan menggunakan catatan akses dan dengan demikian akan bekerja dengan tampilan.
Omong-omong catatan akses disimpan dalam tabel node_access tabel seperti yang terlihat di bawah ini:
Melalui komentar untuk setiap kolom Anda bisa mendapatkan pemahaman tentang tujuan mereka. Pikirkan ranah sebagai sistem yang digunakan untuk akses node dan gid sebagai grup dalam ranah. Grup itu dapat memiliki melihat, memperbarui, dan menghapus izin. Secara umum setiap modul node_access mendefinisikan satu atau lebih ranah (terkadang beberapa modul node_access juga dapat bekerja secara paralel). Seorang pengguna memiliki satu atau lebih gid di setiap bidang.
Di Drupal, semua kueri yang memiliki tag "node_access" secara otomatis akan menambahkan beberapa logika khusus. Lihat dokumentasi untuk mempelajari lebih lanjut tentang pemberian tag. Logika khusus ini bergabung dengan tabel "node_access" untuk setiap bidang dan menambahkan kondisi di mana "gid" sama dengan salah satu gids yang diterapkan pada pengguna, pengguna memiliki izin yang sesuai.
Seluruh sistem ini memungkinkan semua permintaan untuk menangani dengan benar node_access, bahkan menghitung permintaan, dll. Ini sangat kuat tetapi memiliki kurva belajar yang lebih tinggi yang hanya dengan hook_node_access sederhana. Kapan pun memungkinkan, menggunakan modul node_access yang ada dapat menghemat seluruh sakit kepala ini.
hook_node_access()
, ada hal yang harus dilakukan: untuk mengubah kode modul Views.