Saya memiliki masalah yang sangat mirip dan saya tidak hanya menemukan solusi untuk itu, tetapi juga belajar hal-hal baru tentang cara kerja tampilan. Biarkan saya membagikan apa yang saya pelajari dan solusi untuk masalah Anda juga.
Saat Anda membuat tampilan dengan satu atau lebih filter kontekstual, tampilan harus menerima nilai filter tersebut dari suatu tempat. Ini bisa dilakukan dengan -
Memilih nilai filter konteks dari URL
Biasanya Anda akan memiliki tampilan halaman untuk tujuan seperti itu yang memiliki URL formulir foo/%/baratau foo/bar/%untuk filter kontekstual tunggal ATAU formulir foo/%/bar/%atau foo/bar/%/%untuk beberapa filter
Jika Anda memiliki beberapa filter, nilai url yang muncul pertama dipetakan ke filter pertama, di sebelah filter kedua dan seterusnya.
Tampilan memungkinkan Anda memberi tahu apa yang harus dilakukan jika nilai filter tidak tersedia di URL . Ini biasanya digunakan untuk tampilan blok .
Anda dapat memilih dari berbagai tindakan dan kemudian mengonfigurasi pilihan juga.
asdfj kajsdf
Tampilan hal lain yang memungkinkan Anda adalah untuk mengatakan apa yang harus dilakukan dengan nilai filter jika ditemukan dalam URL seperti yang dijelaskan dalam # 1 di atas. Kasing penggunaan umum adalah - Membuat judul dinamis berdasarkan nilai filter, Memvalidasi nilai filter, dll.
Saat memvalidasi nilai filter, Anda juga dapat mengubah nilainya! (Di situlah solusi kami terletak btw). Ini sangat mirip dengan cara kita dapat mengubah nilai $ form dalam panggilan balik validasi formulir drupal.
Solusi untuk masalah spesifik Anda terletak pada penggunaan kode yang sangat mirip di bagian yang ditunjukkan oleh panah pada gambar di atas.
Tautan ini terbukti sangat membantu saya. Berikut adalah kutipan darinya:
Ini tidak berhasil untuk saya, tetapi lebih menyebabkan kesalahan ajax pada tampilan saat menyimpan.
DrCord
1
Ini tidak akan berfungsi dalam semua keadaan, tetapi satu pendekatan untuk masalah dalam pertanyaan adalah dengan menggunakan tampilan simpul aktual dari simpul B (atau simpul tipe B) dan mengatur jalurnya seperti yang Anda inginkan dengan modul path atau pathauto. Kemudian gunakan blok tampilan untuk menambahkan hubungan konten dan tampilan yang Anda inginkan.
Gunakan filter kontekstual pada NID dan kemudian pengaturan Provide default value > Content ID from URL. Kemudian tambahkan blok tampilan ke halaman Anda atau set halaman.
Jika konteks Anda memungkinkan Anda untuk menggunakan blok tampilan pada node itu sendiri dan bukan halaman tampilan, ini akan membuatnya lebih mudah untuk mendapatkan jalur yang Anda inginkan dan tampilan tampilan yang Anda inginkan.
Argumen tampilan harus menjadi rujukan bidang tipe konten, lalu pilih opsi "Berikan argumen default" dan centang opsi Id Node (sesuatu seperti itu).
1) Tambahkan argumen "referensi bidang X" 2) Periksa ID node dari url (di tambahkan argumen default) 3) Di bagian validasi, periksa jenis konten node, dan pada setion "Jenis Node" pilih "Node Id
"ID konten dari URL" hanya memberikan nid. Jika saya akan menggunakan referensi istilah saya dapat menggunakan "kriteria validasi" dengan "nama istilah dikonversi ke ID istilah". Untuk referensi simpul tidak ada opsi serupa untuk menerjemahkan judul menjadi nid. Mungkin karena judul belum tentu unik.
uwe
Ya benar, tetapi perlu argumen harus menjadi referensi bidang (nid), coba itu.
Eleo
1) Tambahkan argumen "referensi bidang X" 2) Periksa ID node dari url (di tambahkan argumen default) 3) Di bagian validasi, periksa jenis konten node, dan pada setion "Jenis Node" pilih "Node Id"
Eleo
URL aktual dapat memiliki nid, dan path alias bisa menjadi judul simpul. Ini berhasil bukan?
SGhosh
0
Pertanyaan lama, tetapi menemukannya melalui Google dan mengira saya akan membagikan solusi saya untuk orang lain yang menemukannya di masa depan:
Sekarang ada modul bernama safeword yang pada dasarnya melakukan persis apa yang disarankan Sumeet Pareek: (Secara otomatis) membuat bidang ramah URL.
Saya akan merekomendasikan modul Extended Path Aliases (path_alias_xt) . Ini memperbaiki masalah ini murni dengan diinstal tanpa konfigurasi, itu pada dasarnya ajaib, rupanya. : D Tidak juga, tapi kutipan dari halaman modul memuji bagaimana Anda menginstalnya dan memperbaiki ini dan masalah lainnya, tetapi tidak masuk ke bagaimana modul melakukannya di belakang layar ... O, well, kita selalu bisa baca kode: D Itu tidak secara khusus menyebutkan memperbaiki jalur pandangan, tapi saya telah menggunakannya untuk melakukannya dan berfungsi dengan baik.
Daftar masalah yang dipecahkannya, dari halaman modul:
Pernahkah Anda bertanya-tanya mengapa, setelah mendefinisikan alias seperti tentang-us untuk, katakanlah, node / 123, halaman Anda masih penuh dengan tab dan tautan yang dihasilkan mesin jelek seperti / node / 123 / edit, node / 123 / revisi dll .?
Demikian juga untuk tautan / taksonomi / istilah /% dan / pengguna /%: apakah Anda berharap melihat / mengering / melacak tetapi mendapat / pengguna / 5 / trek?
Apakah Anda menemukan bahwa bilah alamat browser Anda juga menunjukkan angka-angka jelek itu dan bukan alias Anda?
Ini tidak akan berfungsi dalam semua keadaan, tetapi satu pendekatan untuk masalah dalam pertanyaan adalah dengan menggunakan tampilan simpul aktual dari simpul B (atau simpul tipe B) dan mengatur jalurnya seperti yang Anda inginkan dengan modul path atau pathauto. Kemudian gunakan blok tampilan untuk menambahkan hubungan konten dan tampilan yang Anda inginkan.
Gunakan filter kontekstual pada NID dan kemudian pengaturan
Provide default value > Content ID from URL
. Kemudian tambahkan blok tampilan ke halaman Anda atau set halaman.Jika konteks Anda memungkinkan Anda untuk menggunakan blok tampilan pada node itu sendiri dan bukan halaman tampilan, ini akan membuatnya lebih mudah untuk mendapatkan jalur yang Anda inginkan dan tampilan tampilan yang Anda inginkan.
sumber
Saya mengedit jawaban yang diterima, tetapi ingin menambahkan kode aktual di sini:
Gunakan opsi tervalidasi PHP di bawah opsi validasi di filter kontekstual.
sumber
Argumen tampilan harus menjadi rujukan bidang tipe konten, lalu pilih opsi "Berikan argumen default" dan centang opsi Id Node (sesuatu seperti itu).
1) Tambahkan argumen "referensi bidang X" 2) Periksa ID node dari url (di tambahkan argumen default) 3) Di bagian validasi, periksa jenis konten node, dan pada setion "Jenis Node" pilih "Node Id
Dan selesai. :)
sumber
Pertanyaan lama, tetapi menemukannya melalui Google dan mengira saya akan membagikan solusi saya untuk orang lain yang menemukannya di masa depan:
Sekarang ada modul bernama safeword yang pada dasarnya melakukan persis apa yang disarankan Sumeet Pareek: (Secara otomatis) membuat bidang ramah URL.
sumber
Saya akan merekomendasikan modul Extended Path Aliases (path_alias_xt) . Ini memperbaiki masalah ini murni dengan diinstal tanpa konfigurasi, itu pada dasarnya ajaib, rupanya. : D Tidak juga, tapi kutipan dari halaman modul memuji bagaimana Anda menginstalnya dan memperbaiki ini dan masalah lainnya, tetapi tidak masuk ke bagaimana modul melakukannya di belakang layar ... O, well, kita selalu bisa baca kode: D Itu tidak secara khusus menyebutkan memperbaiki jalur pandangan, tapi saya telah menggunakannya untuk melakukannya dan berfungsi dengan baik.
Daftar masalah yang dipecahkannya, dari halaman modul:
sumber