Melihat di Drupal.org API, saya perhatikan bahwa hook_init () tidak didokumentasikan untuk Drupal 8. Melihat catatan perubahan, saya menemukan kait Bootstrap tidak ada lagi , yang menunjuk ke Singkirkan semua kait 'bootstrap' , di mana kait bootstrap dikatakan hook_boot()
dan hook_exit()
; tidak ada yang dikatakan tentang hook_init()
.
Saya mencari hook_init di sumber Drupal 8, dan saya menemukan kode berikut. Yang pertama adalah referensi untuk hook_init()
dibuat dalam komentar; dua lainnya tampak hook_init()
implementasi, tetapi mereka berdua mendapatkan parameter yang tidak saya harapkan.
function overlay_enable() {
if (strpos(current_path(), 'admin/modules') === 0) {
// Flag for a redirect to <front>#overlay=admin/modules on hook_init().
$_SESSION['overlay_enable_redirect'] = 1;
}
}
/**
* Implements hook_init().
*/
function phptemplate_init($template) {
$file = dirname($template->filename) . '/' . $template->name . '.theme';
if (file_exists($file)) {
include_once DRUPAL_ROOT . '/' . $file;
}
}
/**
* Implements hook_init().
*/
function twig_init($template) {
$file = dirname($template->filename) . '/' . $template->name . '.theme';
if (file_exists($file)) {
include_once DRUPAL_ROOT . '/' . $file;
}
}
Saya juga mencari fungsi yang memohon hook_init()
tetapi saya tidak menemukannya.
Apakah hook_init()
masih digunakan di Drupal 8? Jika tidak lagi digunakan, bagaimana cara mengkonversi penerapan kode Drupal 7 hook_init()
?
hook_page_attachments
atauhook_page_attachments_alter
.Ya,
hook_init()
tidak digunakan dalam Drupal 8. Jika Anda membutuhkandrupal_add_js()
ataudrupal_add_css()
Anda dapat menggunakanhook_page_build()
sebagai gantinya ( catatan : kait ini telah dihapus di Drupal 8.0.0-beta3 lihat catatan perubahan ), yang juga berguna untuk itu di Drupal 7.Misalnya, gaya CSS dan kode JavaScript dapat ditambahkan untuk
hook_page_build()
digunakan$page['#attached']
.Jika Anda perlu mendengarkan lebih kompleks berdasarkan permintaan / tanggapan di sana, Anda dapat menentukan pendengar acara kernel gaya Drupal 8 yang didokumentasikan pada hook_init () dihapus .
sumber
drupal_process_attached
juga menggunakan drupal_add_css / js untuk menambahkan syarat halamancall_user_func('drupal_add_' . $type, $data, $options);
drupal_process_attached
menyala setelah cache render diambil. Jika Anda melakukannya,#attached
CSS / JS Anda akan ditambahkan bahkan ketika cache render digunakan.hook_page_build () telah tidak digunakan lagi karena hook_page_attachments () ubah catatan di sini .
Contoh:
libraryname adalah nama perpustakaan, didefinisikan dalam mymodule.libraries.yml modul Anda
sumber