Saya mencoba untuk mendapatkan gabungan dari node dan komentar pengguna yang diurutkan berdasarkan "tanggal posting". Posting ini terhubung ke proyek-proyek kotak pasir untuk D6 tetapi tidak ada untuk 7.
Ini Posting memiliki contoh menggunakan hook_views_pre_execute () dan SQL UNION di D6. Ini tidak berfungsi untuk D7 dengan tampilan 3.
Saya menemukan komentar merlinofchaos
Karena kami sekarang menggunakan generator kueri Drupal yang baru, kueri tersebut adalah objek SelectQuery yang harus Anda modifikasi atau ganti. Cari lapisan database baru Drupal 7 untuk informasi lebih lanjut.
Adakah yang punya contoh bagaimana melakukan ini atau solusi lain untuk menggabungkan dua pandangan?
Jawaban:
Berikut adalah contoh yang berfungsi dan diuji:
Ini berfungsi untuk sebagian besar tampilan. Namun beberapa plugin gaya dapat melakukan hal-hal mewah yang tidak akan bekerja dengan teknik ini (modul Kalender saya melihat Anda).
sumber
Anda dapat menggunakan modul Views handler tambahan untuk menghasilkan kueri UNION SQL dari dua tampilan / tampilan berbeda.
Tutorial rinci tentang drupal.org di sini
https://www.drupal.org/project/views_extra_handlers
sumber
Saya akhirnya menggunakan db_query () untuk membuat SQL UNIONs dan kemudian merendernya menjadi tata letak tabel termasuk pager menggunakan fungsi theme ().
Bagi pengguna, tampilannya seperti default. Manfaat lainnya adalah saya bisa mengoptimalkan kueri banyak. Saya menunjukkan "kegiatan teman saya" dan jika Anda akan menggunakan tampilan untuk itu akan membuat daftar teman Anda dan menggunakannya dalam klausa SQL "IN" yang sangat lambat jika Anda memiliki lebih dari 50 atau 100 catatan.
Saya dapat mempersempit daftar teman hanya untuk orang-orang yang telah masuk ke situs dalam x hari terakhir.
Ini adalah contoh kode:
sumber
Untuk referensi di masa mendatang, inilah cara saya menggabungkan dua tampilan berdasarkan tabel yang sama. Prinsip yang sama juga harus diterapkan pada tampilan berdasarkan tabel yang berbeda dengan jumlah bidang yang sama.
Dalam kasus di bawah ini hanya id yang dipilih karena format diatur ke entitas yang diberikan. Tetapi jika Anda pergi dengan bidang, Anda selalu dapat menambahkan bidang dummy tambahan ke kueri yang memiliki lebih sedikit bidang seperti yang saya tambahkan cap waktu di bawah ini.
sumber
Saya membayangkan sesuatu seperti ini:
Meskipun saya belum mengujinya.
Beberapa tautan yang mungkin membantu:
http://api.drupal.org/api/drupal/includes!database!select.inc/function/SelectQueryInterface%3A%3Aunion/7
http://drupal.org/node/557318#comment-1991910
sumber
Saya menemukan modul yang disebut Tampilan Bidang Tampilan , yang memungkinkan Anda untuk menyematkan tampilan sebagai bidang dalam tampilan lain. Saya sendiri belum mencobanya, tetapi mungkin bisa membantu Anda.
sumber
The EntityFieldQuery Tampilan Backend dukungan query untuk beberapa jenis entitas pada saat yang sama. Jadi seharusnya bisa digunakan untuk query baik node dan komentar. Kedua tipe entitas menggunakan
uid
properti untuk menautkan ke pembuatnya sehingga pada tingkat API EntityFieldQuery :: propertyCondition () harus dapat digunakan untuk memilih node dan komentar dari satu pengguna. Saya kira tampilan backend menyediakan fitur yang sama.sumber
Pendekatan yang berbeda mungkin untuk membuat umpan dari simpul dan komentar (dengan filter kontekstual dari pengidentifikasi pengguna di URL) dan kemudian menggabungkan dua umpan ke dalam umpan baru, dan menampilkannya berdasarkan tanggal posting.
sumber
Global Digunakan : PHP bidang ? Anda dapat menggunakannya untuk melakukan lakban bersama dengan Tampilan yang menggabungkan keduanya.
Buat Tampilan konten dengan Konten: Judul dan Konten: Bidang komentar (Tidak termasuk dari tampilan).
Tambahkan bidang PHP yang menghitung mana yang lebih baru, tanggal terakhir diperbarui, atau tanggal komentar terakhir oleh pengguna, dan tetapkan nilai bidang menjadi tanggal itu. Tambahkan bidang itu sebagai kondisi semacam.
Tambahkan bidang serupa yang menghasilkan tautan ke komentar atau ke simpul.
Kedengarannya bagus untuk saya!
sumber