Saya memiliki pandangan di situs saya yang memiliki nama kelas tertentu. Saya ingin tahu, di dalam file template.php dari sebuah tema, bagaimana saya bisa tahu jika tampilan dengan nama kelas tertentu tersedia di halaman yang diminta.
Ini sangat penting bagi saya karena saya perlu memasukkan JavaScript dan CSS tertentu, ketika tampilan dengan nama kelas tertentu (seperti galeri-gambar) digunakan dalam sebuah halaman.
views
theming
javascript
Mehrdad201
sumber
sumber
if($view->name == 'your-view-name' && $view->display_id == 'your-display-id')
Anda dapat menggunakan fungsi views_get_page_view untuk mengetahui tampilan mana yang dilayani pada halaman. Ini mengembalikan objek pandangan. Perhatikan bahwa dalam cuplikan kode di bawah ini Anda harus membandingkan dengan nama mesin yang dapat dibaca, tetapi tentu saja Anda dapat menulis perbandingan berdasarkan pada objek tampilan yang dikembalikan oleh views_get_page_view
sumber
Untuk berjaga-jaga jika ini berguna bagi siapa pun yang menemukan pertanyaan ini, mencari seperti yang saya lakukan untuk melampirkan JavaScript ke Drupal View . Dalam hal D7 & Views 3.7, berikut ini yang paling cocok untuk saya:
Ini bermanfaat karena saya ingin menyimpan kode dalam modul saya, bukan temanya - karena perangkat tambahan yang dibawa oleh JavaScript tidak ada hubungannya dengan penampilan visual.
sumber
HOOK_views_pre_process
( api.drupal.org/api/views/views.api.php/7 ) kecuali Anda maksud alasan mengapa menggunakan iniTHEME_preprocess_views_view
- dalam hal ini hanya karena preferensi di mana Anda ingin menambahkan modifikasi kode Anda.HOOK_views_pre_render
dapat dihubungkan ke dalam modul, sedangkanTHEME_preprocess_views_view
harus masuk dalam file tema / template Anda. Anda juga bisa menggunakanHOOK_views_post_render
jika Anda mau.THEME_preprocess_views_view
, ya ... Saya yakin saya sudah melakukannyahook_preprocess_views_view
di modul sebelumnya.Jika Anda menggunakan drupal 6 atau 7, Anda juga dapat memasukkan aset javascript dengan konteks modul, menambah aset. Yang memang membutuhkan konteks tetapi Anda akan memastikan bahwa itu akan selalu disertakan ketika tampilan sedang dibuat.
https://drupal.org/project/context_addassets
Dari halaman proyek modul:
sumber
Tulis kode JavaScript yang mencari kelas tertentu dalam tampilan, menggunakan hasClass jQuery () , dan sertakan file JavaScript Anda ketika kondisinya terpenuhi.
Cara lain adalah dengan meletakkan template untuk tampilan Anda, dan menambahkan kode JavaScript melalui template tersebut menggunakan drupal_add_js () .
sumber