diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 54aa10e23b4..5e288acaabc 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -4134,7 +4134,7 @@ function verifCond($strRights) * This function is called by verifCond() or trans() and transnoentitiesnoconv(). * * @param string $s String to evaluate - * @param int $returnvalue 0=No return (used to execute $a=something). 1=Value of eval is returned (used to eval $something). + * @param int $returnvalue 0=No return (used to execute eval($a=something)). 1=Value of eval is returned (used to eval($something)). * @return mixed Nothing or return of eval */ function dol_eval($s,$returnvalue=0) @@ -4145,16 +4145,16 @@ function dol_eval($s,$returnvalue=0) global $rights; //print $s."
\n"; - if ($returnvalue) return eval('return '.$s.';'); - else eval($s); + if ($returnvalue) return @eval('return '.$s.';'); + else @eval($s); } /** -* Return if var element is ok -* -* @param string $element Variable to check -* @return boolean Return true of variable is not empty -*/ + * Return if var element is ok + * + * @param string $element Variable to check + * @return boolean Return true of variable is not empty + */ function dol_validElement($element) { return (trim($element) != ''); diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index ed73b895280..5c72ae6f1d7 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -40,8 +40,8 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0) { global $user,$conf,$langs,$dolibarr_main_db_name; - $mainmenu=$_SESSION["mainmenu"]; - $leftmenu=$_SESSION["leftmenu"]; + $mainmenu=(empty($_SESSION["mainmenu"])?'':$_SESSION["mainmenu"]); + $leftmenu=(empty($_SESSION["leftmenu"])?'':$_SESSION["leftmenu"]); $id='mainmenu'; $listofmodulesforexternal=explode(',',$conf->global->MAIN_MODULES_FOR_EXTERNAL); diff --git a/htdocs/core/modules/modAgenda.class.php b/htdocs/core/modules/modAgenda.class.php index 89c92a14c69..902320a2733 100644 --- a/htdocs/core/modules/modAgenda.class.php +++ b/htdocs/core/modules/modAgenda.class.php @@ -43,6 +43,8 @@ class modAgenda extends DolibarrModules */ function __construct($db) { + global $conf; + $this->db = $db; $this->numero = 2400; diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index bf09cdf80c2..965b6c747b2 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -297,7 +297,11 @@ if (! empty($_SESSION["disablemodules"])) $disabled_modules=explode(',',$_SESSION["disablemodules"]); foreach($disabled_modules as $module) { - if ($module) $conf->$module->enabled=false; + if ($module) + { + if (empty($conf->$module)) $conf->$module=new stdClass(); + $conf->$module->enabled=false; + } } } diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index 321936ad6a9..19b022f4dc1 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -820,11 +820,11 @@ class Project extends CommonObject { // To verify role of users $userAccess = 0; - if (($mode == 'read' && $user->rights->projet->all->lire) || ($mode == 'write' && $user->rights->projet->all->creer) || ($mode == 'delete' && $user->rights->projet->all->supprimer)) + if (($mode == 'read' && ! empty($user->rights->projet->all->lire)) || ($mode == 'write' && ! empty($user->rights->projet->all->creer)) || ($mode == 'delete' && ! empty($user->rights->projet->all->supprimer))) { $userAccess = 1; } - else if ($this->public && (($mode == 'read' && $user->rights->projet->lire) || ($mode == 'write' && $user->rights->projet->creer) || ($mode == 'delete' && $user->rights->projet->supprimer))) + else if ($this->public && (($mode == 'read' && ! empty($user->rights->projet->lire)) || ($mode == 'write' && ! empty($user->rights->projet->creer)) || ($mode == 'delete' && ! empty($user->rights->projet->supprimer)))) { $userAccess = 1; } diff --git a/htdocs/projet/index.php b/htdocs/projet/index.php index 89aed92b99d..0cd8fd9ca64 100644 --- a/htdocs/projet/index.php +++ b/htdocs/projet/index.php @@ -31,7 +31,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; $langs->load("projects"); $langs->load("companies"); -$mine = $_REQUEST['mode']=='mine' ? 1 : 0; +$mine = GETPOST('mode')=='mine' ? 1 : 0; // Security check $socid=0; @@ -49,7 +49,7 @@ $sortorder = GETPOST("sortorder",'alpha'); $socstatic=new Societe($db); $projectstatic=new Project($db); -$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,($mine?$mine:($user->rights->projet->all->lire?2:0)),1); +$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,($mine?$mine:(empty($user->rights->projet->all->lire)?0:2)),1); //var_dump($projectsListId); @@ -64,7 +64,7 @@ print_fiche_titre($text); if ($mine) print $langs->trans("MyProjectsDesc").'

'; else { - if ($user->rights->projet->all->lire && ! $socid) print $langs->trans("ProjectsDesc").'

'; + if (! empty($user->rights->projet->all->lire) && ! $socid) print $langs->trans("ProjectsDesc").'

'; else print $langs->trans("ProjectsPublicDesc").'

'; } @@ -90,7 +90,7 @@ $sql.= ", s.nom, s.rowid as socid"; $sql.= " FROM ".MAIN_DB_PREFIX."projet as p"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s on p.fk_soc = s.rowid"; $sql.= " WHERE p.entity = ".$conf->entity; -if ($mine || ! $user->rights->projet->all->lire) $sql.= " AND p.rowid IN (".$projectsListId.")"; +if ($mine || empty($user->rights->projet->all->lire)) $sql.= " AND p.rowid IN (".$projectsListId.")"; if ($socid) $sql.= " AND (p.fk_soc IS NULL OR p.fk_soc = 0 OR p.fk_soc = ".$socid.")"; $sql.= " GROUP BY s.nom, s.rowid"; diff --git a/htdocs/public/demo/index.php b/htdocs/public/demo/index.php index 1c03c17c5b5..f4acea385ea 100644 --- a/htdocs/public/demo/index.php +++ b/htdocs/public/demo/index.php @@ -38,48 +38,55 @@ global $dolibarr_main_demo; if (empty($dolibarr_main_demo)) accessforbidden('Parameter dolibarr_main_demo must be defined in conf file with value "default login,default pass" to enable the demo entry page',1,1,1); // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array -$hookmanager->initHooks(array('demo')); - -$demoprofiles=array( - array('default'=>'1', 'key'=>'profdemoservonly','label'=>'DemoCompanyServiceOnly', - 'disablemodules'=>'adherent,barcode,boutique,cashdesk,categorie,don,expedition,externalsite,mailmanspip,margin,prelevement,product,stock', - 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot8.png'), - array('default'=>'-1','key'=>'profdemoshopwithdesk','label'=>'DemoCompanyShopWithCashDesk', - 'disablemodules'=>'adherent,boutique,categorie,don,externalsite,ficheinter,mailmanspip,prelevement,product,stock', - 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot2.png'), - array('default'=>'0', 'key'=>'profdemoprodstock','label'=>'DemoCompanyProductAndStocks', - 'disablemodules'=>'adherent,boutique,contrat,categorie,don,externalsite,ficheinter,mailmanspip,prelevement,service', - 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot2.png'), - array('default'=>'0', 'key'=>'profdemoall','label'=>'DemoCompanyAll', - 'disablemodules'=>'adherent,boutique,don,externalsite,mailmanspip', - 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot9.png'), - array('default'=>'-1', 'key'=>'profdemofun','label'=>'DemoFundation', - 'disablemodules'=>'banque,barcode,boutique,cashdesk,commande,commercial,compta,comptabilite,contrat,expedition,externalsite,facture,ficheinter,fournisseur,mailmanspip,margin,prelevement,product,projet,propal,propale,service,societe,stock,tax', - 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot6.png'), - array('default'=>'0', 'key'=>'profdemofun2','label'=>'DemoFundation2', - 'disablemodules'=>'barcode,boutique,cashdesk,commande,commercial,compta,comptabilite,contrat,expedition,externalsite,facture,ficheinter,fournisseur,mailmanspip,margin,prelevement,product,projet,propal,propale,service,societe,stock,tax', - 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot6.png') -); +$res=$hookmanager->initHooks(array('demo')); +$demoprofiles=array(); +$alwayscheckedmodules=array(); +$alwaysuncheckedmodules=array(); +$alwayshiddencheckedmodules=array(); +$alwayshiddenuncheckedmodules=array(); $tmpaction = 'view'; $parameters=array(); $object=new stdClass(); $reshook=$hookmanager->executeHooks('addDemoProfile', $parameters, $object, $tmpaction); // Note that $action and $object may have been modified by some hooks $error=$hookmanager->error; $errors=$hookmanager->errors; - -// Visible -$alwayscheckedmodules=array('barcode','bookmark','externalrss','fckeditor','geoipmaxmind','gravatar','memcached','syslog','user','webservices'); // Technical module we always want -$alwaysuncheckedmodules=array('paybox','paypal','google','scanner','workflow'); // Module we never want -// Not visible -$alwayshiddencheckedmodules=array('accounting','barcode','bookmark','clicktodial','comptabilite','document','domain','externalrss','externalsite','fckeditor','geoipmaxmind','gravatar','label','ldap', - 'mailmanspip','notification','syslog','user','webservices', - // Extended modules - 'memcached','numberwords','zipautofillfr'); -$alwayshiddenuncheckedmodules=array('boutique','ftp', - // Extended modules - 'awstats','bittorrent','bootstrap','cabinetmed','cmcic','concatpdf','customfield','dolicloud','filemanager','lightbox','mantis','monitoring','moretemplates','multicompany','nltechno','numberingpack','openstreetmap', - 'ovh','phenix','phpsysinfo','pibarcode','postnuke','selectbank','skincoloreditor','submiteverywhere','survey','thomsonphonebook','topten','tvacerfa','voyage','webcalendar','webmail'); +if (empty($reshook)) +{ + $demoprofiles=array( + array('default'=>'1', 'key'=>'profdemoservonly','label'=>'DemoCompanyServiceOnly', + 'disablemodules'=>'adherent,barcode,boutique,cashdesk,categorie,don,expedition,externalsite,mailmanspip,margin,prelevement,product,stock', + 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot8.png'), + array('default'=>'-1','key'=>'profdemoshopwithdesk','label'=>'DemoCompanyShopWithCashDesk', + 'disablemodules'=>'adherent,boutique,categorie,don,externalsite,ficheinter,mailmanspip,prelevement,product,stock', + 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot2.png'), + array('default'=>'0', 'key'=>'profdemoprodstock','label'=>'DemoCompanyProductAndStocks', + 'disablemodules'=>'adherent,boutique,contrat,categorie,don,externalsite,ficheinter,mailmanspip,prelevement,service', + 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot2.png'), + array('default'=>'0', 'key'=>'profdemoall','label'=>'DemoCompanyAll', + 'disablemodules'=>'adherent,boutique,don,externalsite,mailmanspip', + 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot9.png'), + array('default'=>'-1', 'key'=>'profdemofun','label'=>'DemoFundation', + 'disablemodules'=>'banque,barcode,boutique,cashdesk,commande,commercial,compta,comptabilite,contrat,expedition,externalsite,facture,ficheinter,fournisseur,mailmanspip,margin,prelevement,product,projet,propal,propale,service,societe,stock,tax', + 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot6.png'), + array('default'=>'0', 'key'=>'profdemofun2','label'=>'DemoFundation2', + 'disablemodules'=>'barcode,boutique,cashdesk,commande,commercial,compta,comptabilite,contrat,expedition,externalsite,facture,ficheinter,fournisseur,mailmanspip,margin,prelevement,product,projet,propal,propale,service,societe,stock,tax', + 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot6.png') + ); + + // Visible + $alwayscheckedmodules=array('barcode','bookmark','externalrss','fckeditor','geoipmaxmind','gravatar','memcached','syslog','user','webservices'); // Technical module we always want + $alwaysuncheckedmodules=array('paybox','paypal','google','scanner','workflow'); // Module we never want + // Not visible + $alwayshiddencheckedmodules=array('accounting','barcode','bookmark','clicktodial','comptabilite','document','domain','externalrss','externalsite','fckeditor','geoipmaxmind','gravatar','label','ldap', + 'mailmanspip','notification','syslog','user','webservices', + // Extended modules + 'memcached','numberwords','zipautofillfr'); + $alwayshiddenuncheckedmodules=array('boutique','ftp', + // Extended modules + 'awstats','bittorrent','bootstrap','cabinetmed','cmcic','concatpdf','customfield','dolicloud','filemanager','lightbox','mantis','monitoring','moretemplates','multicompany','nltechno','numberingpack','openstreetmap', + 'ovh','phenix','phpsysinfo','pibarcode','postnuke','selectbank','skincoloreditor','submiteverywhere','survey','thomsonphonebook','topten','tvacerfa','voyage','webcalendar','webmail'); +} // Search modules $dirlist=$conf->file->dol_document_root; @@ -151,8 +158,8 @@ foreach ($modulesdir as $dir) // We discard modules according to features level (PS: if module is activated we always show it) $const_name = 'MAIN_MODULE_'.strtoupper(preg_replace('/^mod/i','',get_class($objMod))); - if ($objMod->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2 && ! $conf->global->$const_name) $modulequalified=0; - if ($objMod->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1 && ! $conf->global->$const_name) $modulequalified=0; + if ($objMod->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2 && empty($conf->global->$const_name)) $modulequalified=0; + if ($objMod->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1 && empty($conf->global->$const_name)) $modulequalified=0; if ($modulequalified) { diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index e630dbf899d..80d08db2b03 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -2770,7 +2770,7 @@ class Societe extends CommonObject */ function getLibCustProspStatut() { - return $this->LibCustProspStatut($this->client,$mode); + return $this->LibCustProspStatut($this->client); } /** diff --git a/htdocs/user/class/usergroup.class.php b/htdocs/user/class/usergroup.class.php index 69d7855b8d3..8da493de97e 100644 --- a/htdocs/user/class/usergroup.class.php +++ b/htdocs/user/class/usergroup.class.php @@ -174,7 +174,7 @@ class UserGroup extends CommonObject } /** - * Return array of users id for group + * Return array of users id for group this->id (or all if this->id not defined) * * @param string $excludefilter Filter to exclude * @return array Array of users @@ -214,8 +214,10 @@ class UserGroup extends CommonObject $newuser->fetch($obj->rowid); $ret[$obj->rowid]=$newuser; } - - $ret[$obj->rowid]->usergroup_entity[]=$obj->usergroup_entity; + if (! empty($obj->usergroup_entity)) + { + $ret[$obj->rowid]->usergroup_entity[]=$obj->usergroup_entity; + } } $this->db->free($resql);