Ja, das mit Englisch ist klar.
Deshalb ja auch die Dolibarr-Funktion dol_print_date(…).
Diese Funktion benützt die in Dolibarr eingestellte Sprache.
Zum beheben des Problem mit dem Bad string syntax...
Fehlers habe ich 2 Dateien modifiziert.
- commonobject.php
- functions.lib.php.
1.) Wenn das Feld ein „computed field“ ist dann rufe ich dol_eval(…) statt
$this->array_options['options_' . $key] = dol_eval($extrafields->attributes[$this->table_element]['computed'][$key], 1, 0, '');
so auf:
$this->array_options['options_' . $key] = dol_eval($extrafields->attributes[$this->table_element]['computed'][$key], 1, 0, 3);
2.) Hier füge ich einen Test auf nicht „3“ ein
if ($onlysimplestring != '3') {
ursprünglich sah das so aus:
if (preg_match('/[^0-9]+\.[^0-9]+/', $s)) { // We refuse . if not between 2 numbers
if ($returnvalue) {
return 'Bad string syntax to evaluate (dot char is forbidden): '.$s;
} else {
dol_syslog('Bad string syntax to evaluate (dot char is forbidden): '.$s);
return '';
}
}
dann sieht das bei mir so aus:
if ($onlysimplestring != '3') {
if (preg_match('/[(a-z]+\.[)a-z]+/', $s)) { // We refuse . if not between 2 numbers
if ($returnvalue) {
return 'Bad string syntax to evaluate (dot char is forbidden): '.$s;
} else {
dol_syslog('Bad string syntax to evaluate (dot char is forbidden): '.$s);
return '';
}
}
}
Aber Vorsicht, man kann damit dann auch evtl. böse Sachen mit den computed Extrafields anstellen.