Bagaimana saya bisa membatasi hasil dari pencarian default di Drupal 7, hanya untuk membawa node yang ada dalam bahasa saat ini?
Situs web saya memiliki pengalih tiga bahasa; pengguna memilih bahasa apa yang ingin dia gunakan saat melihat situs. Jika dia mencari sesuatu, halaman hasil membawa hasil dari bahasa lain. Hari ini saya hanya memiliki 3 bahasa yang diaktifkan, tetapi kami berencana untuk memperluas ini ke 6 atau lebih.
Ada cara yang sangat elegan untuk melakukan ini menggunakan dokumen yang tampaknya tidak berdokumen
hook_query_node_access_alter()
:Catatan: kode ini 100% berdasarkan pada modul Konfigurasi Pencarian yang sangat baik .
Bahasa Pengguna vs. Konten
Beberapa situs mungkin memiliki deteksi bahasa yang dikonfigurasi untuk menunjukkan antarmuka dalam bahasa pilihan pengguna, sementara konten halaman ditampilkan berdasarkan URL atau bahasa konten.
Dalam hal itu, pertimbangkan untuk mengganti
dengan
sumber
Saya memiliki persyaratan yang sama, dan saya menggunakan modul pencarian Kustom , yang mencakup submodule yang disebut Internasionalisasi Pencarian Kustom : " konten pencarian dari semua atau hanya bahasa saat ini, dan semua penanganan terjemahan label dan penyeleksi " (perhatikan modul ini juga menyediakan beberapa bantuan lainnya fitur seperti blok pencarian khusus). Bekerja dengan sempurna.
sumber
Saya tidak yakin inti pencarian mendukungnya.
Saya melihat proyek i18nluceneapi tetapi tidak mendukung versi 7 saat ini.
Saya menggunakan searchapi dan membuat aspek Bahasa :). Ini dapat digunakan untuk kasus Anda, membuat aspek dan filter default pada halaman pencarian.
sumber
Anda dapat menggunakan modul Display suite di mana Anda dapat memilih opsi Lihat Mode-> Bahasa yang memberikan hasil pencarian dalam bahasa saat ini yang ada dalam bahasa situs saat ini.
sumber