Drupal 8.0 beta2 ile lehine drupal_add_html_head()
kullanımdan kaldırıldı#attached
. Eski yol şuydu:
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');
}
Şimdi kullandığınız değişiklik bildirimini temel alır #attached
. Yani yukarıdaki kod aslında son bölümle aynıdır:
$build['#attached']['html_head'][] = [$viewport, 'viewport'];
Bu olsa çalışmaz ve bekçi köpeği hata iletileri. Ben de değiştirir bir sayfada bu koyarak yanı sıra takas denedim $build
ile $variables
ve $output
ancak hala çalışır değil. Ayrıca, her şeyi bir dizi olarak denedim:
$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',
),
);
... ama bu da işe yaramadı. Neyi yanlış yaptığımdan emin değilim, çalışması gerektiği gibi görünüyor.
Güncelleme
hook_page_attachments_alter
D8 Beta 2'de olmayan ve dev için kararlı olan kullanan çalışma kodu .
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'];
}
Şimdi tek sorun, çekirdeğin viewport etiketinin üzerine yazılmadığı için özel etiketime ve çekirdeğe takılı kaldım. Bunu nasıl ele alacağınızdan emin değil misiniz yoksa etiketimin üzerine çekirdek yazılması mı gerekiyor?