2
0
forked from Wavyzz/dolibarr

Merge pull request #29204 from mdeweerd/fix/projet_abs

Fix fatal (PHP8.X) type issue with abs, and amend dol_eval return type
This commit is contained in:
Laurent Destailleur
2024-04-03 02:06:52 +02:00
committed by GitHub
3 changed files with 8 additions and 3 deletions

View File

@@ -8299,7 +8299,12 @@ abstract class CommonObject
$value = '<span class="opacitymedium">'.$langs->trans("Encrypted").'</span>';
//$value = preg_replace('/./i', '*', $value);
} elseif ($type == 'array') {
$value = implode('<br>', $value);
if (is_array($value)) {
$value = implode('<br>', $value);
} else {
dol_syslog(__METHOD__.' Expected array from dol_eval, but got '.gettype($value), LOG_ERR);
return 'Error unexpected result from code evaluation';
}
} else { // text|html|varchar
$value = dol_htmlentitiesbr($value);
}

View File

@@ -9925,7 +9925,7 @@ function verifCond($strToEvaluate, $onlysimplestring = '1')
* @param string $onlysimplestring '0' (deprecated, do not use it anymore)=Accept all chars,
* '1' (most common use)=Accept only simple string with char 'a-z0-9\s^$_+-.*>&|=!?():"\',/@';',
* '2' (used for example for the compute property of extrafields)=Accept also '[]'
* @return mixed Nothing or return result of eval
* @return void|string Nothing or return result of eval (even if type can be int, it is safer to assume string and find all potential typing issues as abs(dol_eval(...)).
* @see verifCond()
* @phan-suppress PhanPluginUnsafeEval
*/

View File

@@ -226,7 +226,7 @@ $arrayfields = array();
foreach ($object->fields as $key => $val) {
// If $val['visible']==0, then we never show the field
if (!empty($val['visible'])) {
$visible = dol_eval($val['visible'], 1, 1, '1');
$visible = (int) dol_eval($val['visible'], 1, 1, '1');
$arrayfields['p.'.$key] = array(
'label' => $val['label'],
'checked' => (($visible < 0) ? 0 : 1),