Saya punya komentar tentang node yang dikategorikan berdasarkan istilah. Saya perlu menunjukkan tampilan persyaratan dan jika ada komentar baru di salah satu node yang ditandai dengan istilah.
Jadi jika saya memiliki yang berikut ini:
Term1
-NodeA (has new comments)
-NodeB (has new comments)
Term2
-NodeC (no new comments)
-NodeD (no new comments)
Term3
-NodeE (no new comments)
-NodeF (has new comments)
Term4
Saya perlu pandangan saya untuk terlihat seperti ini:
Term1 – new comments!
Term2
Term3 – new comments!
Term4
Pertama saya mencoba membuat pandangan komentar untuk memasukkan bidang komentar baru dan menggunakan hubungan untuk menunjukkan persyaratan. Namun jika suatu istilah tidak memiliki simpul atau komentar (Term4 dalam contoh saya) saya perlu istilah tersebut masih ditampilkan.
Jadi saya kemudian mencoba melihat ketentuan-ketentuannya. Saya menambahkan hubungan 'istilah Taksonomi: Konten dengan istilah' dan bidang 'Konten: Komentar baru' yang menggunakan hubungan ini. Ini memang menunjukkan jumlah komentar baru seperti yang diharapkan. Ini memberi saya hasil yang digandakan (yang mungkin dapat saya perbaiki dengan bidang pengelompokan) tetapi secara tak terduga juga menyembunyikan istilah yang tidak memiliki komentar atau node.
Apakah saya akan melakukan ini dengan cara yang benar dan jika demikian bagaimana saya bisa menghentikan istilah 'kosong' disembunyikan?
PEMBARUAN Ive memperbarui D core dan beberapa modul yang memiliki versi baru (tetapi tidak dilihat). Tampilan berfungsi dengan baik dengan hubungan 'Konfigurasikan Hubungan: Istilah taksonomi: Konten dengan istilah' ketika bidangnya adalah 'Konten: Judul (Judul)'. Namun ketika saya menambahkan bidang 'Konten: Komentar baru' maka istilah yang tidak memiliki komentar disembunyikan.
PEMBARUAN Saya sudah mencoba yang berikut ini di bidang tampilan:
if(intval($data->node_new_comments) > 0) {
if(!array_key_exists($data->tid, $static)) {
print "new comments !";
$static[$data->tid] = 1;
}
} else {
print "here you do whatever you want when there's no new comment";
}
PEMBARUAN - oleh 'komentar baru' Maksud saya komentar yang belum dibaca pengguna yang masuk. Ini adalah bidang standar dalam tampilan. Saya membutuhkan ini daripada memotong tanggal sewenang-wenang. Maaf atas kebingungan.
Taxonomy term: Term name
dan tidakContent: -term vocabulary-
(kesalahan mudah untuk membuat!) 4) Apakah Anda melihat hal yang sama jika Anda membuat tampilan Ketentuan Taksonomi baru dari awal dengan hanya hubungan,Taxonomy Term: Term Name
danContent: New Comments
?Jawaban:
Ini bekerja untuk saya. Saya memiliki tampilan istilah yang menunjukkan bidang nama istilah dan kode saya menambahkan bendera komentar baru setelah nama istilah.
Kode masuk dalam modul khusus.
Anda perlu mengubah ke VIEW_NAME ke nama tampilan Anda dan TAXONOMY_FIELD_NAME ke nama bidang Anda (seperti misalnya field_tags).
sumber
history
tabel berisi data node baca oleh uid.Menambahkan bidang 'Konten: Komentar baru' menambahkan
INNER JOIN
tabel ke node_comment_statistics, yang berpotensi menjadi sumber masalah yang Anda alami. (Misalnya, jika tidak ada entri untuk NodeC, NodeD dan NodeE di node_comment_statistics karena beberapa alasan, istilah tidak akan ditampilkan karenaJOIN
menjadiINNER
satu.)Apakah membangun kembali node_comment_statistics membantu?
sumber
Berikut ini sketsa jawaban yang akan membuat Anda hampir sampai di sana, saya pikir. Mulailah dengan membuat tampilan node, lalu tambahkan taksonomi dan waktu komentar terbaru sebagai bidang.
Sekarang aktifkan agregasi untuk tampilan, dan atur agregasi untuk bidang taksonomi menjadi "hasil kelompok bersama", pada kolom "tid".
Ubah pengaturan agregasi untuk bidang waktu komentar menjadi "Maksimum".
Anda sekarang harus memiliki pandangan yang mencantumkan semua istilah taksonomi Anda (setidaknya yang memiliki konten) dengan tanggal komentar terakhir. Langkah terakhir adalah mengolah cap waktu komentar di kait pandangan atau bertema untuk membuatnya ditampilkan sesuai kebutuhan, yang seharusnya relatif sederhana.
sumber
Anda harus membuat kueri lain terlebih dahulu, untuk mengambil istilah yang memiliki node dengan konten baru.
Saya telah dibantu oleh utas ini .
Seperti yang saya katakan, saya meletakkan semua ini di bidang php; jika Anda punya waktu, akan lebih baik untuk meletakkannya di modul, di views_query_alter atau yang lain.
Tambahkan bidang php , dan dalam kode pengaturan , ambil daftar istilah tids 'yang memiliki konten baru:
Sekarang dalam kode output , periksa apakah term Anda ada dalam array ini:
Ini adalah yang paling ringan yang saya lihat, walaupun permintaannya bisa sangat berat jika Anda memiliki banyak node dan komentar.
EDIT: Saya harus ingat bahwa menempatkan php di sql dengan views php BUKAN praktik yang baik , saya mengundang Anda untuk meletakkan semua itu dalam modul khusus di hook_views_query_alter sesegera mungkin.
sumber