2

I have written my own module for example called: calc and i have used module_load_include('inc', 'calc', 'form.inc') in my calc.module file, and placed form.inc file inside my module's directory: calc/form.inc but it doesn't see that file. What am I doing wrong?

I am using Drupal 6.

2 Answers 2

6

It should be:

module_load_include('inc', 'calc', 'form');

(The 'inc' in the first argument automagically appends as the extension)

3

With module_load_include('inc', 'calc', 'form.inc') you are including the form.inc.inc file present in the directory where the calc.module file is present.

If you want to include the form.inc file in that directory, you need to use module_load_include('inc', 'calc', 'form'), as Jimajamma said.

The first argument of module_load_include() is $type, the second is $module, and the third is $name. They are concatenated together using the following code.

$file = './' . drupal_get_path('module', $module) . "/$name.$type";

When you don't pass $name to the function, it will use for $name the same value passed for $module.

You could also include a relative path in $name, such as 'includes/form'; in that case the loaded file would be 'includes/form.inc', where includes is a directory contained in the directory containing the module whose name is passed as second argument.

2
  • Thanks, I was just testing if (module_load_include('inc', 'calc', 'form')) { print 'included'; }, and it was giving me nothing, but then I tried if (module_load_include('inc', 'calc', 'form') !== FALSE {print 'it worked!'; }. Aug 12, 2012 at 4:33
  • That's right: The function returns FALSE only when the file to include is not found, or it is a directory; when the file exists, it returns nothing.
    – apaderno
    Aug 12, 2012 at 10:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.