Con Drupal 8.0 beta2, drupal_add_html_head()
ha quedado en desuso a favor de #attached
. Entonces la vieja forma era:
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');
}
Según el aviso de cambio que usa ahora #attached
. Entonces, el código anterior es esencialmente el mismo con la última parte cambiando a:
$build['#attached']['html_head'][] = [$viewport, 'viewport'];
Sin embargo, esto no funciona y no hay mensajes de error en el perro guardián. También he intentado poner esto en una página alternativa, así como intercambiar $build
con $variables
y, $output
pero todavía no funciona. Además, probé todo como una matriz:
$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',
),
);
... pero eso tampoco funcionó. No estoy seguro de lo que estoy haciendo mal, parece que debería estar funcionando.
Actualizar
Aquí hay un código de trabajo que usa el hook_page_attachments_alter
que no está en D8 Beta 2, ya que solo se comprometió con dev.
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'];
}
El único problema ahora es que la etiqueta de viewport de core no se sobrescribe, así que estoy atascado con mi etiqueta personalizada y la de core. ¿No está seguro de cómo manejarlo o mi etiqueta debería sobrescribir los núcleos?