Ajout de la proprit requiredby qui est l'inverse de depends pour dsactiver un module quand le pre est dsactiv.

This commit is contained in:
Laurent Destailleur 2004-02-27 23:11:26 +00:00
parent 1d8e9957a4
commit fecf467605
3 changed files with 27 additions and 3 deletions

View File

@ -36,12 +36,21 @@ if ($_GET["action"] == 'set' && $user->admin)
Header("Location: modules.php");
}
if ($_GET["action"] == 'reset' && $user->admin)
{
UnActivate($_GET["value"]);
Header("Location: modules.php");
}
function Activate($value)
{
global $db, $modules;
$modName = $value;
// Activation du module
if ($modName)
{
$file = $modName . ".class.php";
@ -49,17 +58,22 @@ function Activate($value)
$objMod = new $modName($db);
$objMod->init();
}
// Activation des modules dont le module dépend
for ($i = 0; $i < sizeof($objMod->depends); $i++)
{
Activate($objMod->depends[$i]);
}
}
if ($_GET["action"] == 'reset' && $user->admin)
function UnActivate($value)
{
$modName = $_GET["value"];
global $db, $modules;
$modName = $value;
// Desactivation du module
if ($modName)
{
$file = $modName . ".class.php";
@ -68,9 +82,16 @@ if ($_GET["action"] == 'reset' && $user->admin)
$objMod->remove();
}
// Desactivation des modules qui dependent de lui
for ($i = 0; $i < sizeof($objMod->requiredby); $i++)
{
UnActivate($objMod->requiredby[$i]);
}
Header("Location: modules.php");
}
$db->close();
llxHeader();

View File

@ -37,6 +37,7 @@ class modComptabilite extends DolibarrModules
$this->numero = 10 ;
$this->db = $DB ;
$this->depends = array();
$this->requiredby = array("modFacture");
$this->name = "Comptabilite";
$this->description = "Gestion sommaire de comptabilité";

View File

@ -1,5 +1,6 @@
<?PHP
/* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004 Laurent Destailleur <eldy@users.sourceforge.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -39,6 +40,7 @@ class modSociete extends DolibarrModules
$this->const_config = MAIN_MODULE_SOCIETE;
$this->depends = array();
$this->requiredby = array("modFacture");
$this->const = array();
$this->boxes = array();