Qual: Reduce cyclomatic complexity

This commit is contained in:
Laurent Destailleur 2011-09-20 21:07:29 +00:00
parent 4aa0898066
commit e11ca0f95a
3 changed files with 226 additions and 208 deletions

View File

@ -58,9 +58,9 @@ class Menubase
/**
* Constructor
*
* @param DoliDB $DB Database handler
* @param string $menu_handler
* @param string $type
* @param DoliDB $DB Database handler
* @param string $menu_handler Menu handler
* @param string $type Type
*/
function Menubase($DB,$menu_handler='',$type='')
{
@ -167,10 +167,11 @@ class Menubase
}
/**
* Update menu entry into database
* @param user User that modify
* @param notrigger 0=no, 1=yes (no update trigger)
* @return int <0 if KO, >0 if OK
* Update menu entry into database.
*
* @param User $user User that modify
* @param int $notrigger 0=no, 1=yes (no update trigger)
* @return int <0 if KO, >0 if OK
*/
function update($user=0, $notrigger=0)
{
@ -302,10 +303,11 @@ class Menubase
}
/*
* \brief Delete object in database
* \param user User that delete
* \return int <0 if KO, >0 if OK
/**
* Delete object in database
*
* @param User $user User that delete
* @return int <0 if KO, >0 if OK
*/
function delete($user)
{
@ -358,12 +360,13 @@ class Menubase
/**
* Complete this->newmenu with menu entry found in $tab
* Complete this->newmenu with menu entry found in $tab
*
* @param $tab
* @param $pere
* @param $rang
* @param $myleftmenu Value for left that defined leftmenu
* @param array $tab Tab array
* @param int $pere Id of parent
* @param int $rang Rang
* @param string $myleftmenu Value for left that defined leftmenu
* @return void
*/
function recur($tab, $pere, $rang, $myleftmenu)
{
@ -400,12 +403,14 @@ class Menubase
}
/**
* Load tabMenu array
* @param type_user 0=Internal,1=External,2=All
* @param mainmenu Value for mainmenu that defined top menu
* @param menu_handler Name of menu_handler used (auguria, eldy...)
* @param tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty)
* @return array Return array with menu entries for top menu
* Load tabMenu array
*
* @param string $mainmenu Value for mainmenu that defined top menu
* @param string $myleftmenu Left menu name
* @param int $type_user 0=Internal,1=External,2=All
* @param string $menu_handler Name of menu_handler used (auguria, eldy...)
* @param array &$tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty)
* @return array Return array with menu entries for top menu
*/
function menuTopCharger($mainmenu, $myleftmenu, $type_user, $menu_handler, &$tabMenu=null)
{
@ -449,14 +454,15 @@ class Menubase
}
/**
* Load entries found in database in a menu array
* @param $newmenu Menu array to complete
* @param $mainmenu Value for mainmenu that defined top menu of left menu
* @param $myleftmenu Value that defined leftmenu
* @param $type_user 0=Internal,1=External,2=All
* @param $menu_handler Name of menu_handler used (auguria, eldy...)
* @param $tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty)
* @return array Menu array for particular mainmenu value or full tabArray
* Load entries found in database in a menu array.
*
* @param array $newmenu Menu array to complete
* @param string $mainmenu Value for mainmenu that defined top menu of left menu
* @param string $myleftmenu Value that defined leftmenu
* @param int $type_user 0=Internal,1=External,2=All
* @param string $menu_handler Name of menu_handler used (auguria, eldy...)
* @param array &$tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty)
* @return array Menu array for particular mainmenu value or full tabArray
*/
function menuLeftCharger($newmenu, $mainmenu, $myleftmenu, $type_user, $menu_handler, &$tabMenu=null)
{
@ -496,12 +502,13 @@ class Menubase
/**
* Load entries found in database in a menu array
* @param $myleftmenu Value for left that defined leftmenu
* @param $type_user 0=Internal,1=External,2=All
* @param $menu_handler Name of menu_handler used (auguria, eldy...)
* @param $tabMenu If array with menu entries already load, we put this array here (in most cases, it's empty)
* @return int >0 if OK, <0 if KO
* Load entries found in database in a menu array.
*
* @param string $myleftmenu Value for left that defined leftmenu
* @param int $type_user 0=Internal,1=External,2=All
* @param string $menu_handler Name of menu_handler used (auguria, eldy...)
* @param array &$tabMenu If array with menu entries already load, we put this array here (in most cases, it's empty)
* @return int >0 if OK, <0 if KO
*/
function menuLoad($myleftmenu, $type_user, $menu_handler, &$tabMenu=array())
{

View File

@ -73,99 +73,92 @@ class Import
$dir = $dirroot.'/includes/modules';
// Search available exports
$handle=@opendir($dir);
if (is_resource($handle))
$handle=@opendir(dol_osencode($dir));
if (! is_resource($handle)) continue;
// Search module files
while (($file = readdir($handle))!==false)
{
// Search module files
while (($file = readdir($handle))!==false)
if (! preg_match("/^(mod.*)\.class\.php/i",$file,$reg)) continue;
$modulename=$reg[1];
// Defined if module is enabled
$enabled=true;
$part=strtolower(preg_replace('/^mod/i','',$modulename));
if (empty($conf->$part->enabled)) $enabled=false;
if (empty($enabled)) continue;
// Init load class
$file = $dir."/".$modulename.".class.php";
$classname = $modulename;
require_once($file);
$module = new $classname($this->db);
if (is_array($module->import_code))
{
if (preg_match("/^(mod.*)\.class\.php/i",$file,$reg))
foreach($module->import_code as $r => $value)
{
$modulename=$reg[1];
if ($filter && ($filter != $module->import_code[$r])) continue;
// Defined if module is enabled
$enabled=true;
$part=strtolower(preg_replace('/^mod/i','',$modulename));
if (empty($conf->$part->enabled)) $enabled=false;
if ($enabled)
// Test if permissions are ok
/*$perm=$module->import_permission[$r][0];
//print_r("$perm[0]-$perm[1]-$perm[2]<br>");
if ($perm[2])
{
// Chargement de la classe
$file = $dir."/".$modulename.".class.php";
$classname = $modulename;
require_once($file);
$module = new $classname($this->db);
$bool=$user->rights->$perm[0]->$perm[1]->$perm[2];
}
else
{
$bool=$user->rights->$perm[0]->$perm[1];
}
if ($perm[0]=='user' && $user->admin) $bool=true;
//print $bool." $perm[0]"."<br>";
*/
if (is_array($module->import_code))
// Load lang file
$langtoload=$module->getLangFilesArray();
if (is_array($langtoload))
{
foreach($langtoload as $key)
{
foreach($module->import_code as $r => $value)
{
if ($filter && ($filter != $module->import_code[$r])) continue;
// Test if permissions are ok
/*$perm=$module->import_permission[$r][0];
//print_r("$perm[0]-$perm[1]-$perm[2]<br>");
if ($perm[2])
{
$bool=$user->rights->$perm[0]->$perm[1]->$perm[2];
}
else
{
$bool=$user->rights->$perm[0]->$perm[1];
}
if ($perm[0]=='user' && $user->admin) $bool=true;
//print $bool." $perm[0]"."<br>";
*/
// Permissions ok
// if ($bool)
// {
// Charge fichier lang en rapport
$langtoload=$module->getLangFilesArray();
if (is_array($langtoload))
{
foreach($langtoload as $key)
{
$langs->load($key);
}
}
// Module
$this->array_import_module[$i]=$module;
// Permission
$this->array_import_perms[$i]=$user->rights->import->run;
// Icon
$this->array_import_icon[$i]=(isset($module->import_icon[$r])?$module->import_icon[$r]:$module->picto);
// Code du dataset export
$this->array_import_code[$i]=$module->import_code[$r];
// Libelle du dataset export
$this->array_import_label[$i]=$module->getImportDatasetLabel($r);
// Array of tables to import (key=alias, value=tablename)
$this->array_import_tables[$i]=$module->import_tables_array[$r];
// Array of tables creator field to import (key=alias, value=creator field)
$this->array_import_tables_creator[$i]=$module->import_tables_creator_array[$r];
// Array of fiels to import (key=field, value=label)
$this->array_import_fields[$i]=$module->import_fields_array[$r];
// Tableau des entites a exporter (cle=champ, valeur=entite)
$this->array_import_entities[$i]=$module->import_entities_array[$r];
// Tableau des alias a exporter (cle=champ, valeur=alias)
$this->array_import_regex[$i]=$module->import_regex_array[$r];
// Tableau des alias a exporter (cle=champ, valeur=exemple)
$this->array_import_examplevalues[$i]=$module->import_examplevalues_array[$r];
// Tableau des regles de conversion d'une valeur depuis une autre source (cle=champ, valeur=tableau des regles)
$this->array_import_convertvalue[$i]=$module->import_convertvalue_array[$r];
dol_syslog("Import loaded for module ".$modulename." with index ".$i.", dataset=".$module->import_code[$r].", nb of fields=".count($module->import_fields_code[$r]));
$i++;
// }
}
$langs->load($key);
}
}
// Module
$this->array_import_module[$i]=$module;
// Permission
$this->array_import_perms[$i]=$user->rights->import->run;
// Icon
$this->array_import_icon[$i]=(isset($module->import_icon[$r])?$module->import_icon[$r]:$module->picto);
// Code du dataset export
$this->array_import_code[$i]=$module->import_code[$r];
// Libelle du dataset export
$this->array_import_label[$i]=$module->getImportDatasetLabel($r);
// Array of tables to import (key=alias, value=tablename)
$this->array_import_tables[$i]=$module->import_tables_array[$r];
// Array of tables creator field to import (key=alias, value=creator field)
$this->array_import_tables_creator[$i]=$module->import_tables_creator_array[$r];
// Array of fiels to import (key=field, value=label)
$this->array_import_fields[$i]=$module->import_fields_array[$r];
// Tableau des entites a exporter (cle=champ, valeur=entite)
$this->array_import_entities[$i]=$module->import_entities_array[$r];
// Tableau des alias a exporter (cle=champ, valeur=alias)
$this->array_import_regex[$i]=$module->import_regex_array[$r];
// Tableau des alias a exporter (cle=champ, valeur=exemple)
$this->array_import_examplevalues[$i]=$module->import_examplevalues_array[$r];
// Tableau des regles de conversion d'une valeur depuis une autre source (cle=champ, valeur=tableau des regles)
$this->array_import_convertvalue[$i]=$module->import_convertvalue_array[$r];
dol_syslog("Import loaded for module ".$modulename." with index ".$i.", dataset=".$module->import_code[$r].", nb of fields=".count($module->import_fields_code[$r]));
$i++;
}
}
}
closedir($handle);
}
closedir($handle);
return 1;
}

View File

@ -116,11 +116,11 @@ class User extends CommonObject
/**
* Load a user from database with its id or ref (login)
*
* @param id Si defini, id a utiliser pour recherche
* @param login Si defini, login a utiliser pour recherche
* @param sid Si defini, sid a utiliser pour recherche
* @param $loadpersonalconf Also load personal conf of user (in $user->conf->xxx)
* @return int <0 if KO, 0 not found, >0 if OK
* @param int $id Si defini, id a utiliser pour recherche
* @param string $login Si defini, login a utiliser pour recherche
* @param strinf $sid Si defini, sid a utiliser pour recherche
* @param int $loadpersonalconf Also load personal conf of user (in $user->conf->xxx)
* @return int <0 if KO, 0 not found, >0 if OK
*/
function fetch($id='', $login='',$sid='',$loadpersonalconf=1)
{
@ -267,12 +267,12 @@ class User extends CommonObject
}
/**
* Ajoute un droit a l'utilisateur
* Ajoute un droit a l'utilisateur
*
* @param rid id du droit a ajouter
* @param allmodule Ajouter tous les droits du module allmodule
* @param allperms Ajouter tous les droits du module allmodule, perms allperms
* @return int > 0 si ok, < 0 si erreur
* @param int $rid id du droit a ajouter
* @param string $allmodule Ajouter tous les droits du module allmodule
* @param string $allperms Ajouter tous les droits du module allmodule, perms allperms
* @return int > 0 si ok, < 0 si erreur
*/
function addrights($rid,$allmodule='',$allperms='')
{
@ -366,12 +366,12 @@ class User extends CommonObject
/**
* Retire un droit a l'utilisateur
* Retire un droit a l'utilisateur
*
* @param rid id du droit a retirer
* @param allmodule Retirer tous les droits du module allmodule
* @param allperms Retirer tous les droits du module allmodule, perms allperms
* @return int > 0 si ok, < 0 si erreur
* @param int $rid Id du droit a retirer
* @param string $allmodule Retirer tous les droits du module allmodule
* @param string $allperms Retirer tous les droits du module allmodule, perms allperms
* @return int > 0 si ok, < 0 si erreur
*/
function delrights($rid,$allmodule='',$allperms='')
{
@ -462,7 +462,9 @@ class User extends CommonObject
/**
* Clear all permissions array of user
* Clear all permissions array of user
*
* @return void
*/
function clearrights()
{
@ -476,7 +478,8 @@ class User extends CommonObject
/**
* Load permissions granted to user into object user
*
* @param moduletag Limit permission for a particular module ('' by default means load all permissions)
* @param string $moduletag Limit permission for a particular module ('' by default means load all permissions)
* @return void
*/
function getrights($moduletag='')
{
@ -597,9 +600,10 @@ class User extends CommonObject
}
/**
* Change status of a user
* Change status of a user
*
* @return int <0 if KO, 0 if nothing is done, >0 if OK
* @param int $statut Status to set
* @return int <0 if KO, 0 if nothing is done, >0 if OK
*/
function setstatus($statut)
{
@ -706,9 +710,9 @@ class User extends CommonObject
/**
* Create a user into database
*
* @param user Objet user qui demande la creation
* @param notrigger 1 ne declenche pas les triggers, 0 sinon
* @return int <0 si KO, id compte cree si OK
* @param User $user Objet user qui demande la creation
* @param int $notrigger 1 ne declenche pas les triggers, 0 sinon
* @return int <0 si KO, id compte cree si OK
*/
function create($user,$notrigger=0)
{
@ -832,12 +836,12 @@ class User extends CommonObject
/**
* Create a user from a contact object. User will be internal but if contact is linked to a third party, user will be external
* Create a user from a contact object. User will be internal but if contact is linked to a third party, user will be external
*
* @param contact Object for source contact
* @param login Login to force
* @param password Password to force
* @return int <0 if error, if OK returns id of created user
* @param Contact $contact Object for source contact
* @param string $login Login to force
* @param string $password Password to force
* @return int <0 if error, if OK returns id of created user
*/
function create_from_contact($contact,$login='',$password='')
{
@ -900,11 +904,11 @@ class User extends CommonObject
}
/**
* Create a user into database from a member object
* Create a user into database from a member object
*
* @param member Object member source
* @param login Login to force
* @return int <0 if KO, if OK, return id of created account
* @param Adherent $member Object member source
* @param string $login Login to force
* @return int <0 if KO, if OK, return id of created account
*/
function create_from_member($member,$login='')
{
@ -1005,11 +1009,11 @@ class User extends CommonObject
/**
* Update a user into databse (and also password if this->pass is defined)
*
* @param user User qui fait la mise a jour
* @param notrigger 1 ne declenche pas les triggers, 0 sinon
* @param nosyncmember 0=Synchronize linked member (standard info), 1=Do not synchronize linked member
* @param nosyncmemberpass 0=Synchronize linked member (password), 1=Do not synchronize linked member
* @return int <0 si KO, >=0 si OK
* @param User $user User qui fait la mise a jour
* @param int $notrigger 1 ne declenche pas les triggers, 0 sinon
* @param int $nosyncmember 0=Synchronize linked member (standard info), 1=Do not synchronize linked member
* @param int $nosyncmemberpass 0=Synchronize linked member (password), 1=Do not synchronize linked member
* @return int <0 si KO, >=0 si OK
*/
function update($user,$notrigger=0,$nosyncmember=0,$nosyncmemberpass=0)
{
@ -1198,7 +1202,7 @@ class User extends CommonObject
$sql.= " tms = tms"; // La date de derniere modif doit changer sauf pour la mise a jour de date de derniere connexion
$sql.= " WHERE rowid = ".$this->id;
dol_syslog ("Update last login date for user->id=".$this->id." ".$sql, LOG_DEBUG);
dol_syslog("Update last login date for user->id=".$this->id." ".$sql, LOG_DEBUG);
$resql = $this->db->query($sql);
if ($resql)
{
@ -1217,12 +1221,12 @@ class User extends CommonObject
/**
* Change password of a user
*
* @param user Object user of user making change
* @param password New password in clear text (to generate if not provided)
* @param changelater 1=Change password only after clicking on confirm email
* @param notrigger 1=Does not launch triggers
* @param nosyncmember Do not synchronize linked member
* @return string If OK return clear password, 0 if no change, < 0 if error
* @param User $user Object user of user making change
* @param string $password New password in clear text (to generate if not provided)
* @param int $changelater 1=Change password only after clicking on confirm email
* @param int $notrigger 1=Does not launch triggers
* @param int $nosyncmember Do not synchronize linked member
* @return string If OK return clear password, 0 if no change, < 0 if error
*/
function setPassword($user, $password='', $changelater=0, $notrigger=0, $nosyncmember=0)
{
@ -1344,12 +1348,12 @@ class User extends CommonObject
/**
* Envoie mot de passe par mail
* Envoie mot de passe par mail
*
* @param user Object user de l'utilisateur qui fait l'envoi
* @param password Nouveau mot de passe
* @param changelater 1=Change password only after clicking on confirm email
* @return int < 0 si erreur, > 0 si ok
* @param User $user Object user de l'utilisateur qui fait l'envoi
* @param string $password Nouveau mot de passe
* @param int $changelater 1=Change password only after clicking on confirm email
* @return int < 0 si erreur, > 0 si ok
*/
function send_password($user, $password='', $changelater=0)
{
@ -1411,8 +1415,19 @@ class User extends CommonObject
$mesg.= "If you didn't ask anything, just forget this email\n\n";
dol_syslog("User::send_password url=".$url);
}
$mailfile = new CMailFile($subject,$this->email,$conf->notification->email_from,$mesg,
array(),array(),array(),'', '', 0, $msgishtml);
$mailfile = new CMailFile(
$subject,
$this->email,
$conf->notification->email_from,
$mesg,
array(),
array(),
array(),
'',
'',
0,
$msgishtml
);
if ($mailfile->sendfile())
{
@ -1473,7 +1488,9 @@ class User extends CommonObject
}
/**
* Update clicktodial info
* Update clicktodial info
*
* @return void
*/
function update_clicktodial()
{
@ -1508,12 +1525,12 @@ class User extends CommonObject
/**
* Add user into a group
* Add user into a group
*
* @param group Id of group
* @param entity Entity
* @param notrigger Disable triggers
* @return int <0 if KO, >0 if OK
* @param Group $group Id of group
* @param int $entity Entity
* @param int $notrigger Disable triggers
* @return int <0 if KO, >0 if OK
*/
function SetInGroup($group, $entity, $notrigger=0)
{
@ -1569,12 +1586,12 @@ class User extends CommonObject
}
/**
* Remove a user from a group
* Remove a user from a group
*
* @param group Id of group
* @param entity Entity
* @param notrigger Disable triggers
* @return int <0 if KO, >0 if OK
* @param Group $group Id of group
* @param int $entity Entity
* @param int $notrigger Disable triggers
* @return int <0 if KO, >0 if OK
*/
function RemoveFromGroup($group, $entity, $notrigger=0)
{
@ -1625,12 +1642,12 @@ class User extends CommonObject
}
/**
* Return a link to the user card (with optionnaly the picto)
* Use this->id,this->nom, this->prenom
* Return a link to the user card (with optionnaly the picto)
* Use this->id,this->nom, this->prenom
*
* @param withpicto Include picto in link (0=No picto, 1=Inclut le picto dans le lien, 2=Picto seul)
* @param option On what the link point to
* @return string String with URL
* @param int $withpicto Include picto in link (0=No picto, 1=Inclut le picto dans le lien, 2=Picto seul)
* @param string $option On what the link point to
* @return string String with URL
*/
function getNomUrl($withpicto=0,$option='')
{
@ -1654,11 +1671,11 @@ class User extends CommonObject
}
/**
* Renvoie login clicable (avec eventuellement le picto)
* Renvoie login clicable (avec eventuellement le picto)
*
* @param withpicto Inclut le picto dans le lien
* @param option Sur quoi pointe le lien
* @return string Chaine avec URL
* @param int $withpicto Inclut le picto dans le lien
* @param string $option Sur quoi pointe le lien
* @return string Chaine avec URL
*/
function getLoginUrl($withpicto=0,$option='')
{
@ -1681,12 +1698,12 @@ class User extends CommonObject
}
/**
* Return full name (civility+' '+name+' '+lastname)
* Return full name (civility+' '+name+' '+lastname)
*
* @param langs Language object for translation of civility
* @param option 0=No option, 1=Add civility
* @param nameorder -1=Auto, 0=Lastname+Firstname, 1=Firstname+Lastname
* @return string String with full name
* @param Translate $langs Language object for translation of civility
* @param int $option 0=No option, 1=Add civility
* @param int $nameorder -1=Auto, 0=Lastname+Firstname, 1=Firstname+Lastname
* @return string String with full name
*/
function getFullName($langs,$option=0,$nameorder=-1)
{
@ -1720,10 +1737,10 @@ class User extends CommonObject
/**
* Retourne le libelle du statut d'un user (actif, inactif)
* Retourne le libelle du statut d'un user (actif, inactif)
*
* @param mode 0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long
* @return string Label of status
* @param int $mode 0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long
* @return string Label of status
*/
function getLibStatut($mode=0)
{
@ -1731,11 +1748,11 @@ class User extends CommonObject
}
/**
* Renvoi le libelle d'un statut donne
* Renvoi le libelle d'un statut donne
*
* @param statut Id statut
* @param mode 0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto
* @return string Label of status
* @param int $statut Id statut
* @param int $mode 0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto
* @return string Label of status
*/
function LibStatut($statut,$mode=0)
{
@ -1779,11 +1796,11 @@ class User extends CommonObject
/**
* Retourne chaine DN complete dans l'annuaire LDAP pour l'objet
*
* @param info Info string loaded by _load_ldap_info
* @param mode 0=Return full DN (uid=qqq,ou=xxx,dc=aaa,dc=bbb)
* 1=
* 2=Return key only (uid=qqq)
* @return string DN
* @param string $info Info string loaded by _load_ldap_info
* @param int $mode 0=Return full DN (uid=qqq,ou=xxx,dc=aaa,dc=bbb)
* 1=
* 2=Return key only (uid=qqq)
* @return string DN
*/
function _load_ldap_dn($info,$mode=0)
{
@ -1905,9 +1922,10 @@ class User extends CommonObject
}
/**
* Load info of user object
* Load info of user object
*
* @param id id of user to load
* @param int $id Id of user to load
* @return void
*/
function info($id)
{
@ -1969,10 +1987,10 @@ class User extends CommonObject
}
/**
* Return number of existing users
* Return number of existing users
*
* @param limitTo limit to 'active' or 'superadmin' users
* @return int Number of users
* @param string $limitTo Limit to 'active' or 'superadmin' users
* @return int Number of users
*/
function getNbOfUsers($limitTo='')
{