forked from Wavyzz/dolibarr
New: possibility to use includes/modules in external modules dir
This commit is contained in:
@@ -21,7 +21,7 @@
|
|||||||
* \file htdocs/admin/perms.php
|
* \file htdocs/admin/perms.php
|
||||||
* \ingroup core
|
* \ingroup core
|
||||||
* \brief Page d'administration/configuration des permissions par defaut
|
* \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");
|
require("../main.inc.php");
|
||||||
@@ -76,10 +76,34 @@ $db->begin();
|
|||||||
|
|
||||||
// Charge les modules soumis a permissions
|
// Charge les modules soumis a permissions
|
||||||
$modules = array();
|
$modules = array();
|
||||||
foreach ($conf->file->dol_document_root as $dirroot)
|
$modulesdir = array();
|
||||||
{
|
|
||||||
$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>";
|
||||||
$handle=@opendir($dir);
|
$handle=@opendir($dir);
|
||||||
@@ -194,5 +218,5 @@ print '</div>';
|
|||||||
|
|
||||||
$db->close();
|
$db->close();
|
||||||
|
|
||||||
llxFooter('$Date: 2011/07/31 22:23:26 $ - $Revision: 1.42 $');
|
llxFooter('$Date: 2011/08/01 12:53:37 $ - $Revision: 1.43 $');
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2008-2011 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2008-2011 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2009 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
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
/**
|
/**
|
||||||
* \file htdocs/lib/admin.lib.php
|
* \file htdocs/lib/admin.lib.php
|
||||||
* \brief Library of admin functions
|
* \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
|
* \brief Define head array for tabs of security setup pages
|
||||||
* \return Array of head
|
* \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()
|
function security_prepare_head()
|
||||||
{
|
{
|
||||||
@@ -615,16 +615,41 @@ function Activate($value,$withdeps=1)
|
|||||||
// Activate module
|
// Activate module
|
||||||
if ($modName)
|
if ($modName)
|
||||||
{
|
{
|
||||||
$file = $modName . ".class.php";
|
$modFile = $modName . ".class.php";
|
||||||
|
|
||||||
// Loop on each directory
|
// Loop on each directory
|
||||||
$found=false;
|
$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);
|
foreach ($modulesdir as $dir)
|
||||||
if ($found) break;
|
{
|
||||||
|
if (file_exists($dir.$modFile))
|
||||||
|
{
|
||||||
|
$found=@include_once($dir.$modFile);
|
||||||
|
if ($found) break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$objMod = new $modName($db);
|
$objMod = new $modName($db);
|
||||||
@@ -700,20 +725,46 @@ function UnActivate($value,$requiredby=1)
|
|||||||
$modName = $value;
|
$modName = $value;
|
||||||
|
|
||||||
$ret='';
|
$ret='';
|
||||||
|
$modulesdir=array();
|
||||||
|
|
||||||
// Desactivation du module
|
// Desactivation du module
|
||||||
if ($modName)
|
if ($modName)
|
||||||
{
|
{
|
||||||
$file = $modName . ".class.php";
|
$modFile = $modName . ".class.php";
|
||||||
|
|
||||||
// Loop on each directory
|
// Loop on each directory
|
||||||
$found=false;
|
$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);
|
foreach ($modulesdir as $dir)
|
||||||
if ($found) break;
|
{
|
||||||
|
if (file_exists($dir.$modFile))
|
||||||
|
{
|
||||||
|
$found=@include_once($dir.$modFile);
|
||||||
|
if ($found) break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($found)
|
if ($found)
|
||||||
|
|||||||
Reference in New Issue
Block a user