Con Drupal 8.0 beta2, drupal_add_html_head()
è stato deprecato a favore di #attached
. Quindi il vecchio modo 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');
}
In base all'avviso di modifica ora in uso #attached
. Quindi il codice sopra è essenzialmente lo stesso con l'ultima parte che cambia in:
$build['#attached']['html_head'][] = [$viewport, 'viewport'];
Questo non funziona però e nessun messaggio di errore nel watchdog. Ho anche provato a mettere questo in una pagina di alterare così come lo scambio $build
con $variables
e $output
ma non è così ancora il lavoro. Inoltre, ho provato l'intera cosa come un array:
$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',
),
);
... ma neanche quello ha funzionato. Non sono sicuro di quello che sto facendo di sbagliato, sembra che dovrebbe funzionare.
Aggiornare
Ecco un codice funzionante che utilizza hook_page_attachments_alter
che non è in D8 Beta 2 in quanto è stato appena impegnato a 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'];
}
L'unico problema ora è che il tag viewport del core non viene sovrascritto, quindi sono bloccato con il mio tag personalizzato e quelli del core. Non sei sicuro di come gestirlo o il mio tag dovrebbe sovrascrivere i core?