I want to load an external script in <head>. It is module specific so I want my module to take care of the loading.
In Drupal 6, function drupal_add_js() does not allow to add an external script in <head>. It will be available in Drupal 7 passing the "external" argument to the function. In D6, I can use drupal_set_html_head() instead, but it inserts the given data in the beginning of the <head> which I don't want. I'd like to append data in it.
It turned out that drupal_html_set_head() appends data.
$stored_head .= $data ."\n";
So the behavior I experimented--data was inserted in the beginning of head data--should come from that I call drupal_html_set_head() in my module's hook_init() function.
How can I append data to the very and of <head>?
The default page.tpl.php (you can find it in /modules/system/page.tpl.php is this:
When you make
drupal_set_html_head()it is appending stuff to variable$head, but still there are more variables appended as you see.One possible solutions is to append the stuff that you want to
$scripts, instead of$head.How?
with a preprocess function from your module:
I didn't try this solution, but if doesn't work maybe is because the order of execution. Try to set your module's weight higher, so it will run after the
system_preprocess_page.Other reason why may not work is because the theme is printing the variables in different order in page.tpl.php. But you can't control this from the code of a module.