« Zurück zu Produkt

Dokumentation

IPS_GetActionForm

 string IPS_GetActionForm (string $AktionsID, array $AktionsParameter) 

Parameterliste

AktionsID

GUID der Aktion

AktionsParameter

Parameter der Aktion, mindestens TARGET, PARENT und ENVIRONMENT

Rückgabewert

Ein JSON-kodierter String mit dem Array der Formularelemente.

Beschreibung

Die Funktion erzeugt das Konfigurationsformular der Aktion mit der GUID AktionsID. Das Formular einer Aktion (Eintrag form, siehe IPS_GetActions) ist entweder statisch, also direkt ein Array von Formularelementen, oder dynamisch als PHP-Code. Nur dynamische Formulare können mit dieser Funktion erzeugt werden. Der PHP-Code wird mit den AktionsParameter als Systemvariablen (z.B. $_IPS['TARGET']) ausgeführt, das zurückgegebene Array wird JSON-kodiert geliefert. So kann das Formular vom Zielobjekt oder bereits gewählten Parametern abhängen. Die Funktion wartet auf das Ende der Ausführung.

Die AktionsParameter müssen folgende Einträge beinhalten:

Parameter Beschreibung
TARGET ID des Zielobjektes der Aktion (-1 bei allgemeinen Aktionen)
PARENT ID des ausführenden Objekts der Aktion, beispielsweise das Skript oder der Ablaufplan
ENVIRONMENT Die Umgebung der Aktion, siehe Umgebungen

Weitere Einträge, z.B. bereits gewählte Parameter, stehen dem PHP-Code ebenfalls zur Verfügung. Als Werte sind nur Boolean, Integer, Float und String möglich.

Die Prüfungen erfolgen in dieser Reihenfolge:

  • Ist AktionsID keine gültige GUID, schlägt die Funktion mit "ActionID ... is not a valid GUID" fehl.
  • Existiert die Aktion nicht, schlägt sie mit "Action with ID ... not found!" fehl.
  • Fehlt ein Pflichtparameter, schlägt sie mit "TARGET is missing in Parameters", "PARENT is missing in Parameters" bzw. "ENVIRONMENT is missing in Parameters" fehl.
  • Bei einem statischen Formular schlägt sie mit "GetActionForm should only be called for dynamic forms (string, array of strings)!" fehl.

Die Beschriftungen im Formular sind nicht übersetzt, die Übersetzungen stehen im Eintrag locale der Aktion.

Beispiel

$formular = IPS_GetActionForm('{46B65CA6-3098-4982-9A6C-B89DADBB0A96}', [
    'TARGET'      => 12345, // Boolean-Variable
    'PARENT'      => $_IPS['SELF'],
    'ENVIRONMENT' => 'Default'
]);
print_r(json_decode($formular, true));

/* liefert z.B.:
Array
(
    [0] => Array
        (
            [type] => Select
            [name] => VALUE
            [caption] => Value
            [options] => Array
                (
                    [0] => Array
                        (
                            [value] =>
                            [caption] => Aus
                        )

                    [1] => Array
                        (
                            [value] => 1
                            [caption] => An
                        )

                )

        )

)
*/
Haben Sie noch Fragen?