Saya sedang menulis modul khusus yang perlu memasukkan beberapa file javascript dan css hanya di halaman Views.
Saya menggunakan hook_preprocess_page, tapi saya tidak tahu apakah halaman saat ini dari tampilan:
function mymodule_preprocess_page(&vars)
{
var_dump($vars); //output: nothings that reference the views!
if([view page])
{
drupal_add_js([...]);
drupal_add_css([...]);
// Rebuild scripts
$scripts = drupal_get_js();
$vars['scripts'] = $scripts;
// Same for css
}
}
Saya tahu saya bisa menggunakan file templat (halaman-my_view_page_path.tpl.php), tetapi js dan css tambahan harus disertakan hanya jika modul saya diaktifkan; jadi saya ingin menyimpannya langsung di dalam kode modul saya .
Ide ide?
views
7
theming
javascript
Strae
sumber
sumber
Jawaban:
views_get_page_view()
mencari tahu apa, jika ada, tampilan halaman sedang digunakan. Jika mengembalikan NULL, maka halaman saat ini bukan halaman tampilan.Tetapi menggunakan
drupal_add_js()
dandrupal_add_css()
dalamhook_preprocess_page()
tidak akan berfungsi seperti yang diharapkan karena variabel$script
dan$style
variabel telah ditetapkan olehtemplate_preprocess_page()
. Pembuatan pratinjau templat Views (lihat jawaban Jeremy French) mungkin merupakan tempat yang lebih baik untuk menambahkan CSS dan JavaScript Anda.sumber
HOOK_preprocess_views_view(&$variables)
atau kait preprocess templat Views lainnyaHOOK_preprocess_page(&$variables)
. Dengan cara ini Anda bisa mendapatkan pandangan di$variables
dan penggunaandrupal_add_js()
dandrupal_add_css()
aman.Ada utas panjang tentang preprosesor untuk dilihat di sini. Komentar ini terlihat sangat sederhana bagi saya.
sumber
Jika Anda menggunakan hook_preprocess_page () maka, menurut definisi, tampilan Anda memiliki tampilan halaman dan jalur menu, yang harus unik - sehingga Anda dapat melakukan ini:
Jika Anda memiliki argumen yang diteruskan ke halaman ini, jadi Anda perlu bagian
$_GET['q']
, maka lakukan ini denganarg()
fungsi Drupal :http://api.drupal.org/api/drupal/includes--bootstrap.inc/function/arg
sumber
Bagi saya yang ini berfungsi:
sumber
Jika Anda menambahkan JS atau CSS ke panggilan balik tertentu, maka lebih baik menggunakan
hook_page_build()
:sumber