New: possibility to use includes/modules in external modules dir

This commit is contained in:
Regis Houssin
2011-08-01 12:25:14 +00:00
parent 48884fa768
commit f8c9c13101
2 changed files with 33 additions and 9 deletions

View File

@@ -3,7 +3,7 @@
* Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org> * Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com> * Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
* Copyright (C) 2005-2010 Regis Houssin <regis@dolibarr.fr> * Copyright (C) 2005-2011 Regis Houssin <regis@dolibarr.fr>
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
/** /**
* \file htdocs/admin/modules.php * \file htdocs/admin/modules.php
* \brief Page to activate/disable all modules * \brief Page to activate/disable all modules
* \version $Id: modules.php,v 1.156 2011/07/31 22:23:22 eldy Exp $ * \version $Id: modules.php,v 1.158 2011/08/01 12:28:09 hregis Exp $
*/ */
require("../main.inc.php"); require("../main.inc.php");
@@ -79,12 +79,36 @@ $modules = array();
$orders = array(); $orders = array();
$categ = array(); $categ = array();
$dirmod = array(); $dirmod = array();
$modulesdir = array();
$i = 0; // is a sequencer of modules found $i = 0; // is a sequencer of modules found
$j = 0; // j is module number. Automatically affected if module number not defined. $j = 0; // j is module number. Automatically affected if module number not defined.
foreach ($conf->file->dol_document_root as $dirroot)
{
$dir = $dirroot . "/includes/modules/";
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 // Load modules attributes in arrays (name, numero, orders) from dir directory
//print $dir."\n<br>"; //print $dir."\n<br>";
dol_syslog("Scan directory ".$dir." for modules"); dol_syslog("Scan directory ".$dir." for modules");
@@ -449,5 +473,5 @@ print '</div>';
$db->close(); $db->close();
llxFooter('$Date: 2011/07/31 22:23:22 $ - $Revision: 1.156 $'); llxFooter('$Date: 2011/08/01 12:28:09 $ - $Revision: 1.158 $');
?> ?>

View File

@@ -29,7 +29,7 @@
* \ingroup core * \ingroup core
* \brief File that defines environment for all Dolibarr process (pages or scripts) * \brief File that defines environment for all Dolibarr process (pages or scripts)
* This script reads the conf file, init $lang, $db and and empty $user * This script reads the conf file, init $lang, $db and and empty $user
* \version $Id: master.inc.php,v 1.351 2011/07/31 23:19:04 eldy Exp $ * \version $Id: master.inc.php,v 1.352 2011/08/01 12:25:14 hregis Exp $
*/ */
@@ -70,14 +70,14 @@ $conf->file->character_set_client=strtoupper($force_charset_do_notuse);
$conf->file->cookie_cryptkey = empty($dolibarr_main_cookie_cryptkey)?'':$dolibarr_main_cookie_cryptkey; $conf->file->cookie_cryptkey = empty($dolibarr_main_cookie_cryptkey)?'':$dolibarr_main_cookie_cryptkey;
// Define array of document root directories // Define array of document root directories
$conf->file->dol_document_root=array(DOL_DOCUMENT_ROOT); $conf->file->dol_document_root=array('main' => DOL_DOCUMENT_ROOT);
if (! empty($dolibarr_main_document_root_alt)) if (! empty($dolibarr_main_document_root_alt))
{ {
// dolibarr_main_document_root_alt contains several directories // dolibarr_main_document_root_alt contains several directories
$values=preg_split('/[;,]/',$dolibarr_main_document_root_alt); $values=preg_split('/[;,]/',$dolibarr_main_document_root_alt);
foreach($values as $value) foreach($values as $value)
{ {
$conf->file->dol_document_root[]=$value; $conf->file->dol_document_root['alt']=$value;
} }
} }