system_enable_module

5.x system.module system_enable_module($module_details)
4.x system.module system_enable_module($module_details)

Handles the enabling (and possible installation) of module.

2 calls to system_enable_module()
system_enable in modules/system/system.install
Implementation of hook_enable.
system_modules_form_submit in modules/system/system.module
Submit handler for the modules form.

File

modules/system/system.module, line 2140

Code

function system_enable_module($module_details) {

  $module = $module_details["module"];
  $path = $module_details["path"];

  $bool_call_hook_install = FALSE;

  // Do we need to attempt to call the hook_install function?
  if ($module_details["enabled"] == "") {
    // Wasn't in the database, so we need to install it.

    // Add to our table.
    // (delete anything all ready there first)      
    $res = db_query("DELETE FROM modules WHERE name = '?' ", $module);
    // Now, add back into the table.
    $res = db_query("INSERT INTO modules (name, path, version, requires, enabled, type, `schema`, info)
                     VALUES ('?', '?', '?', '?', '?', '?', '?', '?')
                     ", $module, $path, $module_details["version"], $module_details["required"], "1", "module", $module_details["schema"], serialize($module_details));

    $bool_call_hook_install = TRUE;

    fp_add_message(t("The module %module has been installed.", array("%module" => $module)));

  }


  // If the module has a .install file, begin by including it.
  if (include_module_install($module, $path)) {

    // Include the original module file first.
    include_module($module, TRUE, $path);


    if ($bool_call_hook_install) {
      // call hook_install if it exists.
      if (function_exists($module . '_install')) {
        call_user_func($module . '_install');
      }
    }

    // Now, we can call hook_enable, if it exists.
    if (function_exists($module . '_enable')) {
      call_user_func($module . '_enable');
    }

  }


  // Update our table.
  $res = db_query("UPDATE modules SET enabled = '1' WHERE name = '?' ", $module);

  fp_add_message(t("The module %module has been enabled.", array("%module" => $module)));



}