Agaric Design Collective

Get the path to a Drupal module or theme

Average: 4.7 (6 votes)
By Benjamin Melançon
on 22 Jul
1 comment

Key words and phrases

drupal get module path path to theme

Tags

Description

This is a very useful function in Drupal's API that is hard to find searching online for file system paths to Drupal modules or themes or anything like that.

So to get the path to a Drupal module or theme it's as simple as:

<?php
  drupal_get_path
('module', $module_name);
?>

or:
<?php
  drupal_get_path
('theme', $theme_name);
?>

http://api.drupal.org/api/function/drupal_get_path/5

 

In practice

The file in this example is included in the theme, rather than a module (and yes stuffing functional code in the theme makes me want to cry) -- the path at issue is:

<?php
include('/var/www/html/sites/all/themes/example/includes/video/video.php');
?>

The previous developers should be slapped (trademarked- TPDSBS) for hardcoding the server path into their call to other files from their theme.

The Drupal fix holds whether it's a file in a module or a theme-- do not hard-code it to our path, but to use the drupal_get_path function described here:

<?php
$theme_path
= drupal_get_path('theme', 'example');
include(
$theme_path .'/includes/video/video.php');
?>

Posted by Benjamin Melançon on Thu, 2008-09-04 16:30
Post new comment
The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <h1> <h2> <h3> <h4> <h5> <h6> <small> <pre> <strike> <sub> <sup> <kbd> <s>
  • Lines and paragraphs break automatically.
  • Web page addresses and e-mail addresses turn into links automatically.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.