Dengan Drupal 8,0 beta2, drupal_add_html_head()
telah usang dalam mendukung #attached
. Jadi cara lama adalah:
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');
}
Berdasarkan pemberitahuan perubahan yang sekarang Anda gunakan #attached
. Jadi kode di atas pada dasarnya sama dengan bagian terakhir yang berubah menjadi:
$build['#attached']['html_head'][] = [$viewport, 'viewport'];
Ini tidak berfungsi dan tidak ada pesan kesalahan di pengawas. Saya juga mencoba meletakkan ini di halaman alter serta bertukar $build
dengan $variables
dan $output
tetapi masih tidak berhasil. Selain itu, saya mencoba semuanya sebagai 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',
),
);
... tapi itu tidak berhasil juga. Saya tidak yakin apa yang saya lakukan salah, sepertinya itu harus berfungsi.
Memperbarui
Berikut adalah kode kerja yang menggunakan hook_page_attachments_alter
yang tidak ada dalam D8 Beta 2 karena hanya berkomitmen untuk 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'];
}
Satu-satunya masalah sekarang adalah bahwa tag viewport core tidak ditimpa jadi saya terjebak dengan tag dan core kustom saya. Tidak yakin bagaimana menangani yang itu atau haruskah tag saya menimpa inti?
hook_page_attachments_alter
. Ada satu sisi yang mempengaruhi bahwa saya sekarang memiliki dua tag viewport, satu dari inti dan yang saya tambahkan dari tema saya jadi saya tidak yakin bagaimana menghadapinya.