ValidationTextBox unerwünschtes Verhalten in Instanzkonfigurtion

Wenn ich in eine ValidationTextBox folgenden Text rein schreibe,

Hallo %2$s Der sensor %1$s hat seinen Wert geändert

kommt beim speichern in der Instanzkonfiguration immer folgende Meldung:

<br />
<b>Notice</b>:  Undefined variable: s in <b>C:\Windows\System32\-</b> on line <b>70</b><br />

Ich möchte in meiner Instanzkonfiguration eine Meldung definieren, welche Platzhalter für werte enthält. Diese werden später aufgelöst.

$message = 'Hallo %2$s Der sensor %1$s hat seinen Wert geändert'; // kommt von ValidationTextBox;
$text = vsprintf($message, "Magnetkontakt Fenster3", "Peter"); // wird im modul.php verwendet
// Ausgabe ($text): Hallo Peter Der sensor Magnetkontakt Fenster3 hat seinen Wert geändert

Das ganze funktioniert auch einwandfrei, bis auf die Fehlermeldung in der Windows-Verwaltungskonsole die jedes mal wenn ich etwas in der Instanzkonfiguration anpasse erscheint. Ich möchte das $s ja nur als String speichern und es sollte nicht interpretiert werden.

Gruss
Dario

Also ich kann den Text in eine ValidationTextBox in einem PHP-Modul einfügen und es kommt kein Fehler. Da scheint also mehr hinter zu stecken. Kannst du vielleicht mal einen Link auf dein Modul posten? Dann können wir mal schauen, was da anders ist.

Hallo Dr. Niels
Danke für die Antwort.
Hier der Link. Das Modul ist ein Prototyp und hat deshalb noch den ein oder anderen „test schnipsel“ drin.
Link

  1. Im Objektbaum unter „Konfigurator Instanzen“ das „ConfigurationForm“ hinzufügen.
  2. „ConfigurationForm“ öffnen.
  3. In der Tabelle „Zustände“ einen Eintrag bearbeiten. (oder neuen hinzufügen).
  4. Im neuen Pop-Up in der Tabelle „Benachrichtigungen“ einen neuen Hinzufügen (oder bearbeiten)
  5. Jetzt im untersten Feld „Nachrichten Text“ den besagten Text rein schreiben.
  6. Bei allen popups auf ok.
  7. Sind alle Popups bestätigt, sollte jetzt die Fehlermeldung erscheinen.

Gruss
Dario

Habs nochmal kurz getestet.
Die Tabelle „Zustände“ benutzt Handler (OnCreate, OnEdit und OnDelete).
Wenn ich die aus der form.json entferne verschwidet auch der Fehler.
Wenn die Handler aber einfach eine leere Funktion aufrufen, tritt der Fehler bereits auf.
form.json Zeile 14-16 sind die Handler die meine Modulfunktionen aufrufen und denen die gesamte Liste übergibt.

Gruss
Dario

Wow, top vorbereitet und super Anleitung! Damit hat es auch direkt geklappt. Und die Konstellation ist ja aber schon ein bisschen komplexer. Liste in Liste mit Textfeld und dann auch noch einem $ als Platzhalter. Da hat das zusammengesetzte Skript einen Fehler gemacht, da es einen String mit " beinhaltet und das $s darin ersetzen wollte. Ich stelle das zukünftig auf ’ um, damit klappt es und $-Symbole werden nicht mehr mit Inhalt gefüllt.

Besten Dank für die super Suche und Aufbereitung!

Prima. Danke fürs beheben :+1: