Dummy Modul auf/zuklappen?

Hallo,

ich versuche vergeblich ein Dummy Modul im Webfront auf/zuklappbar zu machen aber bekomme es einfach nicht hin. Wie kann ich im Webfront den kompletten Inhalt eines Dummy Moduls auf/zuklappbar machen? Gbit es hierzu nicht einfach eine Funktion die ich aktivieren kann?

Für einen Profi sicher eine einfache Aufgabe. Aber ich habe jetzt schon länger nichts mehr gemacht und bin absolut am verzweifeln so eine einfache Aufgabe umzusetzen.

Danke

So sollte es dann aussehen aber natürlich per Klick:

Aufgeklappt:

Zugeklappt:

image

Diese Funktion gibt es leider nicht. Es gab Sie mal in einer frühen Version vom Symcon 2.x. Zum „neue“ WebFront (mit Editor), der mit der 3.x kam, ist das Feature leider entfallen.

paresy

Danke. Dann hätte ich wohl auf der v2 bleiben sollen. :wink:

Aber irgendwie (wenn auch kompliziert) muß das doch machbar sein?

Ich bin mir nicht sicher, ob es dafür mit CSS und Javascript in einer HTMLBox schon mal Magie gab. Zumindest hab ich es, wenn es sowas gab, nicht parat :frowning:

paresy

Mit Hilfe von ChatGPT habe ich es fast so hinbekommen wie ich es wollte.

Aber schon ein Wahnsinn daß man für so eine einfache Aufgabe soviel Code selber schreiben muß.

Hier würde ich mir schon eine bessere “Usability” wünschen um einfache Aufgaben per Klick zu erledigen. Auch z.B. um eine Boolean Variable anklickbar zu machen. Nicht jeder ist Programmierer und wenn man da länger nichts mehr gemacht hat ist man fast verloren. Auch bin ich mit den neuen Einstellungen fast erschlagen. Aber die einfachen Sachen die ich machen will bekomme ich nicht hin. Das ganze als konstruktive Kritik verstehen. :wink:

Der Code mag auch für andere interessant sein:

Skript an Position 0 (wichtig!) in das Dummy Modul legen. Bei Klick wird dann alles an Position >0 ein/ausgeblendet.

<?php
/*
 * Klick-Skript (WebFront): blendet alle Objekte unter dem gleichen Parent
 * mit ObjectPosition > 0 ein/aus. Das Skript selbst bleibt sichtbar.
 */

// Parent über die Skript-ID ermitteln (funktioniert auch ohne $_IPS['PARENT'])
$selfID   = $_IPS['SELF'];
$parentID = IPS_GetParent($selfID);

// Kinder holen
$children = IPS_GetChildrenIDs($parentID);

// Referenzzustand bestimmen: erstes Objekt mit Position > 0
$hide = false; // true = zuklappen (hidden setzen), false = aufklappen
foreach ($children as $childID) {
    $obj = IPS_GetObject($childID);
    if ($obj['ObjectPosition'] > 0) {
        // Wenn es aktuell sichtbar ist -> jetzt verstecken, sonst zeigen
        $hide = !$obj['ObjectIsHidden'];
        break;
    }
}

// Alle Objekte mit Position > 0 toggeln (und sich selbst überspringen)
foreach ($children as $childID) {
    if ($childID === $selfID) {
        continue;
    }
    $obj = IPS_GetObject($childID);
    if ($obj['ObjectPosition'] <= 0) {
        continue;
    }
    IPS_SetHidden($childID, $hide);
}

// Optional: Skriptnamen als "Header" aktualisieren
// Passe den Text an deinen Geschmack an
IPS_SetName($selfID, $hide ? '▶ Closed' : '▼ Open');

Sieht dann so aus.

Auf:

Zu:

image

Nimm doch das Modul hier:

1 „Gefällt mir“

@Nall-chan Wow, sehr interessant. Werde ich mir merken. Für das was ich jetzt erstmal gebraucht habe (einfaches auf/zu) ist das etwas oversized. Aber für spezielle Fälle basierend der Variablen Werte ist das Modul sehr interessant. Danke für den Tipp!

Wenn ich deine Aufgabestellung richtig verstehe könnte das Popup-Modul anstelle des Dummy-Moduls hier eine einfache Lösung darstellen. Sieht im IPS-Baum genau so aus wie beim Dummy, ist aber im “inaktiven” Zustand der gewünschte Einzeiler im Webfront.

1 „Gefällt mir“

Ich habe das auch als Alternative überall mit einem Pop-up gemacht. Damit konnte ich das auch entsprechend überall anpassen. Bei meinen Rollläden sind viele Parameter, die ich selten nutze, und die blähen die Oberfläche immer in einem Raum auf. Da habe ich das dann so gemacht.

2 „Gefällt mir“

Super, vielen Dank für den Tipp mit dem Popup Modul. Das funktioniert zwar nicht ganz so wie ich es wollte (auf/zuklappen direkt im Webfront, ohne Popup) und wird auch noch nicht im Kachelmodus unterstützt. Ist aber für einige Anwendungsfälle - gerade bei vielen Statusvariablen - eine sehr gute Möglichkeit. Werde es auf jedenfall zukünftig nutzen.