From 28ed1d5917d44b1f87fe562aa80cac70e8054723 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Mon, 1 Aug 2011 12:53:37 +0000 Subject: [PATCH] New: possibility to use includes/modules in external modules dir --- htdocs/admin/perms.php | 34 ++++++++++-- htdocs/langs/ca_ES/admin.lang | 10 ++-- htdocs/langs/es_ES/admin.lang | 10 ++-- htdocs/lib/admin.lib.php | 77 +++++++++++++++++++++----- htdocs/theme/bureau2crea/style.css.php | 5 +- 5 files changed, 105 insertions(+), 31 deletions(-) diff --git a/htdocs/admin/perms.php b/htdocs/admin/perms.php index bee00b52906..6af9b54e7f0 100644 --- a/htdocs/admin/perms.php +++ b/htdocs/admin/perms.php @@ -21,7 +21,7 @@ * \file htdocs/admin/perms.php * \ingroup core * \brief Page d'administration/configuration des permissions par defaut - * \version $Id: perms.php,v 1.42 2011/07/31 22:23:26 eldy Exp $ + * \version $Id: perms.php,v 1.43 2011/08/01 12:53:37 hregis Exp $ */ require("../main.inc.php"); @@ -76,10 +76,34 @@ $db->begin(); // Charge les modules soumis a permissions $modules = array(); -foreach ($conf->file->dol_document_root as $dirroot) -{ - $dir = $dirroot . "/includes/modules/"; +$modulesdir = array(); +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) +{ // Load modules attributes in arrays (name, numero, orders) from dir directory //print $dir."\n
"; $handle=@opendir($dir); @@ -194,5 +218,5 @@ print ''; $db->close(); -llxFooter('$Date: 2011/07/31 22:23:26 $ - $Revision: 1.42 $'); +llxFooter('$Date: 2011/08/01 12:53:37 $ - $Revision: 1.43 $'); ?> diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang index d04d2711843..24252ef481f 100644 --- a/htdocs/langs/ca_ES/admin.lang +++ b/htdocs/langs/ca_ES/admin.lang @@ -109,8 +109,8 @@ PHPServerOffsetWithGreenwich=Offset amb Greenwich (segons) ClientOffsetWithGreenwich=Offset client/navegador amb Greenwich (segons) DaylingSavingTime=Horari d'estiu (usuari) CurrentHour=Hora PHP (servidor) -CompanyTZ=Zona Horària empresa (casa mare) -CompanyHour=Hora empresa (casa mare) +CompanyTZ=Zona Horària empresa (seu central) +CompanyHour=Hora empresa (seu central) CurrentSessionTimeOut=Time out sessió actual OSEnv=Entorn SO Box=Panell @@ -1246,9 +1246,9 @@ ClickToDialDesc=Aquest mòdul permet afegir una icona després del número de te CashDesk=TPV CashDeskSetup=Mòdul de configuració Terminal Punt de Venda CashDeskThirdPartyForSell=Tercer genéric a utilitzar per a les vendes -CashDeskBankAccountForSell=Compte a utilitzar per als cobraments en efectiu (caixa) -CashDeskBankAccountForCheque=Compte a utilitzar per als cobraments amb xecs -CashDeskBankAccountForCB=Compte a utilitzar per als cobraments amb targeta de crèdit +CashDeskBankAccountForSell=Compte per defecte a utilitzar per als cobraments en efectiu (caixa) +CashDeskBankAccountForCheque=Compte per defecte a utilitzar per als cobraments amb xecs +CashDeskBankAccountForCB=Compte per defecte a utilitzar per als cobraments amb targeta de crèdit CashDeskIdWareHouse=Magatzem a ultilitzar per a les vendes ##### Bookmark ##### BookmarkSetup=Configuració del mòdul Bookmark diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang index 841addc52af..c4ea6eac339 100644 --- a/htdocs/langs/es_ES/admin.lang +++ b/htdocs/langs/es_ES/admin.lang @@ -109,8 +109,8 @@ PHPServerOffsetWithGreenwich=Offset servidor con Greenwich (segundos) ClientOffsetWithGreenwich=Offset cliente/navegador con Greenwich (segundos) DaylingSavingTime=Horario de verano (usuario) CurrentHour=Hora PHP (servidor) -CompanyTZ=Zona Horaria empresa (casa madre) -CompanyHour=Hora empresa (casa madre) +CompanyTZ=Zona Horaria empresa (sede central) +CompanyHour=Hora empresa (sede central) CurrentSessionTimeOut=Time out sesión actual OSEnv=Entorno SO Box=Panel @@ -1246,9 +1246,9 @@ ClickToDialDesc=Este módulo permite agregar un icono después del número de te CashDesk=TPV CashDeskSetup=Configuración del módulo Terminal Punto de Venta CashDeskThirdPartyForSell=Tercero genérico a usar para la venta -CashDeskBankAccountForSell=Cuenta a utilizar para los cobros en efectivo (caja) -CashDeskBankAccountForCheque=Cuenta a utilizar para los cobros con cheques -CashDeskBankAccountForCB=Cuenta a utilizar para los cobros con tarjeta de crédito +CashDeskBankAccountForSell=Cuenta por defecto a utilizar para los cobros en efectivo (caja) +CashDeskBankAccountForCheque=Cuenta por defecto a utilizar para los cobros con cheques +CashDeskBankAccountForCB=Cuenta por defecto a utilizar para los cobros con tarjeta de crédito CashDeskIdWareHouse=Almacén a utilizar para las ventas ##### Bookmark ##### BookmarkSetup=Configuración del módulo Marcadores diff --git a/htdocs/lib/admin.lib.php b/htdocs/lib/admin.lib.php index c2d47f668da..4092c55ff2d 100644 --- a/htdocs/lib/admin.lib.php +++ b/htdocs/lib/admin.lib.php @@ -1,6 +1,6 @@ - * Copyright (C) 2005-2009 Regis Houssin + * Copyright (C) 2005-2011 Regis Houssin * * 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 @@ -20,7 +20,7 @@ /** * \file htdocs/lib/admin.lib.php * \brief Library of admin functions - * \version $Id: admin.lib.php,v 1.98 2011/07/31 23:25:40 eldy Exp $ + * \version $Id: admin.lib.php,v 1.99 2011/08/01 12:53:37 hregis Exp $ */ @@ -467,7 +467,7 @@ function dolibarr_set_const($db, $name, $value, $type='chaine', $visible=0, $not /** * \brief Define head array for tabs of security setup pages * \return Array of head - * \version $Id: admin.lib.php,v 1.98 2011/07/31 23:25:40 eldy Exp $ + * \version $Id: admin.lib.php,v 1.99 2011/08/01 12:53:37 hregis Exp $ */ function security_prepare_head() { @@ -615,16 +615,41 @@ function Activate($value,$withdeps=1) // Activate module if ($modName) { - $file = $modName . ".class.php"; + $modFile = $modName . ".class.php"; // Loop on each directory $found=false; - foreach ($conf->file->dol_document_root as $dol_document_root) + foreach ($conf->file->dol_document_root as $type => $dirroot) { - $dir = $dol_document_root."/includes/modules/"; + $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); + } + } + } - $found=@include_once($dir.$file); - if ($found) break; + foreach ($modulesdir as $dir) + { + if (file_exists($dir.$modFile)) + { + $found=@include_once($dir.$modFile); + if ($found) break; + } } $objMod = new $modName($db); @@ -700,20 +725,46 @@ function UnActivate($value,$requiredby=1) $modName = $value; $ret=''; + $modulesdir=array(); // Desactivation du module if ($modName) { - $file = $modName . ".class.php"; + $modFile = $modName . ".class.php"; // Loop on each directory $found=false; - foreach ($conf->file->dol_document_root as $dol_document_root) + foreach ($conf->file->dol_document_root as $type => $dirroot) { - $dir = $dol_document_root."/includes/modules/"; + $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); + } + } + } - $found=@include_once($dir.$file); - if ($found) break; + foreach ($modulesdir as $dir) + { + if (file_exists($dir.$modFile)) + { + $found=@include_once($dir.$modFile); + if ($found) break; + } } if ($found) diff --git a/htdocs/theme/bureau2crea/style.css.php b/htdocs/theme/bureau2crea/style.css.php index 6d9f27d592d..c3403b8ca99 100644 --- a/htdocs/theme/bureau2crea/style.css.php +++ b/htdocs/theme/bureau2crea/style.css.php @@ -16,14 +16,13 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * along with this program. If not, see . */ /** * \file htdocs/theme/bureau2crea/style.css.php * \brief Fichier de style CSS du theme bureau2crea - * \version $Id: style.css.php,v 1.40 2011/07/21 09:05:33 simnandez Exp $ + * \version $Id: style.css.php,v 1.41 2011/07/31 23:19:57 eldy Exp $ */ //if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled cause need to load personalized language