ich bin gerade mit der Erstellung meines ersten Moduls beschäftigt.
Hätte dazu mal 2 Fragen.
1. Automatische Erstellung einer Dummy Instanz innerhalb des Modules:
Mein Modul benötigt eine Dummy Instanz, es ist mir jedoch zu Ohren gekommen das dies nicht erwünscht ist.
Unterhalb der Dummy Instanz werden automatisiert Boolean-Variablen erstellt, die nicht direkt unterhalb des Modules erwünscht sind.
Darf man oder darf man nicht, wenn ja wie am besten ?
2. Ich würde es gerne dem Benutzer ermöglichen einen STRING selbst zusammen zu setzen im Konfigurationsformular.
Dazu gebe ich dem Benutzer die benutzbaren Variablen bekannt, so das er Sie über das Formular beliebig zusammen setzen kann.
Beispiel.
$VAR1 beliebig $VAR2 usw..
Dies im Formular abzubilden ist kein Problem, jedoch das im Modul dann die $VARIABLEN im String als solche erkannt werden schon.
Jemand eine Idee ?
3. Ich benutze 2 Stringvariablen um 2 Arrays darin zu speichern, gibt es hier noch eine bessere Möglichkeit die Arrayinhalte dauerhaft zu speichern ?
Zuerst Mal bist du hier falsch.
Es gibt extra ein Forum für solche Fragen.
Ich verschiebe das Mal.
Zu 1.
Ja das ist nicht erlaubt.
Gibt auch keinen Grund das so umzusetzen.
Entweder legt man mehrere Instanzen an, oder wenn z.B. Daten für mehrere Instanzen benötigt werden, arbeitet man mit einem IO oder Splitter.
Zu 2.
Nimm doch einfach die Platzhalter welche sprintf direkt unterstützt.
Michael
IPS-Variablen sind nicht dafür gedacht als Zwischenspeicher zu dienen.
Für ‚flüchtige‘ Daten. Also welche nach einem Neustart verloren gehen sind Buffer zu benutzen.
Für nicht flüchtige Daten, wie Kai schon schrieb, die Attribute.
Falls ich dich richtig verstanden haben bzgl. „Variablen“ in Texten ersetzen - du kennst doch meinen HostMonitor - da „übersetze“ ich in einem Text vom User „Variablen“ mit dem „richtigen“ Inhalt.
Schau da im Code einfach mal nach „§HOST“ - ist in der Funktion „Notification“ zu finden
Ich stelle gerade fest das ich mit einer String Variable dasselbe erreiche wie mit einer Dummy-Instanz.
Es ging mir nur um die Unterordnung neuer Variablen in ein bestehendes Objekt.
Hätte ich mir die Zeit sparen können mit der automatisierten Instanz-Erstellung :rolleyes:
Aber auch unterhalb von Variablen hast du nichts anzulegen.
Nur direkt unter deiner Instanz.
Sonst funktioniert weder RegisterVariable noch SetValue korrekt.
Alternativ ist mit mehreren Instanzen und Splitter zu arbeiten.
Michael
Dann brauchst Du aber auch keine Dummy Instanz, dnna ist es ja eine eigene Instanz und im Konfigurationsformular kannst Du auswählen lassen welche Variablen genutzt werden sollen.
Ein vielleicht doofe Frage hätte ich noch :o
Wenn ich eine Variable im Konfigurationsformular und in der Webconsole beiderseits ändern können möchte, gibt es hier einen optimalen Weg ?
Arbeite im Formular mit „RegisterPropertyInteger“, ist das dann der falsche Weg ?
Das Bild sagt nix, weil du das WebFront und nicht den Objektbaum zeigst.
Zu deiner Frage:
Eigenschaft sind einstellbar Parameter der Instanz und werden über die Konsole vom User eingestellt.
Variablen sind das nicht, und somit auch nicht aus dem WebFront zu ändern.
Variablenwerte ändert man über die Konfiguration der Instanz hat nicht.
Vermische nicht die Frontends mit dem Backend (Konsolen).
Michael
Im Moment ist die Variable „Lösche Offline Hosts nach x Tagen“ (im Bild sichtbar) über das Backend(Formular) einstellbar, wird jedoch auch im Frontend (zur Information) angezeigt.
Ok, dann stell ich mir die Frage ob es möglich ist eine Variable (im Modulcode) als „ReadOnly“ zu deklarieren ?
(Ansonsten meint der Benutzer eventuell er könne den Wert auch im Frontend ändern)
Das mit den Variablen unterhalb einer Variable ist genauso wenig korrekt wie vorher mit der Dummy-Instanz.
Erstelle sie einfach alle direkt unter der Instanz. Der User kann sich das Frontend ja mit Links zusammenbauen wie er will.
Die Variable ist doch aktuell gar nicht vom WebFront bedienbar. Wer soll da auf die Idee kommen da etwas (wie denn) einzustellen.
Michael
Das Instanzproblem in Modul ist verschwunden, da dies mit HtmlBox Ausgabe gelöst wurde.
Neue Frage zur Modulerstellung:
Gibt es eine Möglichkeit mobiles Devices oder besser die Display Auflösung im Modulcode zu erkennen ?
Es geht darum ev. die Schriftgrössen bei Anzeige auf einem mobilen Device im Modul separat einstellen zu lassen.
Ich möchte „bei Änderung im Konfigurationsformular“ in einer ValidationTextBox(Property) eine Function ausführen, wenn auf Übernehmen geklickt wird. Also quasi ein vorher nachher Vergleich in ApplyChanges().
Dazu habe ich bis jetzt nicht wirklich was gefunden, tja wahrscheinlich blind gel :rolleyes: