In dem Teil GetConfigurationForm() des Moduls soll ein Teil des Formulars dynamisch aufgebaut sein. Lediglich eine Herausforderung habe ich da noch zu bewältigen. Weil es in diesem Tel eigentlich ganz gut passt, habe ich hier eine Schleife, der vier Mal identische Abschnitte erzeugen soll:
$arrayElements = array(„type“ => „Select“, „name“ => „Function_“.$i, „caption“ => „Funktionsauswahl“, „options“ => $arrayOptions, „onChange“ => ‚IPS_RequestAction($id,„ChangeFunction“,$Function_0);‘ );
Wie man bei „name“ sieht setzt sich der Name der Variablen aus „Function_“ und dem aktuellen Wert des Zählers $i zusammen. Das funktioniert hier wie an anderer Stelle sehr gut. Lediglich im „onChange“ müsste diese „dynamische Benennung“ ja auch im letzten Teil rein (im Skriptausschnitt steht da $Function_0), hier scheitere ich aber an der richtigen „Formatierung“.
Weiß jemand Rat?
vielen Dank für die Tipps, die zwar nicht direkt zum Ergebnis geführt hatten, aber den richtigen Impuls setzen.
Was ich zunächst übersehen hatte: Eigentlich brauchte ich nur zwei Information ($Ident, $Value) für RequestAction, sondern drei:
Welche Funktion innerhalb des RequestAction ($Ident) soll angesprochen werden?
Welche der vier Variablen im Konfigurationsformular wird geändert?
Welche neuen Wert hat diese ($Value)?
Ich habe das jetzt so gemacht (die wichtigsten Teile):
„onChange“ => ‚IPS_RequestAction($id,"ChangeFunction_‘.$i.’", $Function_’.$i.’);’
und im RequestAction dann:
case preg_match(’/ChangeFunction.*/’, $Ident) ? $Ident : !$Ident:
Danach zeihe ich mir die benötigten Information um entsprechend zu handeln.