Avec Drupal 8.0 beta2, drupal_add_html_head()
a été déprécié en faveur de #attached
. Donc, l'ancienne façon était:
function MYTHEME_page_build(&$page) {
$viewport = array(
'#type' => 'html_tag',
'#tag' => 'meta',
'#attributes' => array(
'name' => 'viewport',
'content' => 'width=device-width, initial-scale=1.0, maximum-scale=2.0, minimum-scale=0.55, user-scalable=yes',
),
);
drupal_add_html_head($viewport, 'viewport');
}
Sur la base de l' avis de modification que vous utilisez maintenant #attached
. Ainsi, le code ci-dessus est essentiellement le même avec la dernière partie changée en:
$build['#attached']['html_head'][] = [$viewport, 'viewport'];
Cela ne fonctionne pas et aucun message d'erreur ne s'affiche dans le chien de garde. J'ai aussi essayé de mettre cela dans une page modifier ainsi que la permutation $build
avec $variables
et $output
mais il ne fonctionne toujours pas. De plus, j'ai essayé le tout en tant que tableau:
$build['#attached']['html_head'][] = array(
'#type' => 'html_tag',
'#tag' => 'meta',
'#attributes' => array(
'name' => 'viewport',
'content' => 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no',
),
);
... mais cela n'a pas fonctionné non plus. Je ne suis pas sûr de ce que je fais mal, semble que cela devrait fonctionner.
Mise à jour
Voici du code de travail qui utilise hook_page_attachments_alter
ce qui n'est pas dans D8 Beta 2 car il vient d'être engagé pour le développement.
function MYTHEME_page_attachments_alter(array &$page) {
$viewport = array(
'#type' => 'html_tag',
'#tag' => 'meta',
'#attributes' => array(
'name' => 'viewport',
'content' => 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no',
),
);
$page['#attached']['html_head'][] = [$viewport, 'viewport'];
}
Le seul problème maintenant est que la balise viewport du noyau n'est pas écrasée, je suis donc coincé avec ma balise personnalisée et mon noyau. Vous ne savez pas comment gérer celui-ci ou mon tag devrait-il remplacer le noyau?
hook_page_attachments_alter
. Il y a un effet secondaire: j'ai maintenant deux balises de fenêtre, une du noyau et celle que j'ai ajoutée à partir de mon thème, donc je ne sais pas comment gérer cela.