I'm sure that there's a simple way of doing this that I'm missing and I'm sure there must be a Drupal way. But where do I place variables that I want to have system wide access to? The setting.php file?

Many thanks in advance

Comments

johsw’s picture

sambojambo’s picture

Thanks johsw for the reply - but I don't think that's quite what I'm after. I know that this is very 'hackerish' but in Drupal 4.6 you can place a var in the settings.php file like so:


if(file_exists){
	$local_dir = '/home/sambo/workspace/drupal';
}else{
	$local_dir = '/home/production_server/public_html/my_site';
}

and be able to access it in any of you modules like:

function do_something(){

	global $local_dir;

	$system_path = "$localdir/sites/all/modules/my_mod";
}

I sure that there must be a tidier way of doing this. I suppose what I'm looking for is the correct way to return the 'base_path' so that I don't have to resort to the hacking above? My coding is a bit rusty at the moment - been out of it for a while :)

sambojambo’s picture

Just bumping this - as I'm sure that there's a straight forward 'Drupal way' of doing this. I need to be able to return the 'system path' so that I can map to files that my modules need. But obviously don't want to hard code this. I need away to return the system path for the machine that the site's running on?

There must be a Drupal Jedi out there to show me the way of the Drupal.

sambojambo’s picture

Bit of a self posting session here - but I hope it might be useful to some one else.

Solved the problem using drupal_get_path.

$module_name = 'xmlload'; // Change this to your module name.
$path = drupal_get_path('module', $module_name);

Returns the path to a system item (module, theme, etc.).
http://api.drupal.org/api/function/drupal_get_path/5