diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php index 5bba24a6a59..220c0e88678 100644 --- a/htdocs/admin/dict.php +++ b/htdocs/admin/dict.php @@ -517,7 +517,7 @@ $tabcond[39] = (!empty($conf->societe->enabled) && empty($conf->global->SOCIETE_ $tabcond[40] = (!empty($conf->societe->enabled) && !empty($conf->global->THIRDPARTY_ENABLE_PROSPECTION_ON_ALTERNATIVE_ADRESSES)); $tabcond[41] = !empty($conf->intracommreport->enabled); $tabcond[42] = !empty($conf->product->enabled); -$tabcond[43] = !empty($conf->product->enabled && !empty($conf->productbatch->enabled)); +$tabcond[43] = !empty($conf->product->enabled) && !empty($conf->productbatch->enabled) && $conf->global->MAIN_FEATURES_LEVEL >= 2; // List of help for fields $tabhelp = array(); @@ -611,9 +611,11 @@ $tabfieldcheck[41] = array(); $tabfieldcheck[42] = array(); $tabfieldcheck[43] = array(); -// Complete all arrays with entries found into modules -complete_dictionary_with_modules($taborder, $tabname, $tablib, $tabsql, $tabsqlsort, $tabfield, $tabfieldvalue, $tabfieldinsert, $tabrowid, $tabcond, $tabhelp, $tabfieldcheck); +// Table to store complete informations (will replace all other table). Key is table name. +$tabcomplete = array(); +// Complete all arrays with entries found into modules +complete_dictionary_with_modules($taborder, $tabname, $tablib, $tabsql, $tabsqlsort, $tabfield, $tabfieldvalue, $tabfieldinsert, $tabrowid, $tabcond, $tabhelp, $tabfieldcheck, $tabcomplete); // Defaut sortorder if (empty($sortfield)) { @@ -2156,7 +2158,13 @@ if ($id) { $value = $tabname[$i]; print ''; if (!empty($tabcond[$i])) { - print ''.$langs->trans($tablib[$i]).''; + $tabnamenoprefix = preg_replace('/'.MAIN_DB_PREFIX.'/', '', $tabname[$i]); + print ''; + if (!empty($tabcomplete[$tabnamenoprefix]['picto'])) { + print img_picto('', $tabcomplete[$tabnamenoprefix]['picto'], 'class="pictofixedwidth paddingrightonly"'); + } + print $langs->trans($tablib[$i]); + print ''; } else { print $langs->trans($tablib[$i]); } diff --git a/htdocs/core/lib/admin.lib.php b/htdocs/core/lib/admin.lib.php index 66ceae8a198..185858fd9c2 100644 --- a/htdocs/core/lib/admin.lib.php +++ b/htdocs/core/lib/admin.lib.php @@ -1190,9 +1190,10 @@ function unActivateModule($value, $requiredby = 1) * @param array $tabcond Tabcond * @param array $tabhelp Tabhelp * @param array $tabfieldcheck Tabfieldcheck + * @param array $tabcomplete Tab complete (will replace all other in future). Key is table name. * @return int 1 */ -function complete_dictionary_with_modules(&$taborder, &$tabname, &$tablib, &$tabsql, &$tabsqlsort, &$tabfield, &$tabfieldvalue, &$tabfieldinsert, &$tabrowid, &$tabcond, &$tabhelp, &$tabfieldcheck) +function complete_dictionary_with_modules(&$taborder, &$tabname, &$tablib, &$tabsql, &$tabsqlsort, &$tabfield, &$tabfieldvalue, &$tabfieldinsert, &$tabrowid, &$tabcond, &$tabhelp, &$tabfieldcheck, &$tabcomplete) { global $db, $modules, $conf, $langs; @@ -1255,53 +1256,77 @@ function complete_dictionary_with_modules(&$taborder, &$tabname, &$tablib, &$tab if (!empty($objMod->dictionaries)) { //var_dump($objMod->dictionaries['tabname']); $nbtabname = $nbtablib = $nbtabsql = $nbtabsqlsort = $nbtabfield = $nbtabfieldvalue = $nbtabfieldinsert = $nbtabrowid = $nbtabcond = $nbtabfieldcheck = $nbtabhelp = 0; - foreach ($objMod->dictionaries['tabname'] as $val) { + $tabnamerelwithkey = array(); + foreach ($objMod->dictionaries['tabname'] as $key => $val) { + $tmptablename = preg_replace('/'.MAIN_DB_PREFIX.'/', '', $val); $nbtabname++; $taborder[] = max($taborder) + 1; $tabname[] = $val; + $tabnamerelwithkey[$key] = $val; + $tabcomplete[$tmptablename]['picto'] = $objMod->picto; } // Position - foreach ($objMod->dictionaries['tablib'] as $val) { + foreach ($objMod->dictionaries['tablib'] as $key => $val) { + $tmptablename = preg_replace('/'.MAIN_DB_PREFIX.'/', '', $tabnamerelwithkey[$key]); $nbtablib++; $tablib[] = $val; + $tabcomplete[$tmptablename]['lib'] = $val; } - foreach ($objMod->dictionaries['tabsql'] as $val) { + foreach ($objMod->dictionaries['tabsql'] as $key => $val) { + $tmptablename = preg_replace('/'.MAIN_DB_PREFIX.'/', '', $tabnamerelwithkey[$key]); $nbtabsql++; $tabsql[] = $val; + $tabcomplete[$tmptablename]['sql'] = $val; } - foreach ($objMod->dictionaries['tabsqlsort'] as $val) { + foreach ($objMod->dictionaries['tabsqlsort'] as $key => $val) { + $tmptablename = preg_replace('/'.MAIN_DB_PREFIX.'/', '', $tabnamerelwithkey[$key]); $nbtabsqlsort++; $tabsqlsort[] = $val; + $tabcomplete[$tmptablename]['sqlsort'] = $val; } - foreach ($objMod->dictionaries['tabfield'] as $val) { + foreach ($objMod->dictionaries['tabfield'] as $key => $val) { + $tmptablename = preg_replace('/'.MAIN_DB_PREFIX.'/', '', $tabnamerelwithkey[$key]); $nbtabfield++; $tabfield[] = $val; + $tabcomplete[$tmptablename]['field'] = $val; } - foreach ($objMod->dictionaries['tabfieldvalue'] as $val) { + foreach ($objMod->dictionaries['tabfieldvalue'] as $key => $val) { + $tmptablename = preg_replace('/'.MAIN_DB_PREFIX.'/', '', $tabnamerelwithkey[$key]); $nbtabfieldvalue++; $tabfieldvalue[] = $val; + $tabcomplete[$tmptablename]['value'] = $val; } - foreach ($objMod->dictionaries['tabfieldinsert'] as $val) { + foreach ($objMod->dictionaries['tabfieldinsert'] as $key => $val) { + $tmptablename = preg_replace('/'.MAIN_DB_PREFIX.'/', '', $tabnamerelwithkey[$key]); $nbtabfieldinsert++; $tabfieldinsert[] = $val; + $tabcomplete[$tmptablename]['fieldinsert'] = $val; } - foreach ($objMod->dictionaries['tabrowid'] as $val) { + foreach ($objMod->dictionaries['tabrowid'] as $key => $val) { + $tmptablename = preg_replace('/'.MAIN_DB_PREFIX.'/', '', $tabnamerelwithkey[$key]); $nbtabrowid++; $tabrowid[] = $val; + $tabcomplete[$tmptablename]['rowid'] = $val; } - foreach ($objMod->dictionaries['tabcond'] as $val) { + foreach ($objMod->dictionaries['tabcond'] as $key => $val) { + $tmptablename = preg_replace('/'.MAIN_DB_PREFIX.'/', '', $tabnamerelwithkey[$key]); $nbtabcond++; $tabcond[] = $val; + $tabcomplete[$tmptablename]['rowid'] = $val; } if (!empty($objMod->dictionaries['tabhelp'])) { - foreach ($objMod->dictionaries['tabhelp'] as $val) { + foreach ($objMod->dictionaries['tabhelp'] as $key => $val) { + $tmptablename = preg_replace('/'.MAIN_DB_PREFIX.'/', '', $tabnamerelwithkey[$key]); $nbtabhelp++; $tabhelp[] = $val; + $tabcomplete[$tmptablename]['help'] = $val; } } if (!empty($objMod->dictionaries['tabfieldcheck'])) { - foreach ($objMod->dictionaries['tabfieldcheck'] as $val) { + foreach ($objMod->dictionaries['tabfieldcheck'] as $key => $val) { + $tmptablename = preg_replace('/'.MAIN_DB_PREFIX.'/', '', $tabnamerelwithkey[$key]); $nbtabfieldcheck++; $tabfieldcheck[] = $val; + $tabcomplete[$tmptablename]['fieldcheck'] = $val; } }