En regardant sur l'API Drupal.org, j'ai remarqué que hook_init () n'est pas documenté pour Drupal 8. En regardant les enregistrements de changement, j'ai trouvé que les crochets Bootstrap n'existent plus , ce qui indique de se débarrasser de tous les crochets «bootstrap» , où les crochets bootstrap sont censés être hook_boot()
et hook_exit()
; rien n'est dit hook_init()
.
J'ai recherché hook_init dans la source Drupal 8, et j'ai trouvé le code suivant. Le premier est une référence à hook_init()
faite dans un commentaire; les deux autres semblent une hook_init()
implémentation, mais ils obtiennent tous les deux un paramètre que je n'attends pas.
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;
}
}
J'ai également cherché une fonction invoquée hook_init()
mais je n'en ai pas trouvé.
Est hook_init()
toujours utilisé dans Drupal 8? S'il n'est plus utilisé, comment convertir l'implémentation du code Drupal 7 hook_init()
?
hook_page_attachments
ouhook_page_attachments_alter
.Oui,
hook_init()
n'est pas utilisé dans Drupal 8. Si vous en avez besoindrupal_add_js()
ou quedrupal_add_css()
vous pouvez utiliser à lahook_page_build()
place ( remarque : ce crochet a été supprimé dans Drupal 8.0.0-beta3, voir l' enregistrement des modifications ), ce qui est également utile pour cela dans Drupal 7.Par exemple, des styles CSS et du code JavaScript peuvent être ajoutés à l'
hook_page_build()
utilisation$page['#attached']
.Si vous avez besoin de faire une écoute plus complexe sur la demande / réponse, vous pouvez définir un écouteur d'événement de noyau de style Drupal 8 comme indiqué sur hook_init () supprimé .
la source
drupal_process_attached
utilise également drupal_add_css / js pour ajouter les éléments requis pour la page danscall_user_func('drupal_add_' . $type, $data, $options);
drupal_process_attached
déclenche après la récupération du cache de rendu. Si vous le faites,#attached
votre CSS / JS sera ajouté même lorsque le cache de rendu est utilisé.hook_page_build () est déconseillé au profit de hook_page_attachments () change record ici .
Exemple:
nom_bibliothèques est le nom de la bibliothèque, défini dans le module mymodule.libraries.yml de votre module
la source