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:
$np = explode('/', drupal_get_normal_path($argument));
if (!empty($np[1])) {
$handler->argument = $np[1];
return TRUE;
} else {
return FALSE;
}