Julian Bond wrote:
Julian Bond <julian_bond@voidstar.com> Tue, 1 Mar 2005 18:41:15
Hmmm. Maybe I shouldn't be calling functions in common.inc during the module_init hook.
I was trying to add a style sheet and a javascript file to the <head> of every page using quicktags_init() as an example.
I think there may be a sequence problem here
Index.php include_once 'includes/bootstrap.inc'; drupal_page_header(); include_once 'includes/common.inc';
If the cache is turned on drupal_page_header() calls bootstrap_invoke_all('init');
which calls module_load($module); module_invoke($module, $op);
So module functions can be called before common.inc is loaded, but only if cache is turned on and it's a guest user coming in.
In this case, modules are not even loaded so surely they can't be called. The fact that one could call module_invoke() does not imply that all modules are available. The current best practice for injecting content into <HEAD> tag is to use hook_menu(!$may_cache). using init is a bad idea. The developer docs state this but unfortuantely the vrsion which shows at drupaldocs.org is so old that it omits this info. I have mailed Kjartan about this.