Custom Feld {mm+1}

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.

  1. commonobject.php
  2. 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.

1 „Gefällt mir“