Значение по умолчанию page.tpl.php (его можно найти в / modules / system / page.tpl.php :
<head>
<title><?php print $head_title; ?></title>
<?php print $head; ?>
<?php print $styles; ?>
<?php print $scripts; ?>
<script type="text/javascript"><?php /* Needed to avoid Flash of Unstyled Content in IE */ ?> </script>
</head>
Когда вы делаете drupal_set_html_head()
, он добавляет материал к переменной $head
, но, как вы видите, к нему добавляется больше переменных.
Одним из возможных решений является добавление материала, который вы хотите, к $scripts
вместо $head
.
Как?
с функцией предварительной обработки из вашего модуля:
function MYMODULE_preprocess_page(&$variables) {
$variables['scripts'] .= $your_stuff;
}
Я не пробовал это решение, но если оно не работает, возможно, потому что порядок выполнения. Попробуйте установить вес вашего модуля выше, чтобы он работал после system_preprocess_page
.
Другая причина, по которой может не работать, заключается в том, что тема печатает переменные в другом порядке в page.tpl.php . Но вы не можете контролировать это из кода модуля.