New: parametre de config des repertoires dans les proprietes de la classe du module
avec un rpertoire parent en fonction de l'entit
This commit is contained in:
parent
fa30d8ca48
commit
46ff461816
@ -104,6 +104,13 @@ class Conf
|
||||
$this->tabs_modules[$params[0]][]=$value;
|
||||
//print 'xxx'.$params[0].'-'.$value;
|
||||
}
|
||||
// If this is constant for module directories
|
||||
if (eregi('^MAIN_MODULE_([A-Z_]+)_DIR_([A-Z_]+)$',$key,$reg) && $value)
|
||||
{
|
||||
$module=strtolower($reg[1]);
|
||||
$dir_name="dir_".strtolower($reg[2]);
|
||||
$this->$module->$dir_name = DOL_DATA_ROOT."/entity_".$this->entity."/".$value;
|
||||
}
|
||||
// If this is a module constant
|
||||
if (eregi('^MAIN_MODULE_([A-Z]+)$',$key,$reg) && $value)
|
||||
{
|
||||
@ -211,18 +218,11 @@ class Conf
|
||||
$this->adherent->dir_output=DOL_DATA_ROOT."/adherent";
|
||||
$this->adherent->dir_tmp=DOL_DATA_ROOT."/adherent/temp";
|
||||
// Module produit
|
||||
$this->produit->dir_output=DOL_DATA_ROOT."/produit";
|
||||
$this->produit->dir_temp =DOL_DATA_ROOT."/produit/temp";
|
||||
$this->produit->MultiPricesEnabled=defined("PRODUIT_MULTIPRICES")?PRODUIT_MULTIPRICES:0;
|
||||
// Module service
|
||||
$this->service->dir_output=DOL_DATA_ROOT."/produit";
|
||||
$this->service->dir_temp =DOL_DATA_ROOT."/produit/temp";
|
||||
|
||||
// Module droipret
|
||||
$this->droitpret->cat=defined('DROITPRET_CAT')?DROITPRET_CAT:'';
|
||||
$this->droitpret->cat=defined('DROITPRET_MAIL')?DROITPRET_MAIL:'';
|
||||
$this->droitpret->dir_temp=DOL_DATA_ROOT."/droitpret/temp";
|
||||
|
||||
// Module contrat
|
||||
$this->contrat->dir_output=DOL_DATA_ROOT."/contracts";
|
||||
// Module prelevement
|
||||
@ -280,15 +280,11 @@ class Conf
|
||||
$this->ldap->dir_temp=DOL_DATA_ROOT."/ldap/temp";
|
||||
// Module FCKeditor
|
||||
$this->fckeditor->dir_output=DOL_DATA_ROOT."/fckeditor";
|
||||
// Module ECM
|
||||
$this->ecm->dir_output=DOL_DATA_ROOT."/ecm";
|
||||
// Module emailing
|
||||
$this->mailings->dir_temp=DOL_DATA_ROOT."/mailings/temp";
|
||||
// Module oscommerce 1
|
||||
$this->boutique->livre->enabled=defined("BOUTIQUE_LIVRE")?BOUTIQUE_LIVRE:0;
|
||||
$this->boutique->album->enabled=defined("BOUTIQUE_ALBUM")?BOUTIQUE_ALBUM:0;
|
||||
// Module Barcode
|
||||
$this->barcode->dir_temp=DOL_DATA_ROOT."/barcode/temp";
|
||||
|
||||
/*
|
||||
* Modification de quelques variable de conf en fonction des Constantes
|
||||
|
||||
@ -101,6 +101,9 @@ class DolibarrModules
|
||||
|
||||
// Insere les constantes associees au module dans llx_const
|
||||
if (! $err) $err+=$this->insert_menus();
|
||||
|
||||
// Insert module's directories into llx_const and create dir
|
||||
if (! $err) $err+=$this->insert_dirs();
|
||||
|
||||
// Execute les requetes sql complementaires
|
||||
for ($i = 0 ; $i < sizeof($array_sql) ; $i++)
|
||||
@ -120,22 +123,6 @@ class DolibarrModules
|
||||
}
|
||||
}
|
||||
|
||||
// Cree les repertoires
|
||||
if (is_array($this->dirs))
|
||||
{
|
||||
foreach ($this->dirs as $key => $dir)
|
||||
{
|
||||
if ($dir && ! file_exists($dir))
|
||||
{
|
||||
if (create_exdir($dir) < 0)
|
||||
{
|
||||
$this->error = $langs->trans("ErrorCanNotCreateDir",$dir);
|
||||
dol_syslog("DolibarrModules::_init ".$this->error, LOG_ERR);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Return code
|
||||
if (! $err)
|
||||
{
|
||||
@ -180,8 +167,11 @@ class DolibarrModules
|
||||
// Remove module's permissions from list of available permissions
|
||||
if (! $err) $err+=$this->delete_permissions();
|
||||
|
||||
// Remove modules's menus
|
||||
// Remove module's menus
|
||||
if (! $err) $err+=$this->delete_menus();
|
||||
|
||||
// Remove module's directories
|
||||
if (! $err) $err+=$this->delete_dirs();
|
||||
|
||||
// Run complementary sql requests
|
||||
for ($i = 0 ; $i < sizeof($array_sql) ; $i++)
|
||||
@ -963,6 +953,91 @@ class DolibarrModules
|
||||
|
||||
return $err;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Insere et cree les répertoires output et temp
|
||||
* \return int Nombre d'erreurs (0 si ok)
|
||||
*/
|
||||
function insert_dirs()
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$err=0;
|
||||
|
||||
if (is_array($this->dirs))
|
||||
{
|
||||
foreach ($this->dirs as $key => $value)
|
||||
{
|
||||
$name = $this->const_name."_DIR_".strtoupper($this->dirs[$key][0]);
|
||||
$dir = $this->dirs[$key][1];
|
||||
|
||||
$sql = "SELECT count(*)";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."const";
|
||||
$sql.= " WHERE name ='".$name."'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
|
||||
$result=$this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
$row = $this->db->fetch_row($result);
|
||||
|
||||
if ($row[0] == 0)
|
||||
{
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."const (name,type,value,note,visible,entity)";
|
||||
$sql.= " VALUES ('".$name."','chaine','".$dir."','Directory for module ".$this->name."','0',".$conf->entity.")";
|
||||
|
||||
dol_syslog("DolibarrModules::insert_dir_output sql=".$sql);
|
||||
$resql=$this->db->query($sql);
|
||||
|
||||
if ($resql)
|
||||
{
|
||||
// On defini l'entite
|
||||
$dir = DOL_DATA_ROOT."/entity_".$conf->entity."/".$dir;
|
||||
|
||||
if ($dir && ! file_exists($dir))
|
||||
{
|
||||
if (create_exdir($dir) < 0)
|
||||
{
|
||||
$this->error = $langs->trans("ErrorCanNotCreateDir",$dir);
|
||||
dol_syslog("DolibarrModules::_init ".$this->error, LOG_ERR);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$err++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $err;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Remove directory entries
|
||||
* \return int Nombre d'erreurs (0 si ok)
|
||||
*/
|
||||
function delete_dirs()
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$err=0;
|
||||
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."const";
|
||||
$sql.= " WHERE name like '".$this->const_name."_DIR_%'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
|
||||
dol_syslog("DolibarrModules::delete_tabs sql=".$sql);
|
||||
if (! $this->db->query($sql))
|
||||
{
|
||||
$err++;
|
||||
}
|
||||
|
||||
return $err;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
@ -58,10 +58,18 @@ class modBarcode extends DolibarrModules
|
||||
$this->special = 2;
|
||||
$this->picto='barcode';
|
||||
|
||||
// Dir
|
||||
// Data directories to create when module is enabled
|
||||
$this->dirs = array();
|
||||
$r=0;
|
||||
|
||||
$this->dirs[$r][0] = "output";
|
||||
$this->dirs[$r][1] = "/barcode";
|
||||
|
||||
$r++;
|
||||
$this->dirs[$r][0] = "temp";
|
||||
$this->dirs[$r][1] = "/barcode/temp";
|
||||
|
||||
// D<>pendances
|
||||
// Dependances
|
||||
$this->depends = array("modProduit");
|
||||
$this->requiredby = array();
|
||||
|
||||
@ -80,28 +88,28 @@ class modBarcode extends DolibarrModules
|
||||
|
||||
$this->rights[1][0] = 300; // id de la permission
|
||||
$this->rights[1][1] = 'Lire les codes barres'; // libelle de la permission
|
||||
$this->rights[1][2] = 'r'; // type de la permission (d<EFBFBD>pr<EFBFBD>ci<EFBFBD> <20> ce jour)
|
||||
$this->rights[1][3] = 1; // La permission est-elle une permission par d<EFBFBD>faut
|
||||
$this->rights[1][2] = 'r'; // type de la permission (deprecie a ce jour)
|
||||
$this->rights[1][3] = 1; // La permission est-elle une permission par defaut
|
||||
$this->rights[1][4] = 'lire';
|
||||
|
||||
$this->rights[2][0] = 301; // id de la permission
|
||||
$this->rights[2][1] = 'Creer/modifier les codes barres'; // libelle de la permission
|
||||
$this->rights[2][2] = 'w'; // type de la permission (d<EFBFBD>pr<EFBFBD>ci<EFBFBD> <20> ce jour)
|
||||
$this->rights[2][3] = 0; // La permission est-elle une permission par d<EFBFBD>faut
|
||||
$this->rights[2][2] = 'w'; // type de la permission (deprecie a ce jour)
|
||||
$this->rights[2][3] = 0; // La permission est-elle une permission par defaut
|
||||
$this->rights[2][4] = 'creer';
|
||||
|
||||
$this->rights[4][0] = 302; // id de la permission
|
||||
$this->rights[4][1] = 'Supprimer les codes barres'; // libelle de la permission
|
||||
$this->rights[4][2] = 'd'; // type de la permission (d<EFBFBD>pr<EFBFBD>ci<EFBFBD> <20> ce jour)
|
||||
$this->rights[4][3] = 0; // La permission est-elle une permission par d<EFBFBD>faut
|
||||
$this->rights[4][2] = 'd'; // type de la permission (deprecie a ce jour)
|
||||
$this->rights[4][3] = 0; // La permission est-elle une permission par defaut
|
||||
$this->rights[4][4] = 'supprimer';
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Fonction appel<EFBFBD>e lors de l'activation du module. Ins<EFBFBD>re en base les constantes, boites, permissions du module.
|
||||
* D<EFBFBD>finit <EFBFBD>galement les r<EFBFBD>pertoires de donn<EFBFBD>es <EFBFBD> cr<EFBFBD>er pour ce module.
|
||||
* \brief Fonction appelee lors de l'activation du module. Insere en base les constantes, boites, permissions du module.
|
||||
* Definit egalement les repertoires de donnees a creer pour ce module.
|
||||
*/
|
||||
function init()
|
||||
{
|
||||
@ -114,7 +122,7 @@ class modBarcode extends DolibarrModules
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Fonction appel<EFBFBD>e lors de la d<EFBFBD>sactivation d'un module.
|
||||
* \brief Fonction appelee lors de la desactivation d'un module.
|
||||
* Supprime de la base les constantes, boites et permissions du module.
|
||||
*/
|
||||
function remove()
|
||||
|
||||
@ -67,7 +67,14 @@ class modECM extends DolibarrModules
|
||||
|
||||
// Data directories to create when module is enabled
|
||||
$this->dirs = array();
|
||||
$this->dirs[0] = DOL_DATA_ROOT."/ecm";
|
||||
$r=0;
|
||||
|
||||
$this->dirs[$r][0] = "output";
|
||||
$this->dirs[$r][1] = "/ecm";
|
||||
|
||||
$r++;
|
||||
$this->dirs[$r][0] = "temp";
|
||||
$this->dirs[$r][1] = "/ecm/temp";
|
||||
|
||||
// Config pages. Put here list of php page names stored in admmin directory used to setup module
|
||||
$this->config_page_url = array();
|
||||
|
||||
@ -65,8 +65,16 @@ class modProduit extends DolibarrModules
|
||||
$this->special = 0;
|
||||
$this->picto='product';
|
||||
|
||||
// Dir
|
||||
// Data directories to create when module is enabled
|
||||
$this->dirs = array();
|
||||
$r=0;
|
||||
|
||||
$this->dirs[$r][0] = "output";
|
||||
$this->dirs[$r][1] = "/produit";
|
||||
|
||||
$r++;
|
||||
$this->dirs[$r][0] = "temp";
|
||||
$this->dirs[$r][1] = "/produit/temp";
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array();
|
||||
|
||||
@ -63,8 +63,19 @@ class modService extends DolibarrModules
|
||||
$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
|
||||
$this->special = 0;
|
||||
$this->picto='service';
|
||||
|
||||
// Data directories to create when module is enabled
|
||||
$this->dirs = array();
|
||||
$r=0;
|
||||
|
||||
$this->dirs[$r][0] = "output";
|
||||
$this->dirs[$r][1] = "/service";
|
||||
|
||||
$r++;
|
||||
$this->dirs[$r][0] = "temp";
|
||||
$this->dirs[$r][1] = "/service/temp";
|
||||
|
||||
// D<>pendances
|
||||
// Dependances
|
||||
$this->depends = array("modProduit");
|
||||
$this->requiredby = array("modContrat");
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user