From fecf4676057bb9d4a0e9c8d543b0a6b6ea022d47 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 27 Feb 2004 23:11:26 +0000 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20la=20propri=E9t=E9=20requiredby=20?= =?UTF-8?q?qui=20est=20l'inverse=20de=20depends=20pour=20d=E9sactiver=20un?= =?UTF-8?q?=20module=20quand=20le=20p=E8re=20est=20d=E9sactiv=E9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/admin/modules.php | 27 ++++++++++++++++--- .../modules/modComptabilite.class.php | 1 + htdocs/includes/modules/modSociete.class.php | 2 ++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index dff8167e2b0..c789d7b1e03 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -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(); diff --git a/htdocs/includes/modules/modComptabilite.class.php b/htdocs/includes/modules/modComptabilite.class.php index 226d83adc12..f83f83944d7 100644 --- a/htdocs/includes/modules/modComptabilite.class.php +++ b/htdocs/includes/modules/modComptabilite.class.php @@ -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é"; diff --git a/htdocs/includes/modules/modSociete.class.php b/htdocs/includes/modules/modSociete.class.php index a8ff9c78d0b..d7204ed0687 100644 --- a/htdocs/includes/modules/modSociete.class.php +++ b/htdocs/includes/modules/modSociete.class.php @@ -1,5 +1,6 @@ + * Copyright (C) 2004 Laurent Destailleur * * 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();