5.x module.inc module_exists($module)
6.x module.inc module_exists($module)
7.x module.inc module_exists($module)

Determine whether a given module exists.


$module: The name of the module (without the .module extension).

Return value

TRUE if the module is both installed and enabled.

29 calls to module_exists()
block_admin_display_form in modules/block/block.admin.inc
Generate main blocks administration form.
block_help in modules/block/block.module
Implementation of hook_help().
blogapi_mt_validate_terms in modules/blogapi/blogapi.module
Blogging API helper - find allowed taxonomy terms for a node type.
chameleon_node in themes/chameleon/chameleon.theme
contact_help in modules/contact/contact.module
Implementation of hook_help().

... See full list


includes/module.inc, line 243
API for loading and interacting with Drupal modules.


function module_exists($module) {
  $list = module_list();
  return array_key_exists($module, $list);


davidshaw’s picture

Another similar check which can be helpful is PHP's own function_exists()
Check its documentation here:

Dave Shaw
Tribe Rising

marty’s picture

Is this the best practice in the case where I am writing a new module with a function that will be used by an existing module?

eg. in the existing module code

if(module_exists(new_module)) {
// call function in new_module