Dokumentation
IPS_GetPresentationValue
mixed IPS_GetPresentationValue (string $DarstellungsID, int $Variablentyp, array $Parameter)
Parameterliste
| DarstellungsID | Die ID der Darstellung, als GUID formatiert |
| Variablentyp | Der Variablentyp, für den der Wert geliefert werden soll (0 ( |
| Parameter | Die Parameter der Darstellung als key => value Paare, z.B. ['MIN' => 0, 'MAX' => 100] |
Rückgabewert
Der Vorschauwert der Darstellung. Der Typ hängt von der Darstellung und dem Variablentyp ab.
Beschreibung
Die Funktion liefert den Wert, den die Darstellung DarstellungsID in ihrer Vorschau anzeigt, z.B. im Variablen-Dialog oder in der Vorlagenverwaltung. Die Darstellung legt diesen Wert unter presentationValue fest (siehe IPS_GetPresentation):
- Ist dort ein fester Wert hinterlegt (z.B. TRUE beim Schalter), wird dieser unverändert geliefert. Variablentyp und Parameter haben dann keinen Einfluss.
- Ist dort PHP-Code hinterlegt, wird dieser ausgeführt und sein Rückgabewert geliefert. Im Code stehen die Parameter sowie der Variablentyp unter VARIABLE_TYPE in
$_IPSzur Verfügung. Die Parameter werden nicht um Standardwerte ergänzt – benötigt der Code einen Parameter (z.B. MIN, MAX und STEP_SIZE beim Schieberegler), muss dieser übergeben werden.
Liefert der Code kein gültiges JSON-kodierbares Ergebnis, schlägt die Funktion mit "Invalid JSON for presentation value: …" fehl. Existiert die Darstellung nicht, schlägt die Funktion mit "Presentation with ID … not found!" fehl, bei einer ungültigen GUID mit "PresentationID … is not a valid GUID".
Zusammen mit IPS_GetPresentationFormat lässt sich so eine Vorschau einer Darstellung erzeugen.
Beispiel
// Fester Vorschauwert
var_dump(IPS_GetPresentationValue('{60AE6B26-B3E2-BDB1-A3A1-BE232940664B}' /* Schalter */, VARIABLETYPE_BOOLEAN, []));
// liefert: bool(true)
// Vorschauwert aus PHP-Code
var_dump(IPS_GetPresentationValue('{3319437D-7CDE-699D-750A-3C6A3841FA75}' /* Wertanzeige */, VARIABLETYPE_FLOAT, []));
// liefert: float(123.456)
var_dump(IPS_GetPresentationValue('{6B9CAEEC-5958-C223-30F7-BD36569FC57A}' /* Schieberegler */, VARIABLETYPE_FLOAT, ['MIN' => 0, 'MAX' => 100, 'STEP_SIZE' => 1]));
// liefert: float(42)