/** * Disable a module * @param value Nom du module a desactiver * @param requiredby 1=Desactive aussi modules dependants * @return string Error message or ''; */ function UnActivate($value,$requiredby=1) { global $db, $modules, $conf; $modName = $value; $ret=''; $modulesdir=array(); // Desactivation du module if ($modName) { $modFile = $modName . ".class.php"; // Loop on each directory $found=false; foreach ($conf->file->dol_document_root as $type => $dirroot) { $modulesdir[] = $dirroot."/includes/modules/"; if ($type == 'alt') { $handle=@opendir($dirroot); if (is_resource($handle)) { while (($file = readdir($handle))!==false) { if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes') { if (is_dir($dirroot . '/' . $file . '/includes/modules/')) { $modulesdir[] = $dirroot . '/' . $file . '/includes/modules/'; } } } closedir($handle); } } } foreach ($modulesdir as $dir) { if (file_exists($dir.$modFile)) { $found=@include_once($dir.$modFile); if ($found) break; } } if ($found) { $objMod = new $modName($db); $result=$objMod->remove(); } else { $genericMod = new DolibarrModules($db); $genericMod->name=preg_replace('/^mod/i','',$modName); $genericMod->style_sheet=1; $genericMod->rights_class=strtolower(preg_replace('/^mod/i','',$modName)); $genericMod->const_name='MAIN_MODULE_'.strtoupper(preg_replace('/^mod/i','',$modName)); dol_syslog("modules::UnActivate Failed to find module file, we use generic function with name ".$genericMod->name); $genericMod->_remove(); } } // Desactivation des modules qui dependent de lui if ($requiredby) { for ($i = 0; $i < sizeof($objMod->requiredby); $i++) { UnActivate($objMod->requiredby[$i]); } } return $ret; }
/* * Actions */ if (isset($_GET["action"]) && $_GET["action"] == 'set' && $user->admin) { $result=Activate($_GET["value"]); $mesg=''; if ($result) $mesg=$result; Header("Location: modules.php?mode=".$mode."&mesg=".urlencode($mesg)); exit; } if (isset($_GET["action"]) && $_GET["action"] == 'reset' && $user->admin) { $result=UnActivate($_GET["value"]); $mesg=''; if ($result) $mesg=$result; Header("Location: modules.php?mode=".$mode."&mesg=".urlencode($mesg)); exit; } /* * View */ $_SESSION["mode"]=$mode; $help_url='EN:First_setup|FR:Premiers_paramétrages|ES:Primeras_configuraciones'; llxHeader('',$langs->trans("Setup"),$help_url);